Linux常用的网络管命令
ifconfig、route、ip、netstat、 ss
(1)ifconfig:配置网络接口
使用方式:ifconfig [interface_name] [option]
-a:查看所有接口的信息 |
up:将指定接口打开 |
down:将指定接口关闭 |
[-]arp:在指定网卡上禁用或者启用arp协议 |
[-]promisc:将指定网卡禁用或启用混杂模式 |
ifconfig interface_name ip_addr netmask net_mask:设置接口的地址 |
(2)route:查看或者管理路由表
查看本机路由表:
route -n |
添加路由:
路由条目有三种:
主机路由:到达某个主机的路由
网络路由:到达某个网络的路由
默认路由:到达任意网络的路由
route add [-net|-host] target_addr [netmask net_mask] [gw gateway_ip] [dev [interface_name]] |
使用示例,添加到192.56.76.0的路由条目:route add -net 192.56.76.0 netmask 255.255.255.0 dev eth0 |
删除路由:
route del [-net|-host] target_addr [netmask net_mask] [gw gateway_ip] [dev[interface_name]] |
使用示例,,删除到192.56.76.0的路由条目:route del -net 192.56.76.0 netmask 255.255.255.0 dev eth0 |
(3)ip:查看,管理网络接口信息以及路由信息
使用方式:ip [ OPTIONS ] OBJECT { COMMAND | help }
其中OBJECT常用的有如下几个:
link:配置网络接口
ip link set dev device_name {up|down}:将指定的设备开启或关闭 |
ip link set dev device_name multicast {on|off}:启用或者禁用指定设备的多播功能 |
ip link set dev device_name name new_name:对指定的设备进行重命名 |
ip link set dev device_name mtu mtu_number:设置指定设备的MTU大小 |
ip link set dev device_name {up|down} |
ip link show:查看所有设备的属性 |
ip link help:查看帮助 |
address:协议地址管理
ip addr add interfce_addr dev interface_name label alias_name:为额外添加的地址指明接口别名 使用示例: ip addr add 192.168.1.111/24 dev eth0 label eth0:0 |
ip addr del interfce_addr dev interface_name:删除指定接口上的地址 |
ip addr show:查看所有接口的配置信息 |
ip addr flush dev interface_name:刷新配置 |
route:路由表管理
ip route add ip_addr/netmask via gateway_addr [dev intetface_name] [srcsource_ip]:添加路由条目 使用示例,添加一条到192.168.0.1/24的路由条目:ip route add 192.168.1.0/24 via 172.16.1.1 dev eth0 |
ip route del ip_addr/netmask:删除路由条目 使用示例,删除到达192.168.1.0/24的路由条目:ip route del 192.168.1.0/24 |
ip route show :列出当前系统的路由信息 |
ip route get ip_addr/netmask 使用示例,查看到达192.168.1.0/24的路由信息:ip route get 192.168.1.0/24 |
(4)netstat:查看网络连接状态
使用方式:netstat [option]
-t,–tcp:查看跟tcp协议相关的连接 |
-u, –udp:查看跟udp协议相关的连接 |
-l:查看处于监听状态的连接 |
-a:查看所有状态下的连接 |
-n:以数字的格式显示ip和端口号 |
-p:显示与连接相关的进程的ID |
-i:显示所有接口的数据统计 |
(5)ss:查看建立的连接情况以及状态统计信息
使用格式:ss [option] [filter]
常用选项:
-t:所建立的tcp连接 |
-u:所建立的udp连接 |
-n:数字格式显示ip和端口号 |
-l:查看已经处于监听状态的连接 |
-p:显示相关进程的pid |
-m:各个连接所占用的内存信息 |
-a:查看所有状态的信息 |
filter:根据TCP的状态和端口号来实现:
state <TCP_FSM>:
LISTEN:监听 |
ESTABLISEHD:建立的连接 |
FIN_WAIT_1:主动断开一方发送关闭信号,在收到另一方确认的这段时间 |
FIN_WAIT_2:主动断开的一方收到被动断开的一方的信号到被动断开一方也发送 |
SYN_SENT:建立连接时客户端发送连接请求到收到服务端回应的这个时间段 |
SYN_RECV:服务器端收到客户端的同步信号,但还没建立连接的这个时间段 |
CLOSED:连接已经关闭 |
使用示例:
查看处于已建立连接状态的连接: ss -tan state ESTABLISHED |
基于端口进行过滤:
dport =:<port>:根据目标端口进程过滤 |
sport =:<port>根据源端口进行过滤 |
使用示例:
ss -tan '( dport = :8080 or sport = :8080 )' |