32、netstat、ss、ip 网络管理命令

1、netstat(Network Statistics)

是 Linux/Unix 系统中用于显示网络连接、路由表、接口统计、伪装连接、多播成员等网络相关信息的经典命令行工具。

在现代 Linux 发行版(如 CentOS 7+、Ubuntu 18.04+)中,netstat 已被标记为过时,官方推荐使用 ss(socket statistics)和 ip 命令替代。但因其广泛使用,仍有必要掌握。

netstat [选项]
选项含义
-a 显示所有连接和监听端口(包括 TCP、UDP)
-t 仅显示 TCP 连接
-u 仅显示 UDP 连接
-l 仅显示监听(LISTEN)状态的套接字
-n 以数字形式显示地址和端口号(不解析主机名/服务名)→ 大幅提升速度
-p 显示进程 PID 和程序名(需 root 或 sudo 权限)
-r 显示内核路由表(等价于 route -n
-i 显示网络接口列表(类似 ifconfig -s
-s 显示协议统计信息(按协议汇总错误、包数等)

如:

netstat -tuln           // 查看所有监听的端口(最常用)

#输出
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
tcp6       0      0 :::80                   :::*                    LISTEN
udp        0      0 0.0.0.0:68              0.0.0.0:*

想知道谁在监听 80 端口?加 -p(需权限):

sudo netstat -tulnp | grep :80

 

ss(socket statistics)和 ip 命令已经取代了传统的 netstatifconfig/route,成为网络诊断和配置的标准工具。

  • ss 和 ip 属于 iproute2 包,在几乎所有现代 Linux 发行版中默认已安装。
工具用途替代旧命令
ss 查看 socket 连接、监听端口 netstat
ip 管理接口、IP、路由、ARP ifconfigroutearp
ss -tuln          // 看开了哪些端口
ip a              // 看本机 IP 配置

2、ss(Socket Statistics)—— 替代 netstat

查看系统中的 TCP/UDP/Unix 套接字连接状态、监听端口、进程信息等。

ss [选项] [过滤器]
选项含义
-t 显示 TCP sockets
-u 显示 UDP sockets
-l 仅显示 监听(LISTEN)状态
-n 以数字形式显示地址和端口(不解析服务名)→ 提速关键
-p 显示使用 socket 的进程 PID 和名称(需权限)
-a 显示所有 sockets(包括非监听)
-s 显示 socket 统计摘要(类似 netstat -s
-r 解析主机名(默认不解析,比 netstat 更快)
如:
ss -tuln             // 查看所有监听的 TCP/UDP 端口(最常用)

#输出
Netid State  Recv-Q Send-Q Local Address:Port Peer Address:Port
tcp   LISTEN 0      128    0.0.0.0:22          0.0.0.0:*
tcp   LISTEN 0      128    [::]:80             [::]:*


# 查看谁在监听 80 端口(含进程)
sudo ss -tulnp | grep ':80'

#输出
tcp  LISTEN 0 128 *:80 *:* users:(("nginx",pid=1234,fd=6))
功能netstatss(推荐)
监听端口 netstat -tuln ss -tuln
显示进程 netstat -p ss -p
查看 ESTABLISHED netstat -tn ss -tn
性能 慢(读 /proc/net/ 极快(直接调用内核)
是否预装 需 net-tools 默认包含(iproute2

3、ip 命令 —— 替代 ifconfig + route + arp

管理网络接口、IP 地址、路由、ARP 表、隧道等。

ip [选项] 对象 {command | help}

对象包括:

  • addr(或 a):IP 地址
  • link(或 l):网络接口状态
  • route(或 r):路由表
  • neigh(或 n):邻居ARP/NDP 表
  • rule:路由策略数据库
  • tunnel:隧道配置
  • netns - 网络命名空间
  • maddress - 多播地址
  • monitor - 网络事件监控
  • xfrm - IPsec配置
选项含义
-V 显示版本信息
-s 显示详细信息/统计信息
-d 显示更详细的信息
-r 使用DNS解析主机名
-h 人类可读格式(如字节单位转换)
-j JSON格式输出
-p 美化输出格式
-4 只显示IPv4信息
-6 只显示IPv6信息
-br 简要输出
-o 单行输出
-n 指定网络命名空间
-c 彩色输出

如:

// 1. 网络接口管理 (link)
ip link show                    # 显示所有接口
ip link set eth0 up             # 启用接口
ip link set eth0 down           # 禁用接口
ip link set eth0 mtu 1500       # 设置MTU
ip link set eth0 name wan0      # 重命名接口
ip link delete eth0             # 删除接口

// 2. IP地址管理 (address/addr)
ip addr show                    # 显示所有IP地址
ip addr add 192.168.1.10/24 dev eth0    # 添加IP
ip addr del 192.168.1.10/24 dev eth0    # 删除IP
ip addr flush dev eth0          # 清除所有IP

// 3. 路由管理 (route)
ip route show                   # 显示路由表
ip route add default via 192.168.1.1    # 添加默认路由
ip route add 10.0.0.0/24 via 192.168.1.2    # 添加静态路由
ip route del 10.0.0.0/24        # 删除路由
ip route flush cache            # 清除路由缓存

// 4. ARP/邻居表管理 (neigh)
ip neigh show                   # 显示ARP表
ip neigh add 192.168.1.1 lladdr 00:11:22:33:44:55 dev eth0
ip neigh del 192.168.1.1 dev eth0       # 删除ARP条目
ip neigh flush dev eth0         # 清空ARP表

// 5. 网络命名空间 (netns)
ip netns list                   # 列出所有命名空间
ip netns add myns               # 创建命名空间
ip netns delete myns            # 删除命名空间
ip netns exec myns ip addr show # 在命名空间中执行命令
功能旧命令新命令(ip
查看 IP ifconfig ip addr show 或 ip a
启用网卡 ifup eth0 ip link set eth0 up
查看路由 route -n ip route show
查看 ARP arp -a ip neigh show
添加 IP ifconfig eth0 192.168.1.100 ip addr add ...
posted @ 2025-12-01 16:59  chao_xiong  阅读(55)  评论(0)    收藏  举报