前言
为啥要替代?因为大多 linux 发行版已经不默认安装 ifconfig/netstat了,反而预装了 iproute2 套件。
linux 的 ip 命令和 ifconfig 类似,但 ip 命令功能更强大,并旨在替代后者。ifconfig属于net-tools套件,已经不怎么维护,ip 所属的iproute2套件里提供了许多增强功能的命令。并且,大多数 linux 发行版已经预装了 iproute2 工具。
语法
ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT 为常用对象,值可以是以下几种:
OBJECT={ link | addr | addrlabel | route | rule | neigh | ntable | tunnel | maddr | mroute | mrule | monitor | xfrm | token }
OPTIONS 为常用选项,值可以是以下几种:
OPTIONS={ -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] | -h[uman-readable] | -iec | -f[amily] { inet | inet6 | ipx | dnet | link } | -o[neline] | -t[imestamp] | -b[atch] [filename] | -rc[vbuf] [size] }
常用选项的取值含义如下:
- -V:显示命令的版本信息;
- -s:输出更详细的信息;
- -f:强制使用指定的协议族;
- -4:指定使用的网络层协议是IPv4协议;
- -6:指定使用的网络层协议是IPv6协议;
- -0:输出信息每条记录输出一行,即使内容较多也不换行显示;
- -r:显示主机时,不使用IP地址,而使用主机的域名。
- help: 为该命令的帮助信息。
常见配置示例
- IP 地址操作
sudo ip addr add 192.168.0.193/24 dev wlan0
sudo ip addr add 192.168.0.50/255.255.255.0 dev enp0s3
ip addr show wlan0
ip addr show
sudo ip addr del 192.168.0.193/24 dev wlan0
# 为网卡添加别名
sudo ip addr add 192.168.0.20/24 dev enp0s3 label enp0s3:1
- 路由操作
ip route show
ip route get 10.42.0.47
sudo ip route add default via 192.168.0.196
# 修改某网卡的默认路由
sudo ip route add 172.16.32.32 via 192.168.0.150/24 dev enp0s3
# 删除设置的默认路由
sudo ip route del 192.168.0.150/24
- 网络接口操作
ip -s link
# 多个-s 选项显示更详细信息
ip -s -s link ls p2p1
sudo ip link set ppp0 down
sudo ip link set ppp0 up
- ARP操作
ip neigh
# 删除 ARP 记录
sudo ip neigh del 192.168.0.106 dev enp0s3
# 添加 ARP 记录
sudo ip neigh add 192.168.0.150 lladdr 33:1g:75:37:r3:84 dev enp0s3 nud perm
- 监控 netlink 消息
ip monitor all
VRF 操作
ip addr show vrf mgmt
ip route show vrf mgmt
sudo ip route add 1.1.1.0/24 via 1.1.1.1 dev eth0 vrf mgmt
sudo ip route del 1.1.1.0/24 vrf mgmt
SS 命令
ss 命令用来替代 netstat
常用选项:
-h, --help 帮助
-V, --version 显示版本号
-t, --tcp 显示 TCP 协议的 sockets
-u, --udp 显示 UDP 协议的 sockets
-x, --unix 显示 unix domain sockets,与 -f 选项相同
-n, --numeric 不解析服务的名称,如 "22" 端口不会显示成 "ssh"
-l, --listening 只显示处于监听状态的端口
-p, --processes 显示监听端口的进程(Ubuntu 上需要 sudo)
-a, --all 对 TCP 协议来说,既包含监听的端口,也包含建立的连接
-r, --resolve 把 IP 解释为域名,把端口号解释为协议名称
可以通过 dst/src/dport/sprot 语法来过滤连接的来源和目标,来源端口和目标端口
ss dst 192.168.119.113:443
ss src 192.168.119.103:80