5225 字
26 分钟

Linux网络管理命令和技巧

2026-02-06
浏览量 加载中...

Linux网络管理命令和技巧#

网络管理概述#

网络管理是Linux系统管理的重要组成部分,包括网络接口配置、IP地址管理、路由配置、DNS设置、网络服务管理等方面。本文将介绍Linux网络管理中常用的命令和技巧,帮助系统管理员更高效地管理Linux系统的网络。

网络接口管理#

查看网络接口信息#

ifconfig 命令#

ifconfig命令是最常用的网络接口配置命令,用于显示和配置网络接口。

Terminal window
# 显示所有网络接口信息
ifconfig
# 显示指定网络接口信息
ifconfig eth0
# 显示网络接口的MAC地址
ifconfig eth0 | grep HWaddr
# 显示网络接口的IPv6地址
ifconfig eth0 | grep inet6

ip 命令#

ip命令是Linux 2.2+内核引入的新命令,功能更强大,是ifconfig的替代品。

Terminal window
# 显示所有网络接口信息
ip addr
ip a
# 显示指定网络接口信息
ip addr show eth0
ip a s eth0
# 显示网络接口的链接状态
ip link
ip l
# 显示指定网络接口的链接状态
ip link show eth0
ip l s eth0

netstat 命令#

netstat命令用于显示网络连接、路由表、接口统计等信息。

Terminal window
# 显示所有网络接口信息
netstat -i
# 显示详细的网络接口信息
netstat -ie

配置网络接口#

ifconfig 命令#

Terminal window
# 启动网络接口
ifconfig eth0 up
# 关闭网络接口
ifconfig eth0 down
# 配置IP地址和子网掩码
ifconfig eth0 192.168.1.100 netmask 255.255.255.0
# 配置IP地址、子网掩码和广播地址
ifconfig eth0 192.168.1.100 netmask 255.255.255.0 broadcast 192.168.1.255
# 添加IPv6地址
ifconfig eth0 add 2001:db8::1/64
# 删除IPv6地址
ifconfig eth0 del 2001:db8::1/64
# 修改MAC地址
ifconfig eth0 hw ether 00:11:22:33:44:55

ip 命令#

Terminal window
# 启动网络接口
ip link set eth0 up
# 关闭网络接口
ip link set eth0 down
# 配置IP地址
ip addr add 192.168.1.100/24 dev eth0
# 删除IP地址
ip addr del 192.168.1.100/24 dev eth0
# 修改MAC地址
ip link set eth0 address 00:11:22:33:44:55
# 修改MTU值
ip link set eth0 mtu 1500
# 修改网络接口的速度和双工模式
ip link set eth0 speed 1000 duplex full

网络接口配置文件#

Debian/Ubuntu 系统#

在Debian/Ubuntu系统中,网络接口配置文件位于/etc/network/interfaces

Terminal window
# 查看网络接口配置
cat /etc/network/interfaces
# 编辑网络接口配置
sudo nano /etc/network/interfaces
# 重启网络服务
sudo systemctl restart networking

配置示例:

# 自动获取IP地址(DHCP)
auto eth0
iface eth0 inet dhcp
# 静态IP地址
auto eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8 8.8.4.4

Ubuntu 18.04+ 系统#

在Ubuntu 18.04及更高版本中,使用Netplan进行网络配置,配置文件位于/etc/netplan/目录。

Terminal window
# 查看Netplan配置文件
ls /etc/netplan/
cat /etc/netplan/00-installer-config.yaml
# 编辑Netplan配置文件
sudo nano /etc/netplan/00-installer-config.yaml
# 应用Netplan配置
sudo netplan apply
# 测试Netplan配置
sudo netplan try

配置示例:

network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: no
addresses: [192.168.1.100/24]
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]

RHEL/CentOS 系统#

在RHEL/CentOS系统中,网络接口配置文件位于/etc/sysconfig/network-scripts/目录。

Terminal window
# 查看网络接口配置文件
ls /etc/sysconfig/network-scripts/
cat /etc/sysconfig/network-scripts/ifcfg-eth0
# 编辑网络接口配置文件
sudo nano /etc/sysconfig/network-scripts/ifcfg-eth0
# 重启网络服务
sudo systemctl restart network

配置示例:

# 自动获取IP地址(DHCP)
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
# 静态IP地址
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
DNS2=8.8.4.4

IP地址管理#

查看IP地址#

Terminal window
# 查看所有网络接口的IP地址
ifconfig
ip addr
# 查看当前主机的公网IP地址
curl ifconfig.me
curl ipinfo.io/ip
wget -qO- ifconfig.me
# 查看当前主机的内网IP地址
hostname -I

配置IP地址#

临时配置#

使用ifconfigip命令进行临时配置,重启后失效。

Terminal window
# 使用ifconfig配置
ifconfig eth0 192.168.1.100 netmask 255.255.255.0
# 使用ip配置
ip addr add 192.168.1.100/24 dev eth0

永久配置#

修改网络接口配置文件进行永久配置,重启后依然有效。

参考上一节的网络接口配置文件部分。

IP地址冲突检测#

Terminal window
# 使用arping检测IP地址冲突
arping -c 3 192.168.1.100
# 指定网络接口检测IP地址冲突
arping -i eth0 -c 3 192.168.1.100

路由管理#

查看路由表#

route 命令#

Terminal window
# 查看路由表
route
# 查看详细的路由表
route -n
# 查看IPv6路由表
route -A inet6

ip 命令#

Terminal window
# 查看路由表
ip route
ip r
# 查看详细的路由表
ip route show
ip r s
# 查看IPv6路由表
ip -6 route
ip -6 r

netstat 命令#

Terminal window
# 查看路由表
netstat -r
# 查看详细的路由表
netstat -rn

配置路由#

route 命令#

Terminal window
# 添加默认路由
route add default gw 192.168.1.1
# 添加网络路由
route add -net 10.0.0.0 netmask 255.0.0.0 gw 192.168.1.2
# 添加主机路由
route add -host 192.168.2.100 gw 192.168.1.1
# 删除默认路由
route del default gw 192.168.1.1
# 删除网络路由
route del -net 10.0.0.0 netmask 255.0.0.0
# 删除主机路由
route del -host 192.168.2.100

ip 命令#

Terminal window
# 添加默认路由
ip route add default via 192.168.1.1 dev eth0
# 添加网络路由
ip route add 10.0.0.0/8 via 192.168.1.2 dev eth0
# 添加主机路由
ip route add 192.168.2.100/32 via 192.168.1.1 dev eth0
# 删除默认路由
ip route del default via 192.168.1.1 dev eth0
# 删除网络路由
ip route del 10.0.0.0/8 via 192.168.1.2 dev eth0
# 删除主机路由
ip route del 192.168.2.100/32 via 192.168.1.1 dev eth0
# 修改路由
ip route change 10.0.0.0/8 via 192.168.1.3 dev eth0
# 替换路由
ip route replace 10.0.0.0/8 via 192.168.1.3 dev eth0

永久配置路由#

Debian/Ubuntu 系统#

/etc/network/interfaces文件中添加路由配置。

Terminal window
# 编辑网络接口配置文件
sudo nano /etc/network/interfaces
# 添加路由配置
up route add -net 10.0.0.0 netmask 255.0.0.0 gw 192.168.1.2
down route del -net 10.0.0.0 netmask 255.0.0.0 gw 192.168.1.2
# 重启网络服务
sudo systemctl restart networking

Ubuntu 18.04+ 系统#

在Netplan配置文件中添加路由配置。

Terminal window
# 编辑Netplan配置文件
sudo nano /etc/netplan/00-installer-config.yaml
# 添加路由配置
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: no
addresses: [192.168.1.100/24]
gateway4: 192.168.1.1
routes:
- to: 10.0.0.0/8
via: 192.168.1.2
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
# 应用Netplan配置
sudo netplan apply

RHEL/CentOS 系统#

在网络接口配置文件中添加路由配置,或在/etc/sysconfig/network-scripts/目录创建路由配置文件。

Terminal window
# 方法1:在网络接口配置文件中添加路由
# 编辑网络接口配置文件
sudo nano /etc/sysconfig/network-scripts/ifcfg-eth0
# 添加路由配置
GATEWAY=192.168.1.1
# 重启网络服务
sudo systemctl restart network
# 方法2:创建路由配置文件
# 创建路由配置文件
sudo nano /etc/sysconfig/network-scripts/route-eth0
# 添加路由配置
10.0.0.0/8 via 192.168.1.2 dev eth0
# 重启网络服务
sudo systemctl restart network

DNS配置#

查看DNS配置#

Terminal window
# 查看DNS配置文件
cat /etc/resolv.conf
# 查看当前DNS服务器
nslookup localhost | grep Server
# 查看DNS解析缓存(如果启用了nscd)
nscd -g | grep cache

配置DNS#

临时配置#

直接修改/etc/resolv.conf文件,重启网络服务后可能会被覆盖。

Terminal window
# 编辑DNS配置文件
sudo nano /etc/resolv.conf
# 添加DNS服务器
nameserver 8.8.8.8
nameserver 8.8.4.4

永久配置#

根据不同的Linux发行版,修改相应的配置文件。

Debian/Ubuntu 系统#

/etc/network/interfaces文件中添加DNS配置。

Terminal window
# 编辑网络接口配置文件
sudo nano /etc/network/interfaces
# 添加DNS配置
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8 8.8.4.4
# 重启网络服务
sudo systemctl restart networking
Ubuntu 18.04+ 系统#

在Netplan配置文件中添加DNS配置。

Terminal window
# 编辑Netplan配置文件
sudo nano /etc/netplan/00-installer-config.yaml
# 添加DNS配置
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: no
addresses: [192.168.1.100/24]
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
# 应用Netplan配置
sudo netplan apply
RHEL/CentOS 系统#

在网络接口配置文件中添加DNS配置。

Terminal window
# 编辑网络接口配置文件
sudo nano /etc/sysconfig/network-scripts/ifcfg-eth0
# 添加DNS配置
DNS1=8.8.8.8
DNS2=8.8.4.4
# 重启网络服务
sudo systemctl restart network

DNS测试#

Terminal window
# 测试DNS解析
nslookup google.com
# 测试DNS解析(使用指定的DNS服务器)
nslookup google.com 8.8.8.8
# 测试DNS解析
dig google.com
# 测试DNS解析(使用指定的DNS服务器)
dig @8.8.8.8 google.com
# 测试DNS解析
host google.com
# 测试DNS解析(使用指定的DNS服务器)
host google.com 8.8.8.8

网络连接测试#

ping 命令#

ping命令用于测试与目标主机的网络连接。

Terminal window
# 测试与目标主机的连接
ping google.com
# 发送指定数量的数据包
ping -c 5 google.com
# 设置数据包大小
ping -s 100 google.com
# 设置ping的超时时间
ping -W 2 google.com
# 使用IPv4
ping -4 google.com
# 使用IPv6
ping -6 google.com
# 持续ping直到按下Ctrl+C
ping google.com

traceroute 命令#

traceroute命令用于追踪数据包从本地到目标主机的路径。

Terminal window
# 追踪到目标主机的路径
traceroute google.com
# 使用ICMP协议
traceroute -I google.com
# 使用TCP协议
traceroute -T google.com
# 使用UDP协议(默认)
traceroute -U google.com
# 设置最大跳数
traceroute -m 10 google.com
# 设置数据包大小
traceroute -s 100 google.com
# 不解析主机名(加快速度)
traceroute -n google.com

mtr 命令#

mtr命令是pingtraceroute的组合,用于实时显示网络路径的质量。

Terminal window
# 启动mtr
mtr google.com
# 以报告模式运行
mtr -r google.com
# 以CSV格式输出
mtr -c 10 -C google.com
# 不解析主机名(加快速度)
mtr -n google.com
# 使用ICMP协议
mtr --icmp google.com
# 使用TCP协议
mtr --tcp google.com

curl 命令#

curl命令用于在网络上传输数据,支持多种协议。

Terminal window
# 测试HTTP连接
curl -I https://example.com
# 测试HTTPS连接
curl -v https://example.com
# 测试FTP连接
curl -I ftp://ftp.example.com
# 测试SMTP连接
curl -v smtp://smtp.example.com:25
# 测试DNS连接
curl -v telnet://8.8.8.8:53
# 测试连接速度
curl -o /dev/null -s -w "%{time_total}" https://example.com

wget 命令#

wget命令用于从网络上下载文件。

Terminal window
# 测试HTTP连接
wget --spider https://example.com
# 测试HTTPS连接
wget --spider https://example.com
# 测试FTP连接
wget --spider ftp://ftp.example.com
# 测试连接速度
wget -O /dev/null https://example.com

netcat 命令#

netcat命令用于读取和写入网络连接。

Terminal window
# 测试TCP端口
nc -zv google.com 80
# 测试UDP端口
nc -zvu google.com 53
# 扫描端口范围
nc -zv google.com 80-90
# 测试连接延迟
nc -vz google.com 80 | grep connected
# 创建简单的服务器
nc -l 8080
# 连接到服务器
nc localhost 8080

网络服务管理#

SSH服务#

查看SSH服务状态#

Terminal window
# 查看SSH服务状态
systemctl status ssh # Debian/Ubuntu
systemctl status sshd # RHEL/CentOS
# 查看SSH服务是否启动
ps aux | grep sshd
# 查看SSH服务监听的端口
netstat -tlnp | grep sshd
ss -tlnp | grep sshd

启动和停止SSH服务#

Terminal window
# 启动SSH服务
systemctl start ssh # Debian/Ubuntu
systemctl start sshd # RHEL/CentOS
# 停止SSH服务
systemctl stop ssh # Debian/Ubuntu
systemctl stop sshd # RHEL/CentOS
# 重启SSH服务
systemctl restart ssh # Debian/Ubuntu
systemctl restart sshd # RHEL/CentOS
# 重新加载SSH配置
systemctl reload ssh # Debian/Ubuntu
systemctl reload sshd # RHEL/CentOS

启用和禁用SSH服务#

Terminal window
# 启用SSH服务(开机自启)
systemctl enable ssh # Debian/Ubuntu
systemctl enable sshd # RHEL/CentOS
# 禁用SSH服务(禁止开机自启)
systemctl disable ssh # Debian/Ubuntu
systemctl disable sshd # RHEL/CentOS

配置SSH服务#

Terminal window
# 查看SSH配置文件
cat /etc/ssh/sshd_config
# 编辑SSH配置文件
sudo nano /etc/ssh/sshd_config
# 重启SSH服务使配置生效
sudo systemctl restart ssh # Debian/Ubuntu
sudo systemctl restart sshd # RHEL/CentOS

SSH安全配置建议:

  • 禁用root登录:PermitRootLogin no
  • 禁用密码登录,使用密钥登录:PasswordAuthentication no
  • 更改默认端口:Port 2222
  • 限制允许登录的用户:AllowUsers username
  • 限制允许登录的组:AllowGroups sshusers
  • 启用公钥认证:PubkeyAuthentication yes
  • 禁用X11转发:X11Forwarding no
  • 设置登录超时:LoginGraceTime 30

HTTP/HTTPS服务#

Apache服务#

Terminal window
# 查看Apache服务状态
systemctl status apache2 # Debian/Ubuntu
systemctl status httpd # RHEL/CentOS
# 启动Apache服务
systemctl start apache2 # Debian/Ubuntu
systemctl start httpd # RHEL/CentOS
# 停止Apache服务
systemctl stop apache2 # Debian/Ubuntu
systemctl stop httpd # RHEL/CentOS
# 重启Apache服务
systemctl restart apache2 # Debian/Ubuntu
systemctl restart httpd # RHEL/CentOS
# 重新加载Apache配置
systemctl reload apache2 # Debian/Ubuntu
systemctl reload httpd # RHEL/CentOS
# 启用Apache服务(开机自启)
systemctl enable apache2 # Debian/Ubuntu
systemctl enable httpd # RHEL/CentOS
# 禁用Apache服务(禁止开机自启)
systemctl disable apache2 # Debian/Ubuntu
systemctl disable httpd # RHEL/CentOS

Nginx服务#

Terminal window
# 查看Nginx服务状态
systemctl status nginx
# 启动Nginx服务
systemctl start nginx
# 停止Nginx服务
systemctl stop nginx
# 重启Nginx服务
systemctl restart nginx
# 重新加载Nginx配置
systemctl reload nginx
# 启用Nginx服务(开机自启)
systemctl enable nginx
# 禁用Nginx服务(禁止开机自启)
systemctl disable nginx

FTP服务#

vsftpd服务#

Terminal window
# 查看vsftpd服务状态
systemctl status vsftpd
# 启动vsftpd服务
systemctl start vsftpd
# 停止vsftpd服务
systemctl stop vsftpd
# 重启vsftpd服务
systemctl restart vsftpd
# 重新加载vsftpd配置
systemctl reload vsftpd
# 启用vsftpd服务(开机自启)
systemctl enable vsftpd
# 禁用vsftpd服务(禁止开机自启)
systemctl disable vsftpd

DNS服务#

BIND服务#

Terminal window
# 查看BIND服务状态
systemctl status named # RHEL/CentOS
systemctl status bind9 # Debian/Ubuntu
# 启动BIND服务
systemctl start named # RHEL/CentOS
systemctl start bind9 # Debian/Ubuntu
# 停止BIND服务
systemctl stop named # RHEL/CentOS
systemctl stop bind9 # Debian/Ubuntu
# 重启BIND服务
systemctl restart named # RHEL/CentOS
systemctl restart bind9 # Debian/Ubuntu
# 重新加载BIND配置
systemctl reload named # RHEL/CentOS
systemctl reload bind9 # Debian/Ubuntu
# 启用BIND服务(开机自启)
systemctl enable named # RHEL/CentOS
systemctl enable bind9 # Debian/Ubuntu
# 禁用BIND服务(禁止开机自启)
systemctl disable named # RHEL/CentOS
systemctl disable bind9 # Debian/Ubuntu

防火墙管理#

iptables 命令#

iptables是Linux 2.4+内核的防火墙工具。

Terminal window
# 查看防火墙规则
iptables -L
# 查看详细的防火墙规则
iptables -L -v
# 查看防火墙规则(数字格式)
iptables -L -n
# 查看防火墙规则(数字格式,详细信息)
iptables -L -nv
# 查看特定链的防火墙规则
iptables -L INPUT
# 清空所有防火墙规则
iptables -F
# 保存防火墙规则
iptables-save > /etc/iptables/rules.v4 # Debian/Ubuntu
service iptables save # RHEL/CentOS
# 恢复防火墙规则
iptables-restore < /etc/iptables/rules.v4 # Debian/Ubuntu
# 添加防火墙规则(允许SSH连接)
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# 添加防火墙规则(允许HTTP连接)
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
# 添加防火墙规则(允许HTTPS连接)
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# 添加防火墙规则(允许本地回环)
iptables -A INPUT -i lo -j ACCEPT
# 添加防火墙规则(允许已建立的连接)
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# 添加防火墙规则(拒绝所有其他入站连接)
iptables -A INPUT -j DROP
# 删除防火墙规则
iptables -D INPUT 1 # 删除INPUT链的第1条规则
# 修改防火墙规则
iptables -R INPUT 1 -p tcp --dport 22 -j ACCEPT
# 插入防火墙规则
iptables -I INPUT 1 -p tcp --dport 22 -j ACCEPT

ufw 命令(Debian/Ubuntu)#

ufw是Ubuntu和Debian系统的防火墙管理工具,是iptables的前端。

Terminal window
# 查看UFW状态
ufw status
# 查看详细的UFW状态
ufw status verbose
# 启用UFW
ufw enable
# 禁用UFW
ufw disable
# 重置UFW
ufw reset
# 允许SSH连接
ufw allow ssh
ufw allow 22/tcp
# 允许HTTP连接
ufw allow http
ufw allow 80/tcp
# 允许HTTPS连接
ufw allow https
ufw allow 443/tcp
# 允许特定端口
ufw allow 8080/tcp
# 允许特定IP访问
ufw allow from 192.168.1.100
# 允许特定IP访问特定端口
ufw allow from 192.168.1.100 to any port 22
# 拒绝连接
ufw deny 3306/tcp
# 删除规则
ufw delete allow 80/tcp
# 查看UFW规则编号
ufw status numbered
# 删除指定编号的规则
ufw delete 1

firewalld 命令(RHEL/CentOS 7+)#

firewalld是RHEL/CentOS 7+系统的防火墙管理工具,是iptables的前端。

Terminal window
# 查看firewalld状态
systemctl status firewalld
# 启动firewalld
systemctl start firewalld
# 停止firewalld
systemctl stop firewalld
# 启用firewalld(开机自启)
systemctl enable firewalld
# 禁用firewalld(禁止开机自启)
systemctl disable firewalld
# 查看防火墙规则
firewall-cmd --list-all
# 查看所有开放的端口
firewall-cmd --list-ports
# 查看所有开放的服务
firewall-cmd --list-services
# 允许SSH连接
firewall-cmd --permanent --add-service=ssh
# 允许HTTP连接
firewall-cmd --permanent --add-service=http
# 允许HTTPS连接
firewall-cmd --permanent --add-service=https
# 允许特定端口
firewall-cmd --permanent --add-port=8080/tcp
# 允许特定IP访问
firewall-cmd --permanent --add-source=192.168.1.100
# 允许特定IP访问特定端口
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port port="22" protocol="tcp" accept'
# 拒绝连接
firewall-cmd --permanent --remove-service=http
# 重新加载防火墙规则
firewall-cmd --reload
# 查看防火墙区域
firewall-cmd --get-active-zones
# 将网络接口添加到区域
firewall-cmd --permanent --zone=public --add-interface=eth0
# 重新加载防火墙规则
firewall-cmd --reload

网络监控#

netstat 命令#

Terminal window
# 显示所有网络连接
netstat -a
# 显示TCP连接
netstat -at
# 显示UDP连接
netstat -au
# 显示监听状态的端口
netstat -l
# 显示监听状态的TCP端口
netstat -lt
# 显示监听状态的UDP端口
netstat -lu
# 显示网络连接和进程
netstat -tp
# 显示网络连接、进程和数字格式
netstat -tpln

ss 命令#

ss命令是netstat的替代品,更快速、更高效。

Terminal window
# 显示所有网络连接
ss -a
# 显示TCP连接
ss -t
# 显示UDP连接
ss -u
# 显示监听状态的端口
ss -l
# 显示监听状态的TCP端口
ss -lt
# 显示监听状态的UDP端口
ss -lu
# 显示网络连接和进程
ss -tp
# 显示网络连接、进程和数字格式
ss -tpln
# 显示网络连接的详细信息
ss -s

lsof 命令#

lsof命令用于列出系统中打开的文件,包括网络连接。

Terminal window
# 显示所有网络连接
lsof -i
# 显示TCP连接
lsof -i tcp
# 显示UDP连接
lsof -i udp
# 显示特定端口的连接
lsof -i :80
# 显示特定IP的连接
lsof -i @192.168.1.100
# 显示特定进程的网络连接
lsof -i -p 1234
# 显示特定用户的网络连接
lsof -i -u username

iftop 命令#

iftop命令用于实时显示网络接口的带宽使用情况。

Terminal window
# 启动iftop
iftop
# 显示指定网络接口的带宽使用情况
iftop -i eth0
# 以字节为单位显示
iftop -B
# 不显示主机名(加快速度)
iftop -n
# 不显示端口号
iftop -N
# 显示详细信息
iftop -v

nethogs 命令#

nethogs命令用于显示每个进程的网络带宽使用情况。

Terminal window
# 启动nethogs
nethogs
# 显示指定网络接口的进程带宽使用情况
nethogs eth0
# 刷新间隔(秒)
nethogs -d 2
# 以字节为单位显示
nethogs -b

网络故障排查#

故障排查步骤#

  1. 检查网络接口状态:确认网络接口是否启用,是否有IP地址
  2. 检查物理连接:确认网线是否插好,网卡是否正常
  3. 检查本地网络:ping本地回环地址、网关
  4. 检查DNS配置:测试DNS解析
  5. 检查防火墙规则:确认防火墙是否阻止了连接
  6. 检查网络服务:确认网络服务是否正常运行
  7. 检查路由配置:确认路由表是否正确
  8. 检查网络设备:确认路由器、交换机等网络设备是否正常

常见故障及解决方案#

网络接口没有IP地址#

症状ifconfigip addr显示网络接口没有IP地址。

解决方案

  • 检查DHCP服务是否正常
  • 手动配置IP地址
  • 检查网络接口是否启用

无法ping通网关#

症状ping 192.168.1.1失败。

解决方案

  • 检查物理连接
  • 检查网关是否在线
  • 检查网络接口配置
  • 检查防火墙规则

无法ping通外网#

症状ping 8.8.8.8失败。

解决方案

  • 检查默认路由配置
  • 检查ISP连接
  • 检查防火墙规则

DNS解析失败#

症状ping google.com失败,但ping 8.8.8.8成功。

解决方案

  • 检查DNS配置
  • 检查DNS服务器是否在线
  • 尝试使用其他DNS服务器

特定端口无法访问#

症状:无法访问特定端口的服务。

解决方案

  • 检查服务是否正常运行
  • 检查防火墙规则
  • 检查端口是否被占用
  • 检查服务配置

故障排查工具#

Terminal window
# 检查网络接口状态
ip addr
ifconfig
# 检查网络连接
ping 127.0.0.1
ping 192.168.1.1
ping 8.8.8.8
ping google.com
# 检查路由表
ip route
route -n
# 检查DNS配置
cat /etc/resolv.conf
nslookup google.com
# 检查防火墙规则
iptables -L
ufw status
firewall-cmd --list-all
# 检查网络服务状态
systemctl status ssh
ps aux | grep sshd
# 检查端口是否开放
netstat -tlnp
ss -tlnp
lsof -i :22
# 检查网络连接
traceroute google.com
mtr google.com
# 检查网络流量
iftop
nethogs
# 检查网络错误
dmesg | grep -i error
dmesg | grep -i network

总结#

本文介绍了Linux网络管理中常用的命令和技巧,包括网络接口管理、IP地址管理、路由管理、DNS配置、网络连接测试、网络服务管理、防火墙管理、网络监控和网络故障排查等方面的内容。

掌握这些命令和技巧是Linux系统管理员的必备技能,它们可以帮助你更高效地管理和维护Linux系统的网络,确保网络的稳定性和安全性。通过不断练习和使用,你会逐渐熟悉这些命令,并能够灵活运用它们来解决实际问题。

练习#

  1. 使用ifconfigip命令查看网络接口信息。
  2. 配置网络接口的IP地址和子网掩码。
  3. 添加默认路由和网络路由。
  4. 配置DNS服务器。
  5. 使用pingtraceroutemtr命令测试网络连接。
  6. 配置防火墙规则,允许SSH和HTTP连接。
  7. 查看网络服务的状态,如SSH、Apache等。
  8. 使用netstatsslsof命令查看网络连接。
  9. 使用iftopnethogs命令监控网络带宽使用情况。
  10. 排查网络故障,如无法ping通外网、DNS解析失败等。

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!

赞助
Linux网络管理命令和技巧
https://blog.vanilla.net.cn/posts/2026-02-05-linux-network-management/
作者
鹁鸪
发布于
2026-02-06
许可协议
CC BY-NC-SA 4.0

评论区

目录