插件窝 干货文章 Linux系统下常见的网络问题及其解决方法

Linux系统下常见的网络问题及其解决方法

检查 网络 sudo 问题 604    来源:    2025-04-18

Linux系统下常见网络问题及解决方法

1. 网络连接完全不通

问题表现:无法访问任何网络资源,ping不通网关或外部地址

解决方法

# 1. 检查物理连接
ip link show  # 查看网卡状态(是否UP)
dmesg | grep eth  # 查看网卡驱动是否加载

# 2. 检查IP配置
ip addr show  # 或 ifconfig(较老系统)

# 3. 检查默认网关
ip route show  # 或 route -n

# 4. 检查DNS配置
cat /etc/resolv.conf

# 5. 测试网络连通性
ping -c 4 8.8.8.8  # 测试基础连通性
ping -c 4 your_gateway_ip  # 测试局域网连通性

2. DNS解析问题

问题表现:可以ping通IP但无法解析域名

解决方法

# 1. 检查DNS配置
cat /etc/resolv.conf

# 2. 测试DNS解析
nslookup example.com
dig example.com
host example.com

# 3. 临时修改DNS(重启后失效)
echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf

# 4. 永久修改DNS(根据发行版不同)
# Ubuntu/Debian: 修改/etc/netplan/*.yaml 或 /etc/network/interfaces
# CentOS/RHEL: 修改/etc/sysconfig/network-scripts/ifcfg-eth0

3. SSH连接问题

问题表现:无法通过SSH连接到Linux服务器

解决方法

# 1. 检查SSH服务状态
sudo systemctl status sshd  # Ubuntu/Debian
sudo systemctl status ssh   # CentOS/RHEL

# 2. 检查防火墙设置
sudo iptables -L  # 查看防火墙规则
sudo ufw status   # Ubuntu防火墙状态

# 3. 检查SSH端口是否监听
sudo netstat -tulnp | grep ssh
ss -tulnp | grep ssh

# 4. 检查SELinux状态(如果启用)
getenforce
sudo setenforce 0  # 临时禁用测试

4. 网络速度慢或不稳定

问题表现:网络连接时断时续或速度明显低于预期

解决方法

# 1. 测试网络质量
ping -c 100 your_gateway_ip  # 检查丢包率
mtr -n 8.8.8.8  # 可视化路由跟踪

# 2. 检查带宽使用情况
iftop -i eth0  # 需要安装iftop
nload eth0     # 需要安装nload

# 3. 检查网络队列
tc -s qdisc show dev eth0

# 4. 检查MTU设置
ip link show eth0 | grep mtu
ping -M do -s 1472 8.8.8.8  # 测试MTU(1472+28=1500)

5. 防火墙相关问题

问题表现:特定服务无法访问,但服务本身运行正常

解决方法

# 1. 检查iptables规则
sudo iptables -L -n -v

# 2. 临时开放端口(例如80端口)
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT

# 3. 保存iptables规则(根据发行版不同)
sudo iptables-save > /etc/iptables.rules  # 然后配置加载规则

# 4. 对于firewalld(CentOS/RHEL)
sudo firewall-cmd --list-all
sudo firewall-cmd --add-port=80/tcp --permanent
sudo firewall-cmd --reload

6. 路由问题

问题表现:可以访问某些网络但无法访问其他网络

解决方法

# 1. 查看路由表
ip route show
route -n

# 2. 添加临时路由
sudo ip route add 192.168.1.0/24 via 10.0.0.1 dev eth0

# 3. 永久添加路由(根据发行版不同)
# Ubuntu/Debian: 编辑/etc/network/interfaces
# CentOS/RHEL: 编辑/etc/sysconfig/network-scripts/route-eth0

# 4. 检查策略路由
ip rule list

7. 网络接口配置问题

问题表现:网卡无法获取IP或无法正常工作

解决方法

# 1. 重启网络服务
sudo systemctl restart networking  # Ubuntu/Debian
sudo systemctl restart network    # CentOS/RHEL

# 2. 手动配置IP地址
sudo ip addr add 192.168.1.100/24 dev eth0
sudo ip link set eth0 up

# 3. 使用DHCP获取IP
sudo dhclient eth0

# 4. 检查网络管理器状态(如果使用)
sudo systemctl status NetworkManager

8. 网络命名空间问题

问题表现:容器或虚拟网络环境中的网络问题

解决方法

# 1. 检查网络命名空间
ip netns list

# 2. 在特定命名空间中执行命令
ip netns exec namespace_name ip addr show

# 3. 检查veth对
ip link show type veth

# 4. 检查网桥配置
brctl show  # 需要安装bridge-utils

高级诊断工具

# 数据包捕获
sudo tcpdump -i eth0 -w capture.pcap
sudo tshark -i eth0  # 需要安装wireshark

# 网络性能测试
iperf3 -s  # 服务器端
iperf3 -c server_ip  # 客户端

# 连接追踪
ss -tulnp  # 查看所有连接
lsof -i    # 查看进程使用的网络连接

# 系统日志检查
journalctl -u network.service --no-pager -n 50  # systemd系统
dmesg | grep eth0  # 检查内核日志

常见配置文件位置

  • /etc/network/interfaces (Debian/Ubuntu网络配置)
  • /etc/sysconfig/network-scripts/ifcfg-eth0 (RHEL/CentOS网络配置)
  • /etc/netplan/*.yaml (Ubuntu 18.04+网络配置)
  • /etc/resolv.conf (DNS配置)
  • /etc/hosts (本地主机名解析)
  • /etc/nsswitch.conf (名称服务切换配置)
  • /etc/iptables/rules.v4 (iptables规则保存位置)

通过以上方法和工具,可以诊断和解决Linux系统中的大多数常见网络问题。