Linux服务器网络连接故障排除的完整指南

 更新时间:2025年07月02日 09:07:30   作者:这儿有一堆花  
在当今的IT环境中,网络故障排除是一项必备技能,Linux作为服务器操作系统的首选,其网络管理与故障排除显得尤为重要,本文将详细探讨Linux网络故障排除中常用命令和工具的使用方法和技巧,需要的朋友可以参考下

当 Linux 服务器似乎离线或无法访问时,您应该始终能够通过 UpCloud 控制面板的 Web 控制台或通过 VNC 连接登录。登录后,使用 ping 和公共 IP 地址(例如 Google 的公共 DNS 服务器)测试服务器的互联网连接,如果互联网连接正常,这很可能会得到回复。

ping -c 4 8.8.8.8

输出结果应类似以下内容:

PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=58 time=1.68 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=58 time=1.70 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=58 time=1.71 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=58 time=1.69 ms

--- 8.8.8.8 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 1.686/1.699/1.718/0.051 ms

如果服务器无法到达目的地,则可能是配置问题。请按照此处描述的步骤排除 Linux 云服务器最常见的网络问题。

检查网络配置

如果您的 Linux 服务器无法访问,请首先检查网络接口。使用 ip addr 命令查看所有接口的状态,确保关键连接(如 eth0)已启用。如果发现任何接口被禁用,请使用 ifup 激活它们。通过使用 ifdown --forceifup 命令重新启动接口来解决持续存在的问题。

确保网络接口(例如 eth0)已启用。要查看所有已配置的接口,请使用此命令:

ip addr

命令的输出将显示服务器上每个网络接口的状态,例如,如下所示为“state UP”或“state DOWN”:

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000

使用以下命令打开任何禁用的接口:

sudo ifup <interface name>

这里的接口名称是 ip addr 命令输出中列出的名称之一,例如 eth0、eth1 或 eth2。

当所有网络接口都已启用后,请再次尝试使用 ping 命令。如果问题仍然存在,请检查网络接口是否已分配 IP,并且它们与 UpCloud 控制面板的网络部分:https://upcloud.com/resources/tutorials/troubleshoot-network-connectivity-linux-server/#network-section中的信息匹配。

尝试使用以下命令重新启动任何有问题的接口:

sudo ifdown <interface name>
sudo ifup <interface name>

如果其中任何一个命令失败,则接口可能处于命令脚本未知的状态。请尝试再次使用 --force 参数执行相同的命令以解决此类问题:

sudo ifdown --force <interface name>
sudo ifup <interface name>

如果重新启动网络接口解决了问题,那就太好了!如果不是,请继续进行故障排除。

检查网络配置文件

Linux 通常将网络设置存储在特定文件中,并在启动时或使用 ifup 命令时读取它们。要更改网络配置,您需要使用文本编辑器打开正确的文件。在基于 Debian 和 Ubuntu 的发行版中,可以使用以下命令完成此操作:

sudo nano /etc/network/interfaces

在大多数情况下,接口文件应列出以下接口:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

auto eth1
iface eth1 inet dhcp

在 CentOS 和其他 Red Hat 变体中,这些配置被拆分为每个网络接口的单独文件,并存储在 /etc/sysconfig/network-scripts/ 中。互联网连接的默认接口通常称为 eth0,它会打开相应的配置文件:

sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0

eth0 的配置文件应如下所示:

DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes

如果接口配置文件与此处示例不匹配,请编辑特定于您系统的文件以恢复原始功能。要使对这些文件所做的任何更改生效,您必须按照前面使用 ifdownifup 命令所述重新启动应用更改的接口。

检查服务器的 DNS 记录

如果您的服务器可以 ping IP 但无法连接到域,则可能是 DNS 问题。使用 ping upcloud.com 测试域名解析,并使用 sudo cat /etc/resolv.conf 检查 DNS 配置。确保您的 DNS 服务器(例如 UpCloud 的解析器)在此文件或通过您的网络接口文件正确配置。

ping upcloud.com

如果域没有回复,问题很可能出在服务器如何将域名解析为 IP 地址。检查服务器的 DNS 记录:

sudo cat /etc/resolv.conf

列表应至少包含 1 个名称服务器。UpCloud 的所有默认 DNS 解析器无论可用区如何都具有相同的 IP 地址。DNS 服务器由 DHCP 协议自动提供,操作系统中无需手动配置。

UpCloud DNS 解析器 IPv4 地址为:

  • 94.237.127.9
  • 94.237.40.9

如果您的服务器具有公共 IPv6 地址,您还可以将 IPv6 与以下服务器一起使用:

  • 2a04:3540:53::1
  • 2a04:3544:53::1

如果列表为空,请勿手动编辑,因为如果您安装了名称服务器管理器,您所做的任何更改都将被还原。相反,您可以尝试使用此命令在 Ubuntu 和某些 Debian 系统上更新它:

sudo resolvconf -u

在未安装 resolvconf 的 Debian 服务器上,您可以直接编辑 resolv.conf 文件:

sudo nano /etc/resolv.conf

将以下行添加到文件,保存并退出:

nameserver 94.237.127.9
nameserver 94.237.40.9

对于那些安装了 resolvconf 的用户,如果更新命令后 resolv.conf 仍然为空,您可以将名称服务器添加到您的接口文件。打开它进行编辑:

sudo nano /etc/network/interfaces

在 eth0 部分的末尾添加一个名称服务器:

auto eth0
iface eth0 inet dhcp
dns-nameservers 94.237.127.9

之后,保存文件并退出。您还需要使用以下命令重新启动网络服务:

sudo service networking restart

在 CentOS 和其他 Red Hat 变体中,resolv.conf 文件的填充方式略有不同,如果文件为空,您可以在负责公共 IP 的网络接口的网络配置文件中添加最多两个 DNS 条目。例如,使用以下命令打开 ifcfg-eth0:

sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0

编辑文件使其看起来像这样:

DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
DNS1=94.237.127.9
DNS2=94.237.40.9

退出编辑器并使用 ifdownifup 命令重新启动您刚刚编辑配置文件的接口。

双向测试连接

尝试通过互联网 ping 您的服务器。在您自己的计算机上打开终端或命令提示符,然后尝试 ping 您的服务器的公共 IP,您可以在 UpCloud 控制面板的网络部分:https://upcloud.com/resources/tutorials/troubleshoot-network-connectivity-linux-server/#network-section下找到它。

在您自己的计算机上:ping <server public IP>

通过从您的服务器 ping 另一个站点来测试互联网连接。例如,使用以下命令 ping Google 的公共 DNS:

ping 8.8.8.8

如果您在您的帐户上部署了第二台服务器,并且问题出在分配了私有 IP 地址的接口上,请尝试使用 UpCloud 控制面板中列出的私有 IP 从您的其他服务器 ping 它。

如果 ping 未能收到回复,则问题可能出在服务器的网络配置或防火墙。如果您可以从本地计算机 ping 服务器,但不能从服务器本身 ping,则问题可能出在服务器的出站网络配置。

检查防火墙

如果您的服务器网络配置正确但仍然无法连接,则防火墙可能会阻止流量。使用 sudo iptables -L -n 检查 iptables 规则,或使用 sudo firewall-cmd --list-all 检查 firewalld。使用 sudo systemctl stop firewalldsudo iptables -F 暂时禁用防火墙,以查看是否解决了问题。如果解决了,请重新启用它并添加特定规则以允许必要的流量。

要检查防火墙规则,请使用以下命令:

sudo iptables -L -n

对于 firewalld:

sudo firewall-cmd --list-all

要暂时禁用防火墙(请谨慎使用):

sudo systemctl stop firewalld
# 或者对于 iptables
sudo iptables -F

如果禁用防火墙解决了问题,您需要添加特定规则以允许必要的流量。例如,要允许 HTTP 流量:

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT

检查丢包和延迟

高丢包或延迟会严重影响网络性能。使用 mtr 诊断网络路径问题,它结合了 pingtraceroute 功能。分析输出以确定数据包在哪里被丢弃或延迟,从而指示路由器或网络段的潜在问题。

要检查丢包和延迟,请使用 mtr

mtr google.com

此命令将显示您的数据包所采用的路径以及每个跃点的延迟和丢包。查找特定跃点处的高丢包或延迟以查明问题区域。

以上就是Linux服务器网络连接故障排除的完整指南的详细内容,更多关于Linux网络连接故障排除的资料请关注脚本之家其它相关文章!

相关文章

  • Linux shell中的test命令用法教程

    Linux shell中的test命令用法教程

    这篇文章主要给大家介绍了Linux shell中的test命令用法的相关资料,test命令是shell环境中测试条件表达式的实用工具,文中介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-04-04
  • Linux解决Unknown filesystem问题

    Linux解决Unknown filesystem问题

    当Linux系统出现「Unknown filesystem」错误,通常是GRUB引导问题,首先在GRUB命令行输入ls查看信息,记录返回的分区信息,使用PE系统,如「微PE」,并利用「显示隐藏分区」工具查看所有分区,在文件资源管理器中找到「boot」文件夹所在的分区
    2024-10-10
  • linux之truncate命令、split命令用法及说明

    linux之truncate命令、split命令用法及说明

    本文介绍了Linux中的truncate和split命令,truncate命令用于将文件大小缩小或扩展到指定大小,可用于清除日志文件等;split命令用于将大文件拆分成多个小文件,可按行数、字节大小或循环分布等方式切割文件
    2026-05-05
  • Linux使用pkill清理各种服务进程的方法大全

    Linux使用pkill清理各种服务进程的方法大全

    这篇文章主要介绍了如何使用pkill命令清理不同类型的服务器进程,包括Java-jar、Redis、Elasticsearch、Nginx等服务的清理方法,同时,还提供了通用的安全清理策略,如按用户、端口或组合匹配清理,并建议使用脚本和进程管理工具来实现更安全和高效的清理
    2025-12-12
  • Linux下Nginx安装的方法(pcre和openssl)

    Linux下Nginx安装的方法(pcre和openssl)

    本篇文章主要介绍了Linux下Nginx安装的方法(pcre和openssl),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • Linux基于SSH的加密传输文件的五种操作技巧

    Linux基于SSH的加密传输文件的五种操作技巧

    还在用U盘倒腾文件?或者忍受着FTP的不安全传输?作为Linux老司机,你必须掌握这些基于SSH的加密文件传输技巧!本文将揭秘5种既安全又高效的传输方案,从简单的单文件秒传到复杂的目录实时同步,需要的朋友可以参考下
    2025-06-06
  • Linux下MySQL数据库定时备份脚本与Crontab配置教学

    Linux下MySQL数据库定时备份脚本与Crontab配置教学

    在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份 MySQL 定时备份脚本,并讲解如何通过 crontab 实现自动化,感兴趣的小伙伴可以参考一下
    2025-09-09
  • linux用户组以及权限总结

    linux用户组以及权限总结

    这篇文章主要介绍了linux用户组以及权限总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • 详解ubuntu 16.04 LTS 降级安装gcc 4.8

    详解ubuntu 16.04 LTS 降级安装gcc 4.8

    本篇文章主要介绍了ubuntu 16.04 LTS 降级安装gcc 4.8 ,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04
  • CentOS 7.2配置Apache服务httpd(下)

    CentOS 7.2配置Apache服务httpd(下)

    这篇文章主要为大家详细介绍了CentOS 7.2配置Apache服务 httpd上篇,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11

最新评论