linux网络命令
1.ip 命令
IP命令是一种网络配置工具,其功能与ifconfig命令相似,但更加强大。它几乎可以配置所有的网络参数,并能显示和操作网络路由、网络设备以及设置路由等。
选项 | 说明 |
-V | 显示版本信息 |
-h | 以人类可读的格式显示输出 |
-f | -family (inet, inet6, link) 强制使用指定的协议族 |
-4 | 指定使用IPv4协议 |
-6 | 指定使用IPv6协议 |
-B | 指定使用Bridge协议 |
-D | 指定使用decnet协议 |
-M | 指定使用mpls协议 |
-0 | 指定使用link协议 |
-i | 指定使用ipx协议 |
-d | 输出详细信息 |
-o | -oneline,将输出信息每条记录显示在一行 |
-r | -resolve,显示主机名而不是IP地址 |
-l | -loops,指定IP地址刷新的最大循环次数 |
-t | -timestamp,使用监视器选项时输出时间戳 |
-a | -all,执行命令对所有对象生效(如果命令支持该选项) |
-c | -color,彩色显示输出 |
在这个语法中,对象参数有12个,如表所示:
对象 | 说明 |
address | 网络设备的IP(v4或v6)地址信息 |
link | 网络设备信息 |
maddress | 多播地址 |
mroute | 组播路由缓存条目 |
monitor | 监控网络连接消息 |
netns | 管理网络命名空间 |
ntable | 管理邻居表缓存操作 |
neighbour | 邻居表 |
route | 路由表 |
rule | IP策略 |
tunnel | IP隧道 |
tuntap | 管理tun/tap设备 |
在这个语法中,命令参数有4个,如表所示:
命令 | 说明 |
add | 新增 |
delete | 删除 |
show | 显示 |
set | 设置参数 |
显示所有设备信息
这个实例展示如何显示整个网卡硬件设备相关信息,包括MAC地址和MTU等。使用的命令是“ip link show”,具体操作如图所示:
2.route 命令
route命令用于显示和操作IP路由表。要实现两个不同子网之间的通信,需要通过连接这两个网络的路由器,或者一个同时位于两个网络的网关来实现。通过设置路由,可以解决这个问题。在一个局域网中,如果有一个网关可以让设备访问Internet,那么需要将这台网关的地址设置为Linux机器的默认路由。
命令语法如下:route [添加|删除] [网络|主机] 目标 [网络掩码] [网关]
在这个语法中,主选项参数有8个,如表所示:
参数 | 说明 |
add | 添加一条路由规则 |
del | 删除一条路由规则 |
-net | 目的地址是一个网络 |
-host | 目的地址是一个主机 |
target | 目标网络或主机 |
netmask | 目的地址的网络掩码 |
gw | 路由数据包通过的网关 |
dev | 指定网卡 |
显示当前路由表
本实例演示如何显示当前的路由表。默认情况下,无法直接使用route命令显示路由表,需要通过yum命令进行安装。然而,route命令并不能单独安装,它属于net-tools工具包的一部分。可以通过执行以下命令安装:
```
yum -y install net-tools
```
安装完成后,可以使用“route”命令显示路由表,具体操作如图所示:
3.telnet 命令
telnet命令通常用于远程登录。它是基于TELNET协议的远程登录客户端程序。TELNET协议是TCP/IP协议族的一部分,是Internet远程登录服务的标准协议和主要方式,提供用户在本地计算机上远程登录主机的能力。用户可以在终端上使用telnet程序连接到服务器,输入命令,这些命令会在服务器上执行,就像在服务器的控制台上输入一样,可以在本地控制远程服务器。开始一个telnet会话时,必须输入用户名和密码来登录服务器。telnet是常用的远程控制Web服务器的方法。它还有其他用途,例如测试远程服务的状态,检查远程服务器的某个端口是否可访问等。
命令语法如下:telnet [参数] [主机]
在这个语法中,主选项参数有18个,如表所示:
参数 | 说明 |
-8 | 允许使用8位字符数据,包括输入与输出 |
-a | 尝试自动登录远程系统 |
-b | 使用别名指定远程主机名称 |
-c | 不读取用户目录里的.telnetrc文件 |
-d | 启动调试模式 |
-e | 设置退出字符 |
-E | 禁用退出字符 |
-f | 与指定“-F”参数效果相同 |
-F | 使用Kerberos V5认证时,将本地主机的认证数据传送到远程主机 |
-k | 使用Kerberos认证时,加上此参数让远程主机采用指定的域名 |
-K | 不自动登录远程主机 |
-l | 指定要登录远程主机的用户名 |
-L | 允许输出8位字符数据 |
-n | 指定文件记录相关信息 |
-r | 使用类似rlogin命令的用户界面 |
-S | 设置telnet连接所需的IP TOS信息 |
-x | 如果主机支持数据加密,则使用此参数 |
-X | 禁用指定的认证方式 |
检测指定服务器某个端口是否开启
本实例展示如何使用telnet命令检测百度80和8080端口的开启状态。如果当前系统没有安装该命令,可以通过yum命令直接安装。若提示连接已被主机关闭,则说明端口状态是开放的;若提示连接超时,则说明端口是关闭的。具体操作如图所示:
4.netstat 命令
在互联网RFC标准中,netstat是一个访问内核中网络连接状态及其相关信息的程序。它能够提供TCP连接、TCP和UDP监听,以及进程内存管理的相关报告。netstat命令的功能是显示网络连接、路由表和网络接口信息,让用户了解当前有哪些网络连接正在运行。使用netstat命令时,如果不带参数,则显示活动的TCP连接。
命令语法如下:netstat [选项]
在这个语法中,选项参数有20个,如表所示:
参数 | 说明 |
-a | 显示所有连接中的Socket |
-A | 列出指定网络类型连接中的相关地址 |
-c | 持续列出网络状态 |
-C | 显示路由器配置的缓存信息 |
-e | 显示其他网络相关信息 |
-F | 显示FIB |
-g | 显示多播组成员名单 |
-h | 在线帮助 |
-i | 显示网络接口信息表 |
-l | 显示监控中的服务器的Socket |
-M | 显示伪装的网络连接 |
-n | 直接使用IP地址,而不通过域名服务器 |
-N | 显示网络硬件设备的符号连接名称 |
-o | 显示计时器 |
-p | 显示正在使用Socket的程序ID和程序名称 |
-r | 显示路由表 |
-s | 显示网络统计信息 |
-t | 显示TCP传输协议的连接状态 |
-u | 显示UDP传输协议的连接状态 |
-v | 显示命令执行过程 |
找出运行在指定端口的进程
本实例演示如何查找一个正在80端口运行的进程。如果能够找到这个进程,系统会将这个进程的端口号标红。这个实例是通过grep命令进行过滤的,因此查找到的进程号是包含80的。具体操作如图所示:
5.traceroute 命令
Linux系统中的traceroute命令可以追踪网络数据包的路由路径。每次数据包从同一个出发点到达同一个目的地的路径可能会有所不同,但大部分情况下,所经过的路由是相同的。
命令语法如下:traceroute [选项] 对象 [命令]
在这个语法中,选项参数有15个,如表所示:
参数 | 说明 |
-d | 使用Socket层级的排错功能 |
-f | 设置第一个检测数据包的存活时间(TTL)的大小 |
-F | 设置勿离断位 |
-g | 设置来源路由网关,最多可设置8个 |
-i | 使用指定的网络接口发送数据包 |
-I | 使用ICMP回应代替UDP数据包 |
-m | 设置检测数据包的最大存活时间(TTL)的大小 |
-n | 直接使用IP地址而非主机名 |
-p | 设置UDP通信端口 |
-r | 忽略普通的路由表,直接将数据包发送到远端主机 |
-s | 设置本地主机发送数据包的IP地址 |
-t | 设置检测数据包的TOS值 |
-v | 详细显示命令的执行过程 |
-w | 设置等待远端主机响应的时间 |
-x | 开启或关闭数据包的正确性检查 |
显示到达目的主机的数据包路由
本实例演示如何显示到达百度服务器主机的数据包路由。如果当前系统中没有此命令,可以通过yum命令进行安装。具体操作如图所示: