Python中主机可以上网但虚拟机不能上网的解决方案

主机不使用代理的时候一切正常,使用代理上网的时候,主机和虚拟机可以互相 ping 的通,主机正常,但是虚拟机连不上网,,,求教各位大神
Python中主机可以上网但虚拟机不能上网的解决方案

10 回复

这个问题我遇到过,一般是虚拟机的网络配置问题。

先检查虚拟机的网络模式,最常见的是NAT模式,这种模式下虚拟机共享主机的IP上网。如果主机能上网但虚拟机不行,可以按这个顺序排查:

  1. 检查虚拟机网络适配器设置
    确保虚拟机设置里网络适配器是启用状态,并且模式是NAT(或者桥接,如果你需要独立IP)。

  2. 重启虚拟机的网络服务
    在虚拟机里执行(Linux系统):

    sudo systemctl restart NetworkManager
    # 或者
    sudo systemctl restart networking
    
  3. 检查DNS配置
    有时候是DNS解析不了,可以临时改一下DNS:

    echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf
    
  4. 查看IP和网关
    在虚拟机里运行 ip addrip route,看是否获取到了IP以及默认网关是否正确。

  5. 主机防火墙或安全软件干扰
    有些主机防火墙会阻止虚拟机的NAT流量,可以暂时关闭防火墙测试。

  6. 重置虚拟网络
    在VMware/VirtualBox里,可以尝试还原虚拟网络设置到默认。

如果以上都不行,可以尝试把虚拟机网络模式改成“桥接”直接连到物理网络,这样虚拟机就像一台独立主机一样获取IP。

总结:先查虚拟机网络模式,再查IP和DNS。

谢谢你的提醒,百度的方法我试了,就是那些方法没用才来问的

= = 为什么是在 python 节点,当然是看你用什么代理软件影响你整个电脑网络状况了呗,网络排查,虚拟机 ping 外部局域网网关,dns 解析正常不,就那么几个步骤

虚拟机也设置同样的代理试试

我这里在 NAT 模式下,主机开代理虚拟机也要设置代理才能有网。但是如果是桥接模式,主机开代理,两者都有网,不过是主机走代理的网,虚拟机走非代理的网

Windows 主机,VirtualBox + Linux 虚拟机

1、虚拟机 export http_proxy=xxxxxxxxxx. export https_proxy=xxxxxxxxx.

按错了。。。直接发出去了
不然就是代理地址改成主机的 ip+端口,比如 192.168.56.1:1080 这样的。
这种情况我也遇到过。。。就这么解决了。

虚拟机用 tracert 看一下路由情况

如果是 vmware workstation 的 NAT,可能设置错网关了,假如你的 NAT 网段是 192.168.200.0/24,宿主机的 IP 是 192.168.200.1,虚拟机需要设置网关成 192.168.200.2 才可以上网。

回到顶部