Linux 网络命令是系统管理员和开发人员日常工作中不可或缺的工具,它们用于诊断网络问题、配置网络接口、监控网络流量以及进行网络调试,以下将详细介绍常用的 Linux 网络命令,包括其功能、语法和实际应用场景。

基础网络配置与状态查询命令
-
ifconfig
ifconfig用于显示或配置网络接口的参数,虽然在新版 Linux 发行版中逐渐被ip命令取代,但仍在许多系统中广泛使用。- 显示所有网络接口信息:
ifconfig
- 启用或禁用网卡:
ifconfig eth0 up # 启用 eth0 接口 ifconfig eth0 down # 禁用 eth0 接口
- 配置 IP 地址:
ifconfig eth0 192.168.1.100 netmask 255.255.255.0
- 显示所有网络接口信息:
-
ip
ip是ifconfig的替代品,功能更强大,支持 IPv4 和 IPv6。- 显示网络接口信息:
ip addr show
- 添加或删除 IP 地址:
ip addr add 192.168.1.100/24 dev eth0 # 添加 IP 地址 ip addr del 192.168.1.100/24 dev eth0 # 删除 IP 地址
- 启用或禁用接口:
ip link set eth0 up ip link set eth0 down
- 显示网络接口信息:
-
ping
ping用于测试与目标主机的连通性,通过发送 ICMP 回显请求包来检查网络延迟和丢包情况。ping -c 4 8.8.8.8 # 发送 4 个包后退出 ping -i 2 192.168.1.1 # 每 2 秒发送一次包
-
netstat
netstat用于显示网络连接、路由表、接口统计等信息。
(图片来源网络,侵删)- 显示所有 TCP 连接:
netstat -t
- 显示监听端口:
netstat -l
- 显示进程 ID 和端口号:
netstat -tp
- 显示所有 TCP 连接:
-
ss
ss是netstat的替代品,速度更快,功能更丰富。- 显示所有 TCP 连接:
ss -t
- 显示 UDP 连接:
ss -u
- 显示监听端口:
ss -l
- 显示所有 TCP 连接:
高级网络诊断与监控命令
-
traceroute
traceroute用于显示数据包到达目标主机所经过的路由路径。traceroute -n 8.8.8.8 # 不解析主机名,直接显示 IP traceroute -T -p 80 8.8.8.8 # 使用 TCP 协议,目标端口 80
-
nmap
nmap是一款强大的网络扫描工具,用于主机发现、端口扫描和服务检测。- 扫描指定主机的开放端口:
nmap 192.168.1.1
- 扫描指定端口范围:
nmap -p 1-100 192.168.1.1
- 进行 TCP SYN 扫描:
nmap -sS 192.168.1.1
- 扫描指定主机的开放端口:
-
tcpdump
tcpdump用于捕获和分析网络数据包,是底层网络调试的重要工具。- 捕获 eth0 接口的所有数据包:
tcpdump -i eth0
- 捕获目标主机为 192.168.1.1 的数据包:
tcpdump host 192.168.1.1
- 捕获目标端口为 80 的 TCP 数据包:
tcpdump tcp port 80
- 捕获 eth0 接口的所有数据包:
-
iptables
iptables是 Linux 系统的防火墙工具,用于配置 IPv4 数据包过滤、NAT 和端口转发。- 允许 HTTP 流量通过:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
- 拒绝所有入站流量:
iptables -P INPUT DROP
- 删除规则:
iptables -D INPUT -p tcp --dport 80 -j ACCEPT
- 允许 HTTP 流量通过:
-
route
route用于显示和操作 IP 路由表。- 显示路由表:
route -n
- 添加静态路由:
route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.1.1
- 显示路由表:
常用网络命令对比
| 命令 | 主要功能 | 替代工具 | 特点 |
|---|---|---|---|
ifconfig |
配置网络接口 | ip |
传统工具,功能有限 |
ip |
配置网络接口、路由、策略等 | 无 | 功能强大,支持 IPv6 |
netstat |
显示网络连接、路由表等 | ss |
功能全面,但速度较慢 |
ss |
显示网络连接 | netstat |
速度快,支持更多协议 |
ping |
测试网络连通性 | 无 | 简单易用,基于 ICMP |
traceroute |
显示路由路径 | mtr |
逐跳分析网络延迟 |
nmap |
网络扫描、端口检测 | masscan |
高度可定制,支持多种扫描方式 |
tcpdump |
捕获网络数据包 | wireshark |
底层调试,支持复杂过滤条件 |
iptables |
配置防火墙规则 | nftables |
功能强大,但配置复杂 |
route |
显示和操作路由表 | ip route |
简单的路由管理工具 |
实际应用场景
-
网络故障排查
当无法访问某个网站时,可以使用ping检查连通性,traceroute定位问题节点,tcpdump捕获数据包分析传输过程。 -
安全审计
使用nmap扫描内网主机,发现开放端口和服务;通过iptables配置防火墙规则,限制非法访问。 -
性能监控
使用ss监控网络连接数,iftop或nethogs分析带宽使用情况,及时发现网络瓶颈。 -
网络配置
通过ip命令配置静态 IP 地址,route添加静态路由,确保网络通信正常。
相关问答 FAQs
问题 1:如何查看 Linux 系统当前的网络连接数?
解答:可以使用 ss 或 netstat 命令查看当前的网络连接数。
ss -s # 显示摘要信息,包括 TCP、UDP 连接数 netstat -an # 显示所有连接,包括监听、已建立的连接
问题 2:如何限制某个 IP 地址的访问?
解答:可以使用 iptables 拒绝特定 IP 的访问。
iptables -A INPUT -s 192.168.1.100 -j DROP # 拒绝来自 192.168.1.100 的所有流量 iptables -A INPUT -s 192.168.1.0/24 -j REJECT # 拒绝整个网段的访问
保存规则可以使用 iptables-save,或根据发行版使用 service iptables save。
