route add -p 后,原来的有线网连不上了

解决Linux的eth0网卡突然消失

说实话,eth0 在 Linux 中突然消失了,这还是挺烦人的。
你可以在Windows下尝试一下,也许会成功。

首先在Windows桌面上找到“这台电脑”块,右键单击它并选择“管理”。
将出现一个新窗口。

然后,查看左上角的两个选项卡,单击“服务和应用程序”,然后单击“服务”。
您需要在这里找到两项服务。
具体名称取决于所使用的虚拟机软件。
如果您是 VMware,则可能是 VMwareDHCPService 和 VMwareNATService。
对于 VirtualBox,这可能是 VirtualBoxHost-OnlyNetworkService。

找到它后,右键单击它并选择“开始”。
如果已经启动但问题仍未解决,可以先单击“停止”,然后单击“启动”。

完成后,返回您的 Linux 虚拟机并查看一下。
通常 eth0 会单独出现。
如果您仍然不确定,可以使用命令行检查。
比如输入ifconfig或者ip a,都可以看到网卡的状态。
如果它没有自行显示,您必须手动执行。
命令是 sudo ifup eth0。
或者,您可以简单地单击虚拟机的 GUI,搜索您的网络连接,然后单击“连接”。

请注意,不同虚拟机软件的服务名称可能不同。
如果您无法确定这是什么服务,请在列表中查找“VMware”、“VirtualBox”、“Hyper-V”或“网络”、“DHCP”和“NAT”等字样。
通常,这些是与虚拟机网络直接相关的服务。

另外,有时该服务无法启动,是因为它所依赖的其他服务没有得到正确处理。
例如,Windows“网络连接”服务。
如果启动失败,必须先启动依赖的服务。

最重要的是,如果启动服务但网卡仍然没有恢复,则需要检查虚拟机软件的网络适配器设置。
检查类型是否已更改,例如从 NAT 更改为仅网桥或主机。
如果你改变了,就再改变一次。
或者您可以在VMware中打开“虚拟网络编辑器”,然后单击“恢复默认设置”。

如果在Linux中问题仍然存在,您需要使用命令来解决问题。
例如,输入 dmesg | grep eth0 查看初始化网卡是否有错误。
或者您可以重新加载驱动程序模块。
命令为 sudo modprobe -r <网卡驱动名称>,例如 e1 000 或 virtio_net。
加载完成后,使用 sudo modprobe <网卡驱动名称> 重新加载。

最后,不要忘记检查 Linux 中的网络配置文件,例如 /etc/network/interfaces 或 /etc/sysconfig/network-scripts/ifcfg-eth0,看看它们是否已更改。

操作前最好先给虚拟机拍个快照,以便出现故障时可以恢复。
如果您怀疑是软件冲突或系统更新造成的,您可以使用快照返回到之前的状态。

其实原理很简单。
Linux虚拟机的eth0网络适配器要工作,必须依赖Windows主机上的虚拟机服务,例如配置虚拟交换机或使用DHCP分配IP。
如果停止这些服务,虚拟机将无法获取网络配置,eth0自然会“消失”。
重新启动服务,网络堆栈即可恢复正常运行。

就这样吧,一般都能解决。
如果你还是不明白,可能是您需要检查硬件兼容性或者虚拟机软件是否太旧。

linux系统重启网卡命令

说白了,重启Linux网卡最靠谱的命令是sudo ifdown eth0 && sudo ifup eth0,但背后有很多技巧。

首先让我告诉你最重要的事情。
该命令可以通过先关闭网络然后通过“暴力重置”重新打开网络来修复 9 0% 的网络中断问题。
去年,当我运行我的监控系统时,我遇到了 IP 冲突,这个命令在几秒钟内恢复了它。
另外需要注意的是,运行时需要确保你的网卡名称正确。
系统名称现在很复杂。
eth0 早已被 ens3 3 和 enp0s3 取代。
您可以使用 ip addr 最准确地检查它。
还有另一个重要的细节。
如果/etc/network/interfaces写错了,ifup会直接崩溃。
在这种情况下,您必须手动更改文件并重新启动。

说实话,我很困惑。
一开始以为服务网络重启就可以了,后来发现SysVinit在CentOS7 +机器上长时间无人看管,直接报错。
等一下,如果你的网卡是由 NetworkManager 管理的,使用 nmcli 会更流畅(例如 eth0 down nmcli 连接 && eth0 up nmcli 连接)。
但是,此命令会导致重新启动速度变慢。

注意:重启前一定要使用IP链接检查网卡状态,不要关闭。
因为上次的事,我被困了很长时间。
我建议首先使用 systemctl 重新启动网络。
您的系统现在支持此功能,但您必须记住首先停止 NAT 代理。