基础信息查看
这些命令用于快速查看当前网络接口的基本信息和状态。

ip - 现代化的网络管理工具(推荐)
ip 命令是 ifconfig 的现代替代品,功能更强大,信息更详细。
-
查看所有网络接口信息:
ip addr show # 或简写 ip a
- 输出会显示接口名(如
eth0,lo,ens33)、MAC 地址、IP 地址、子网掩码、状态等。
- 输出会显示接口名(如
-
查看特定接口信息:
ip addr show eth0
-
启用/禁用网络接口:
(图片来源网络,侵删)# 启用 eth0 ip link set eth0 up # 禁用 eth0 ip link set eth0 down
-
查看路由表:
ip route show # 或简写 ip r
-
查看网络连接状态(类似 netstat):
ip [s|S]h m [a|t|u|p] [dev IFACE] [STATE] [proto PROTO] # 查看所有 TCP 连接 ss -t
ifconfig - 传统的网络配置工具(已逐渐被淘汰)
虽然很多新系统默认不安装,但在一些旧系统或脚本中仍会看到。
-
查看所有网络接口信息:
(图片来源网络,侵删)ifconfig -a
-
查看特定接口信息:
ifconfig eth0
-
启用/禁用接口:
ifconfig eth0 up ifconfig eth0 down
hostname - 查看或设置主机名
-
查看当前主机名:
hostname
-
临时设置主机名:
sudo hostname new_hostname
注意:这只是临时生效,重启后会恢复,永久修改需要编辑
/etc/hostname文件。
连接测试与诊断
这些命令用于测试网络连通性、解析域名和诊断问题。
ping - 测试网络连通性
- 测试与另一台主机的连通性:
ping google.com # 或指定 IP ping 8.8.8.8
- 它会持续发送 ICMP 回显请求包,并显示响应时间和丢包率,按
Ctrl+C停止。
- 它会持续发送 ICMP 回显请求包,并显示响应时间和丢包率,按
ss / netstat - 查看网络连接、路由表、接口统计
-
ss(Socket Statistics) -netstat的现代替代品(推荐)- 查看所有 TCP 连接:
ss -t
- 查看所有 UDP 连接:
ss -u
- 查看所有监听端口:
ss -l
- 查看所有连接(包括 TCP, UDP):
ss -a
- 查看所有监听的 TCP 端口:
ss -lt
- 查看所有 TCP 连接:
-
netstat- 传统工具- 功能与
ss类似,但效率较低。 - 查看所有监听的 TCP 端口:
netstat -tlnp
- 显示所有网络连接:
netstat -an
- 功能与
traceroute / tracepath - 跟踪数据包路径
-
traceroute- 显示数据包到目标主机经过的所有路由节点traceroute google.com
它会显示数据包每经过一跳的 IP 地址和往返时间,有助于定位网络延迟或中断点。
-
tracepath-traceroute的简化版本,通常不需要 root 权限tracepath google.com
nslookup / dig - DNS 查询工具
-
nslookup- 交互式或命令行的 DNS 查询工具# 查询域名的 IP 地址 nslookup google.com # 查询 IP 对应的域名(反向解析) nslookup 8.8.8.8
-
dig- 更详细、更专业的 DNS 查询工具# 查询 google.com 的 A 记录 dig google.com # 查询 MX 邮件交换记录 dig google.com MX # 只显示答案部分 dig google.com +short
mtr - ping 和 traceroute 的超级结合体
mtr(My Traceroute) - 持续显示网络路径和每个节点的丢包/延迟情况mtr google.com
- 它比
traceroute更直观,能实时看到网络质量的变化,是网络诊断的利器。
- 它比
路由管理
手动添加或删除路由条目。
ip route - 管理路由表
-
添加一条静态路由:
# 格式: ip route add 目标网段 via 下一跳地址 dev 出接口 # 示例: 添加一条到 192.168.100.0/24 网段的路由,下一跳是 10.0.0.1,从 eth0 出去 sudo ip route add 192.168.100.0/24 via 10.0.0.1 dev eth0
-
删除一条静态路由:
sudo ip route del 192.168.100.0/24
-
添加默认网关(默认路由):
sudo ip route add default via 192.168.1.1
-
临时修改默认网关:
# 先删除旧的 sudo ip route del default # 再添加新的 sudo ip route add default via 192.168.1.254
注意:以上路由命令都是临时的,重启网络服务或系统后会失效,要永久生效,需要修改网络配置文件(如
/etc/netplan/或/etc/sysconfig/network-scripts/)。
防火墙与安全
iptables / nftables - Linux 内核防火墙
-
iptables- 传统且功能强大的防火墙工具- 查看当前规则链:
sudo iptables -L -n -v
-L: 列出规则-n: 以数字形式显示地址和端口,不进行 DNS 解析-v: 显示详细信息(如数据包/字节数)
- 允许所有传入的 SSH 连接 (端口 22):
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
- 丢弃所有其他传入的连接:
sudo iptables -A INPUT -j DROP
- 注意:
iptables规则复杂,操作不当可能导致失联,修改前请确保有其他方式访问服务器。
- 查看当前规则链:
-
nftables-iptables的现代替代品(CentOS 8+, Ubuntu 20.04+ 默认使用)- 语法更简洁,性能更好。
- 查看规则集:
sudo nft list ruleset
- 添加一条允许 SSH 的规则:
sudo nft add table inet myfilter sudo nft add chain inet myfilter myinput { type filter hook input priority 0 \; } sudo nft add rule inet myfilter myinput tcp dport 22 accept
firewalld - iptables/nftables 的动态管理前端(CentOS/RHEL/Fedora 主流)
-
启动并启用 firewalld 服务:
sudo systemctl start firewalld sudo systemctl enable firewalld
-
查看防火墙状态和区域:
sudo firewall-cmd --state sudo firewall-cmd --get-active-zones
-
永久开放 TCP 端口 80 (HTTP):
sudo firewall-cmd --permanent --add-service=http # 重新加载防火墙使配置生效 sudo firewall-cmd --reload
-
永久开放特定端口:
sudo firewall-cmd --permanent --add-port=8080/tcp sudo firewall-cmd --reload
-
查看已开放的服务和端口:
sudo firewall-cmd --list-services sudo firewall-cmd --list-ports
网络配置与服务管理
nmcli - NetworkManager 的命令行工具(现代桌面和服务器发行版推荐)
-
查看所有连接和设备状态:
nmcli connection show nmcli device status
-
为
eth0分配静态 IP 地址:sudo nmcli con mod "连接名称" ipv4.method manual ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns "8.8.8.8 8.8.4.4" # 激活连接 sudo nmcli con up "连接名称"
systemctl - 管理网络服务
-
重启网络服务(根据发行版不同,服务名可能不同):
# 对于使用 NetworkManager 的系统 (Ubuntu, CentOS 7+) sudo systemctl restart NetworkManager # 对于使用传统 ifupdown 的系统 (老版 Debian) sudo systemctl networking restart
-
启用/禁用开机自启:
sudo systemctl enable NetworkManager sudo systemctl disable NetworkManager
网络监控与分析
iftop / nethogs - 查看实时带宽使用和进程级流量
-
iftop- 按主机/端口显示实时网络带宽使用情况sudo iftop -i eth0
它会显示哪个 IP 正在占用最多带宽。
-
nethogs- 按进程显示实时网络带宽使用情况sudo nethogs
- 它能告诉你是哪个程序(如
chrome,wget)在消耗网络流量。
- 它能告诉你是哪个程序(如
tcpdump - 抓包分析工具(终极网络诊断工具)
-
抓取 eth0 接口上所有发往或来自 192.168.1.100 的数据包:
sudo tcpdump -i eth0 host 192.168.1.100
-
抓取 eth0 接口上所有的 HTTP 流量(端口 80):
sudo tcpdump -i eth0 port 80
-
将抓包结果保存到文件,并用 Wireshark 分析:
# -w 表示写入文件 sudo tcpdump -i any -w capture.pcap
capture.pcap文件可以用 Wireshark (图形界面) 或tshark(命令行) 打开分析。
| 命令类别 | 常用命令 | 主要用途 |
|---|---|---|
| 基础信息 | ip a, ifconfig |
查看网络接口 IP、状态 |
hostname |
查看主机名 | |
| 连接测试 | ping |
测试网络连通性 |
ss, netstat |
查看端口、连接状态 | |
traceroute, mtr |
跟踪路由,诊断延迟/丢包 | |
nslookup, dig |
DNS 域名解析查询 | |
| 路由管理 | ip route add/del |
添加/删除静态路由 |
| 防火墙 | firewall-cmd |
管理防火墙规则 (CentOS/RHEL) |
iptables, nftables |
管理内核防火墙规则 | |
| 配置与服务 | nmcli |
配置网络连接 (现代系统) |
systemctl |
启动/重启网络服务 | |
| 监控分析 | iftop |
查看主机级实时流量 |
nethogs |
查看进程级实时流量 | |
tcpdump |
抓包分析,深度诊断 |
掌握这些命令,您将能够应对绝大多数 Linux 环境下的网络管理任务,对于初学者,建议先从 ip, ping, ss, firewall-cmd 和 nmcli 开始学习。
