服务器与大带宽专家 · 持牌IDC/CDN/ISP服务商
简米科技官网JIANMI TECH
资讯 2026-10-24 简米科技 4,151 字 10 分钟阅读

Linux虚拟机如何配置才能访问外网?详细步骤是什么?,虚拟机联网设置教程,外网访问配置方法

导读Linux虚拟机访问外网的核心答案:把网络模式设为NAT或桥接,正确配置IP、网关和DNS,并确保宿主机允许路由转发,绝大多数连接问题都能解决, 如果图省事,选NAT模式,宿主机能上网,虚拟机就能上网;如果想让虚拟机像独立设备一样被局域网访问,选桥接模式,虚拟机无法访问外网怎么办?先区分三种网络模式打开虚拟机的……

Linux虚拟机访问外网的核心答案:把网络模式设为NAT或桥接,正确配置IP、网关和DNS,并确保宿主机允许路由转发,绝大多数连接问题都能解决。 如果图省事,选NAT模式,宿主机能上网,虚拟机就能上网;如果想让虚拟机像独立设备一样被局域网访问,选桥接模式。

虚拟机无法访问外网怎么办?先区分三种网络模式

打开虚拟机的网络设置,你通常会看到NAT、桥接、仅主机这三种模式,它们的工作方式完全不同,理解这个分类,比直接搜“linux虚拟机配置网络教程”更管用。

  • NAT模式:虚拟机通过宿主机共享IP上网,外部设备能看到宿主机,但看不到虚拟机,该模式最稳定,任何网络环境都能用。
  • 桥接模式:虚拟机直接接入物理局域网,拥有一个和宿主机同网段的独立IP,外部设备可以直接访问虚拟机,但需要你手动分配一个未被占用的IP。
  • 仅主机模式:虚拟机只能和宿主机通信,无法访问互联网,适合做实验或隔离网络,想上网得再加一块网卡。

多数情况下,初学者用NAT模式就足够了,如果你是搭建服务给同事访问,或者需要固定IP做测试,桥接模式更合适。

NAT模式:最适合“能上网就行”的场景

选择NAT模式后,虚拟机内部的eth0网卡会自动通过DHCP获取IP,通常是一个以0.2.x开头的地址,虚拟机发出的请求被VirtualBox或VMware的NAT引擎翻译成宿主机的请求发出去,这个过程中,你基本不需要手动配置任何网络参数。

如果你发现NAT模式下虚拟机无法获取IP,可以检查虚拟机的网络适配器是否勾选了“启用网络连接”,以及DHCP服务是否正常运行。

桥接模式:让虚拟机成为局域网里的一台独立设备

桥接模式下的虚拟机,相当于在现有局域网里新插了一台电脑,它需要你自己规划IP地址,并确保网关和DNS与宿主机一致,比如宿主机IP是168.1.10,网关是168.1.1,那虚拟机可以设置成168.1.100,网关一样。

这里有个容易踩坑的地方:如果你的宿主机连着Wi-Fi,桥接模式有时会因无线网卡驱动限制而无法正常工作,行业共识认为,有线网络下桥接成功率远高于无线环境。

Linux虚拟机配置网络教程:VirtualBox和VMware的实操步骤

下面分开说,VirtualBox和VMware的操作入口不同,但底层逻辑一致。

VirtualBox配置NAT访问外网的详细步骤

在VirtualBox官网下载安装后,按下面流程操作:

  1. 选中目标虚拟机,点击“设置” -> “网络”。
  2. 在“连接方式”下拉菜单里选择“NAT”。
  3. 展开“高级”,确认“控制芯片”为virtio-net或e1000(默认即可),“混杂模式”保持“拒绝”。
  4. 启动虚拟机,用ip addr命令查看网卡是否拿到0.2.x地址。
  5. 如果没拿到,在虚拟机里执行dhclient eth0手动获取,或者重启网络服务。

大多数发行版(Ubuntu、Debian、CentOS)默认开启了DHCP,所以NAT模式通常开箱即用,如果你用的是精简版或定制版系统,可能需要先激活网卡:

ip link set eth0 up
dhclient eth0

完成后ping 223.5.5.5试试,通了就说明外网已通。

VMware配置桥接模式设置静态IP的实操

VMware Workstation里桥接模式配置稍繁琐,但成功后非常稳定,局域网内其他电脑可以直接SSH进来。

  1. 右键虚拟机 -> “设置” -> “网络适配器”。
  2. 选择“桥接模式”,并勾选“复制物理网络连接状态”。
  3. 打开“编辑” -> “虚拟网络编辑器”,选中VMnet0。
  4. 在“桥接到”下拉菜单里,选择宿主机正在使用的物理网卡,比如有线以太网是“Realtek PCIe GbE”,无线是“Intel Wi-Fi 6”,不要选“自动”。
  5. 确定后启动虚拟机,用nmcli或图形界面配置静态IP。

以CentOS/RHEL系列用NetworkManager为例:

nmcli con mod ens33 ipv4.addresses 192.168.1.100/24
nmcli con mod ens33 ipv4.gateway 192.168.1.1
nmcli con mod ens33 ipv4.dns 223.5.5.5
nmcli con mod ens33 ipv4.method manual
nmcli con up ens33

这里的ens33是CentOS常见网卡名,Ubuntu新版本通常是ens1p0或enp0s3,先ip addr确认,配置完再用ping www.baidu.com验证。

命令行检查网络配置的关键命令

不管哪种模式,下面三个命令能解决80%以上的网络故障:

  • ip addr:看网卡是否存在、是否拿到IP。
  • ip route show:看默认路由是否指向正确的网关。
  • cat /etc/resolv.conf:看DNS服务器地址。

如果ip addr显示网卡没有IP,说明DHCP没生效;如果ip route里没有default via,说明没配网关;如果resolv.conf是空的,域名解析会失败,这些命令的优先级远高于图形界面。

Linux虚拟机配置好后依然不能上网?逐个排查这五个环节

有时候配置看似完美,但就是上不了网,按下面的顺序排查,通常能快速定位。

网卡没被激活?先看IP是不是获取到了

虚拟机启动后,执行ip addr看链路状态是否为UP,如果显示DOWN,用ip link set eth0 up激活,再执行nmcli device status确认网卡没有被NetworkManager“禁用”。

路由表缺少默认网关?外网数据根本发不出去

没有默认路由,虚拟机只知道怎么去内网,不知道把外网请求交给谁,临时添加:

ip route add default via 192.168.1.1 dev eth0

如果想永久生效,在/etc/sysconfig/network-scripts/ifcfg-eth0(RHEL系)或/etc/network/interfaces(Debian系)里写入GATEWAY=192.168.1.1。

DNS解析失效?能Ping通IP却打不开网页是典型症状

ping 223.5.5.5通,但ping www.baidu.com显示“未知主机”,说明DNS配置有问题,修改/etc/resolv.conf,写入:

nameserver 223.5.5.5
nameserver 114.114.114.114

如果你用的是systemd-resolved或NetworkManager,直接改resolv.conf可能会被覆盖,更稳妥的做法是用nmcli con mod eth0 ipv4.dns "223.5.5.5 114.114.114.114"。

宿主机防火墙拦截转发?NAT模式下需要开启IP转发

如果宿主机是Linux系统,默认不转发非本机的IP数据包,你需要以root身份执行:

sysctl -w net.ipv4.ip_forward=1

想永久开启,编辑/etc/sysctl.conf,加上net.ipv4.ip_forward = 1,然后sysctl -p生效,Windows宿主机一般不需要这一步,因为VirtualBox和VMware自带驱动会绕过系统防火墙。

SELinux或Firewalld在虚拟机里捣乱?临时关闭试试

在CentOS/RHEL虚拟机内,SELinux可能阻止网络服务绑定端口,执行setenforce 0临时关闭,或者运行systemctl stop firewalld确认是否由防火墙引起,如果关闭后网络正常,再针对具体服务添加例外规则。

虚拟机和宿主机都能上网,但速度很慢是怎么回事?

这种情况多半发生在桥接模式,无线网卡的链路层不适合承载多台设备的桥接流量,导致丢包或延迟,NAT模式下慢,则可能是虚拟机分配的内存或CPU太少,网络处理能力不足。

你可以先在宿主机上用iperf3测试局域网速度,排除物理链路问题,再用ethtool eth0查看虚拟机网卡速率是否达到千兆,如果一切正常但依然慢,考虑换用半虚拟化网卡(virtio)代替e1000模拟网卡,传输效率会提升一个量级。

关于Linux虚拟机网络配置的常见问题

虚拟机可以Ping通网关,但Ping不通外网IP,是什么原因?

网关通了,说明局域网链路没问题,Ping不通外网IP,问题出在NAT或路由转发环节,检查宿主机是否开启了IP转发,虚拟机默认路由是否指向正确网关,桥接模式下物理路由器是否禁用了该IP的上站权限,可以用traceroute看数据包卡在哪一跳。

VirtualBox NAT模式下如何让外网访问虚拟机?

NAT模式默认只能由虚拟机主动访问外网,外部无法直接连接,如果你需要SSH到虚拟机,使用端口转发功能,在VirtualBox的“设置” -> “网络” -> “高级” -> “端口转发”里添加规则,比如宿主机端口2222映射到虚拟机的22端口,之后用ssh 宿主机IP -p 2222访问虚拟机。

Linux虚拟机配置静态IP后重启失效怎么办?

常见原因是NetworkManager接管了网卡配置文件,在通过配置文件设置静态IP后,执行systemctl restart NetworkManager让配置生效,如果是Debian系,还要确认/etc/network/interfaces里没有与NetworkManager冲突的声明,用nmcli con mod设置的是永久配置,重启后依然保留。

配置Linux虚拟机外网访问,本质上就是搞定“IP、网关、DNS、IP转发”这四个要素,选对模式,按上述步骤排查,多数问题能在十分钟内解决。

分享本文
本文为 简米科技官网 原创,已由运维技术专家审核。转载请注明来源:原文链接
售前咨询 服务热线 售后 邮箱