这种问题通常出现在自己 DD Debian系统之后,原因在于系统的网卡名被改变,网卡自启动失败。
解决起来也很容易,ip a 查看当前网卡名,然后在/etc/network/interfaces中新增一行:auto "网卡名" ,如果有多个网卡,分别增加多行就可以了。
但是这种方法对于像搬瓦工换区以及前一段时间斯巴达服务器升级等会导致当前系统网卡名发生变化的情况,上面的方法就不行了。那么怎么解决呢?下面就具体说一说。
原生系统的默认网卡名大多是 eth0(也有可能是其他的,如果DD前没有记录的话,通过下面“确定系统原本的网卡名”命令查询即可),我们在自己 DD 系统之后网卡名会变为 ens3 之类的。我们就需要恢复网卡名。步骤也很简单:
1、确定系统原本的网卡名
dmesg | grep renamed 如果网卡名发生变化,会输出类似:virtio_net virtio1 ens3: renamed from eth0,这样的结果。 其中ens3就是你当前的网卡名,eth0就是原本默认网卡名。 如果当前网卡名未发生变化,这里就不会输出任何内容。
2、编辑GRUB文件
vi /etc/default/grub 找到 GRUB_CMDLINE_LINUX="" 这一行,将其修改为 GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0" ,然后保存退出 一键命令: sudo sed -i 's/GRUB_CMDLINE_LINUX=""/GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"/' /etc/default/grub
3、编辑网络配置文件:
说明:进行这一步时不要无脑照搬执行。首先通过ip a命令查看自己网卡名是 ens3 还是其他的。下面的命令或修改操作中涉及到的 ens3 需替换为你自己的网卡名。
vi /etc/network/interfaces 进去后将所有 ens3 修改为 eth0 ,然后保存退出 一键命令(*注意修改网卡名): sed -i 's/ens3/eth0/g' /etc/network/interfaces
4、在/etc/network/interfaces中新增一行:auto "网卡名"。如果有多个网卡的,分别增加多行。
一键命令(*根据实际情况进行修改): sudo sed -i -e '$a\' -e 'auto eth0' /etc/network/interfaces
5、更新Grub并重启VPS
update-grub reboot
重启后,可以使用ip a命令,即可发现之前的网卡名已经发生了变化。此时执行重启网卡命令也就能够正常连接了。
sudo service networking restart 或 sudo /etc/init.d/networking restart