You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Windows宿主机访问VirtualBox Ubuntu虚拟机内建立的VPN网络

解决方案

1. 修正宿主机静态路由

你当前配置的路由下一跳存在错误:192.168.56.1是宿主机侧Host-only网卡的默认网关IP,并非Ubuntu客户机的IP,从你给出的Apache访问地址可确认,客户机Host-only网段IP为192.168.56.101。先删除错误路由再添加正确路由:

route delete 10.0.0.0 mask 255.0.0.0 192.168.56.1
route add -p 10.0.0.0 mask 255.0.0.0 192.168.56.101

2. 配置Ubuntu客户机IP伪装(NAT)

仅开启ip_forward无法让跨网段流量正常往返,需要配置iptables规则,将来自Host-only网段的访问流量伪装成VPN接口的IP:
首先执行ip a确认AnyConnect对应的虚拟接口名,通常地址段为办公网网段的接口为tun0
随后添加NAT和转发规则:

# 配置SNAT伪装
iptables -t nat -A POSTROUTING -o tun0 -s 192.168.56.0/24 -d 10.0.0.0/8 -j MASQUERADE
# 配置转发规则,将enp0s3替换为你的Ubuntu客户机Host-only对应的物理网卡名
iptables -A FORWARD -i tun0 -o enp0s3 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i enp0s3 -o tun0 -j ACCEPT

如果需要规则重启后生效,安装iptables-persistent包保存当前规则即可。

3. 关闭Ubuntu客户机反向路径过滤

避免系统校验到数据包路由路径不对称直接丢弃:

sysctl -w net.ipv4.conf.all.rp_filter=0
sysctl -w net.ipv4.conf.tun0.rp_filter=0
# 将enp0s3替换为你的Ubuntu客户机Host-only对应的物理网卡名
sysctl -w net.ipv4.conf.enp0s3.rp_filter=0

要永久生效的话把以上配置写入/etc/sysctl.conf后执行sysctl -p。

4. 解决DNS配置报错问题

当前宿主机无法连通10.66.68.70所以系统校验报错,完成以上三步后先测试宿主机是否能ping通10.66.68.70,连通后再执行之前的netsh命令添加DNS即可。
如果依然添加失败,可以在Ubuntu客户机上安装dnsmasq做DNS转发,将宿主机的DNS设置为192.168.56.101即可。

可选校验步骤

  • 在Ubuntu客户机上执行tcpdump -i tun0 icmp,然后在宿主机ping任意10段的办公网IP,确认有流量进出
  • 如果还是不通,检查企业AnyConnect是否有限制客户端流量转发的策略,部分企业配置会禁止VPN客户端转发其他设备的流量,这种情况可以改用开源vpnc客户端连接VPN绕过限制。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 00:45:04