Table of Contents
前言
为啥要替代?因为大多 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
参考链接
- https://www.runoob.com/linux/linux-comm-ip.html
- https://linux.cn/article-3144-1.html
- https://linux.cn/article-9230-1.html
- https://www.man7.org/linux/man-pages/man8/ip-route.8.html
- https://www.jianshu.com/p/b32b1b3b6203
- https://www.toutiao.com/i6885326819986244100/