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 命令已经取代了传统的 netstat 和 ifconfig/route,成为网络诊断和配置的标准工具。
ss和ip属于iproute2包,在几乎所有现代 Linux 发行版中默认已安装。
| 工具 | 用途 | 替代旧命令 |
|---|---|---|
ss |
查看 socket 连接、监听端口 | netstat |
ip |
管理接口、IP、路由、ARP | ifconfig, route, arp |
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))
| 功能 | netstat | ss(推荐) |
|---|---|---|
| 监听端口 | 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 ... |
本文来自博客园,作者:chao_xiong,转载请注明原文链接:https://www.cnblogs.com/chao-xiong/p/19293603

浙公网安备 33010602011771号