在使用Linux服务器进行程序部署时,经常会遇到各种网络连接问题。最近我在工作中遇到一个比较典型的情况:服务器重启后突然无法通过SSH连接,外网也ping不通,但通过VNC却能正常登录。经过一系列排查,最终发现问题出在网卡IP绑定上。我将详细记录这个问题的排查过程和解决方案。
服务器出现以下异常情况:
首先使用ip a
命令检查网络接口配置,
输出结果显示eth0
网卡上没有绑定外网IP地址,这解释了为什么无法通过外网访问服务器。
接着尝试通过DHCP自动获取IP地址:
命令返回如下结果:
bound to 109.115.15.22 -- renewal in 3600 seconds.
这个输出表明:
强制刷新 DHCP 并重新获取IP进行绑定(临时的):
sudo dhclient -r eth0 # 释放当前 DHCP 租约
sudo dhclient -v eth0 # 重新获取 IP
验证网络是否恢复:ping 8.8.8.8
如果能够正常ping通,说明网络连接已恢复。
为了防止服务器重启后再次出现IP丢失的问题:
netplan
和 interfaces
网络服务,用本文推荐使用 netplan
禁用传统 interfaces networking
服务:
sudo systemctl stop networking
sudo systemctl disable networking
备份并清空 /etc/network/interfaces
:
sudo mv /etc/network/interfaces /etc/network/interfaces.bak
配置 netplan
:
sudo nano /etc/netplan/01-netcfg.yaml
写入以下内容(根据你的实际网络参数调整):
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: no
addresses: [109.115.15.22/24]
gateway4: 109.115.15.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
完成后,快捷键Ctrl + O
保存Ctrl + X
退出
应用配置:
这个案例展示了Ubuntu服务器上一种典型的网络连接问题。通过系统命令排查,我们发现根本原因是网卡没有正确绑定外网IP地址。虽然手动绑定可以临时解决问题,但建议进一步检查系统网络配置,找出IP地址丢失的根本原因,以避免问题再次发生。