欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 美景 > 浅谈多个虚拟机(WSL和VMWare)的网络配置

浅谈多个虚拟机(WSL和VMWare)的网络配置

2025/4/3 22:26:10 来源:https://blog.csdn.net/2203_75650990/article/details/146920891  浏览:    关键词:浅谈多个虚拟机(WSL和VMWare)的网络配置

        在开发很多项目的时候,经常遇到虚拟机无法访问电脑的实体接口的问题,WSL解决了一部分问题,但是对于物理接口的访问配置过程会很复杂。而VMWare则是提供了虚拟机管理软件,大大减少了配置难度。但是对于WSL和VMWare同时存在并且能够同时访问互联网和使用ssh与主机(PC电脑)进行通信,可能需要对网络连接进行布局。

(PS.笔者就是在学习ROS的时候接触到的WSL并且被荼毒一年之久,WSL在文件传输方面确实非常方便,但是因为没有虚拟机管理软件,导致WSL在进行网络或者其他配置的时候需要手动修改配置文件,这可能会带来很多其他的问题,因此建议新手不要入坑WSL,以及下载docker-desktop,真的非常坑,找不到问题出在哪里。并且由于WSL的磁盘难以管理,有的时候这两个软件会相互纠缠导致WSL无法打开,这个时候就需要重新下载磁盘驱动程序,可能会打乱电脑的配置,因此小白慎入,大佬随意。)

       首先简单介绍一下几种网络设置:

1.NAT:创建一个私有网络,虚拟机位于该网络内部,而虚拟机通过主机作为网关访问外部网络,所以从外界看虚拟机看到的是主机IP而不是虚拟机自己有一个IP(这非常重要,涉及到SSH等网络协议连接的时候,要连接的是主机IP而不是虚拟机内部获得的IP,并且因为使用的是主机IP所以需要对虚拟机和PC电脑做一个端口映射,将虚拟机的22号端口映射到主机的某个端口作为外部访问内部网络的通道)

2.Bridged:虚拟机直接连接到外部网络,和主机获得同一网段下的独立的IP地址,在网络中是独立的设备,也就是从外界看有两个设备一个是主机一个是虚拟机。SSH等网络协议连接方便,直接用IP就行。

3.Host-only:创建一个隔离的网络,只有主机和虚拟机可以互相通信,但是虚拟机无法访问外部网络,好处是虚拟机绝对安全,并且二者的通信速度快。坏处是无法上网。

4.Internal Network:虚拟机的内部网络,主机无法访问,只有虚拟机之间可以通信,完全隔离网络环境,最高的安全等级。

WSL设置

        其中需要知道的是WSL主要默认使用NAT作为网络并且自动配置端口转发,所以主机通过localhost访问WSL服务即可。如果想要配置桥接模式,就需要配置.wslconfig文件,这个文件通常位于主机(PC)的用户目录下(C:\Users\你的用户名\):

将这个文件配置为(没有这个文件手动添加就行,但是要确保文件名字为.wslconfig(注意前面的点):

[wsl2]
networkingMode=bridged
vmSwitch=WSL
ipv6=true

就可以让WSL获得独立的IP地址,外界可以直接访问,而不需要麻烦的端口映射。

接下来就是网络适配器的设置:

首先查看当前的网络适配器,在管理员模式下的powershell中运行:

Get-NetAdapter
  • 记下物理网络适配器的名称(例如"以太网"或"Wi-Fi")

接下来是创建外部虚拟交换机:

New-VMSwitch -Name "WSL" -AllowManagementOS $True -NetAdapterName "以太网"
  • 其中"以太网"替换为实际的网络适配器名称
  • "WSL"是为新建虚拟交换机指定的名称

配置好后重启:

wsl --shutdown

VMware 配置

        这里需要配置为NAT模式,因为如果同时配置为桥接模型,会导致其中一方无法上网,原因可能是WSL的hyper-V在网络中会将物理网卡直接占有导致虚拟机无法上网。所以我们需要配置为NAT格式,然后做端口映射以让外网能够访问内部。

首先为虚拟机设置静态IP(这里设置的IP建议先开启NAT后用ifconfig查看一下DHCP服务自动分配的IP是多少,避免一些IP冲突):

# Ubuntu18以上
# 查看netplan配置文件
ls /etc/netplan/
# 编辑找到的配置文件(可能名为01-netcfg.yaml或50-cloud-init.yaml)
sudo nano /etc/netplan/01-netcfg.yaml

写入(IP自己定,最好按照DHCP自动分配的来,网关需要查一下VMWare的网络配置中的网关是多少):

network:version: 2renderer: networkdethernets:ens33:dhcp4: noaddresses: [希望固定的IP/24]gateway4: 网关(查询虚拟机软件的网络配置,文章后面有介绍)nameservers:addresses: [8.8.8.8, 8.8.4.4]

保存退出后运行:

sudo netplan apply

这样静态IP就设置好了,接下来就是对VMWare进行配置(在VMware主页中点击编辑->虚拟网络编辑器):

在里面选择一个网络使用NAT,然后进行NAT设置

添加映射:虚拟机IP填写虚拟机刚刚设置的固定IP加上“:22”(映射到固定IP上的22号端口,这里的22号就是SSH默认的端口,当然可以去ssh文件中修改这个端口,都行)。主机端口挑一个用的少的比如12134,这样就将主机的12134端口映射到了虚拟机的22号端口上可以进行SSH通信了。

        这样就能正常上网了,并且WSL和VMware同时能访问外部网络,并且都可以和主机进行SSH通信。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词