You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在VMware ESXi上让Linux虚拟机通过Windows虚拟机VPN路由连接

解决方案:通过VMware ESXi虚拟机实现Linux主机借助Windows VPN客户端访问远程服务器

刚好之前帮客户处理过类似的场景,给你整理一套在VMware ESXi上可行的分步方案,亲测有效:

一、先搞定ESXi的虚拟网络规划

核心思路是把两台虚拟机分成「对外连接」和「内部通信」两个网络,避免互相干扰:

  • 创建外部虚拟交换机:绑定ESXi主机的一块物理网卡,用来让Windows虚拟机连接路由器、访问互联网以及运行VPN客户端。
  • 创建内部虚拟交换机:不要绑定任何物理网卡,仅作为Windows和Linux虚拟机之间的私有通信通道,不需要开启DHCP服务。

二、配置两台虚拟机的网络和权限

1. Windows虚拟机的设置

  • 给Windows VM添加两块虚拟网卡:
    • 第一块网卡关联到外部虚拟交换机,负责连接外网和运行VPN。
    • 第二块网卡关联到内部虚拟交换机,专门用来和Linux VM通信。
  • 配置网络参数:
    • 外部网卡:自动获取IP(或手动配置路由器网段的静态IP),确保能正常上网,能顺利登录VPN客户端。
    • 内部网卡:先随便设一个静态IP(比如192.168.100.1/24),后面开启共享后会被自动覆盖,不用纠结。
  • 开启Internet连接共享(ICS):
    • 打开Windows的「网络和共享中心」,找到VPN连接对应的网络适配器,右键选「属性」→切换到「共享」标签。
    • 勾选**「允许其他网络用户通过此计算机的Internet连接来连接」**,然后在下拉菜单里选择内部交换机对应的虚拟网卡,点击确定。
    • 这时候Windows的内部网卡IP会自动变成192.168.137.1,记下来这个地址,后面Linux VM要用到。

2. Linux虚拟机的设置

  • 给Linux VM添加一块虚拟网卡,直接关联到内部虚拟交换机
  • 配置静态网络参数(以Ubuntu为例,其他发行版类似):
    • 编辑网络配置文件(比如/etc/netplan/00-installer-config.yaml),设置IP为192.168.137.2/24,网关设为192.168.137.1(就是刚才Windows内部网卡的IP)。
    • DNS可以设为192.168.137.1或者公共DNS如8.8.8.8
    • 执行sudo netplan apply生效配置。
  • 验证连通性:
    • 先ping Windows的内部IP:ping 192.168.137.1,能通说明内部网络没问题。
    • 再ping VPN连接后才能访问的远程服务器IP,如果能通,就说明整个链路通了。

三、几个容易踩坑的注意事项

  • VPN客户端的流量限制:检查Windows上的VPN客户端,有没有启用「阻止非VPN流量」「仅允许VPN流量」这类选项,如果开了要关掉,否则Linux VM的流量会被拦截。
  • ESXi防火墙规则:如果ESXi默认防火墙限制了内部交换机的通信,需要手动添加规则,允许两台VM之间的ICMP、TCP/UDP流量。
  • ICS网段自定义:如果不想用默认的192.168.137.x网段,可以通过Windows本地组策略修改ICS的默认地址范围,避免和现有网段冲突。

内容的提问来源于stack exchange,提问作者NictraSavios

火山引擎 最新活动