该用 ip/ss替代你在用的 ifconfig/netstat了

前言

为啥要替代?因为大多 linux 发行版已经不默认安装 ifconfig/netstat了,反而预装了 iproute2 套件。

linux 的 ip 命令和 ifconfig 类似,但 ip 命令功能更强大,并旨在替代后者。ifconfig属于net-tools套件,已经不怎么维护,ip 所属的iproute2套件里提供了许多增强功能的命令。并且,大多数 linux 发行版已经预装了 iproute2 工具。

image

语法

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

你可能感兴趣的:(该用 ip/ss替代你在用的 ifconfig/netstat了)