Linux基础篇之网络命令
在Linux中,主要使用以下几个命令来查看或测试与网络有关的信息。
一、ip 命令 (显示/操作路由、设备、策略路由和隧道)
1、查看网卡的的相关信息(包括有网卡名称、网卡的MAC地址、IP地址、网卡的状态等主要信息)
ip a/add/address
2、为网卡添加/删除IP地址(添加/删除的IP地址都是临时的,重启系统便会恢复)
ip a/add/address add/delete IP地址/子网掩码 dev 网卡名称
3、查看网卡路由表
ip r/ro/route
4、添加/删除路由表(添加/删除的路由都是临时的,重启系统便会恢复)
ip r/ro/route add/delete 路由信息 dev 网卡名称
5、其他补充
二、ifconfig 命令(需要安装 net-tools) 1、ifconfig (不显示处于关闭状态的网卡信息) ifconfig -a (显示包含处于关闭状态的所有的网卡信息) ifconfig 网卡名称 (查看指定网卡信息)
ifconfig 命令除了可以查看网卡的状态、IP地址、子网掩码、广播地址、MAC地址等,还可以查看以下信息。
RX packets:网络从启动到现在为止接收的数据包大小,单位是字节,error 发生错误的数据包,dropped 被丢弃的数据包
TX packets:网络从启动到现在为止发送的数据包大小,单位是字节,error 发生错误的数据包,dropped 被丢弃的数据包
collisions:发生碰撞的数据包,如果发生太多次,表明网络状况不太好
txqueuelen:传输数据的缓冲区的储存长度
RX bytes:总接收字节总量
TX bytes:总发送字节总量
2、ifconfig 网卡名称 up/down (开启或关闭指定网卡)
3、ifconfig 网卡名称 IP地址/子网掩码 (临时修改网卡的IP地址/子网掩码)
4、ifconfig 网卡名称:0 (配置网卡的虚拟接口IP,相当于给网卡再加一个IP地址)
三、ping 命令(主要是探测主机的通信情况)
1、ping -b 网段的广播地址 (探测此网段中多少可以通信的主机)
2、ping -c 次数 IP地址 (对目标IP地址ping的次数,默认状态下一直ping,直至Ctrl+C 终止)
四、netstat 命令 (需安装 net-tools 这个依赖包,这个命令可以打印网络连接、路由表、接口统计数据、伪装连接和多播成员关系)
1、netstat -a 列出所有网络状态。
2、netstat -c 秒数 指定刷新网络状态的间隔时间
3、netstat -n 使用IP地址和端口号显示,不使用域名与服务名
4、netstat -p 显示PID和程序名
5、netstat -t 显示使用TCP协议端口的连接状况
6、netstat -u 显示使用UDP协议端口的连接状况
7、netstat -l 显示监听状态的连接
8、netstat -r 显示路由表
以上选项可以组合使用:
查看本机开启的端口
在上图中有下几种参数。
Proto 网络连接协议
Recv-Q 表示本机收到的,但还未被进程取走的数据
Send-Q 表示本机发送的,但目的机还未收到的数据
Local Address 本机的IP地址和端口号
Foreign Address 远程主机的IP地址和端口号
State 状态
PID/Program name 程序的PID和程序名(由此可以得知是什么程序正在占用)
其中常见的状态以下几种(一般情况下主要使用前两者):
LISTEN 监听状态(只要TCP协议需要监听,UDP协议不需要监听)
ESTABLISHED 已经建立连接的状态(若使用 -l 选项,是看不到此里连接状态)
SYN_SENT 主动发起连接的数据包
SYN_RECV 收到主动连接的数据包
FIN_WAIT1 正在中断的连接
FIN_WAIT2 已经中断的连接
TIME_WAIT 已经中断连接,但是套接字还在等待结束。
CLOSED 套接字没有被使用