我有一个 QEMU VM,装有 Windows 10,我可以从中连接到 VPN。我还想将客户系统 (GNU/Linux) 连接到 VPN,但不幸的是 VPN 仅适用于 Windows。
我用它virt-manager
来管理我的虚拟机。
答案1
这里有一个针对virtualbox的解决方案:https://stackoverflow.com/questions/53573337/how-to-share-guest-vms-vpn-connection-with-host
它可以轻松地适应 QEMU,如下所示https://brockmcelroy.com/kvm-host-only和https://serverfault.com/questions/929081/how-can-i-enable-packet-forwarding-on-windows
- 使用以下命令创建 Windows VM
virt-manager
- 在
virt-manager
主窗口上右键单击QEMU/KVM
→ 详细信息 → 添加网络(+
)- 姓名:
host-only
- 模式:
Isolated
- IPv4 配置:
- 网络:
192.168.56.0/24
- 网络:
- 姓名:
- 在虚拟机的硬件详细信息中按以下
virt-manager
键Add hardware
→ 网络- 网络来源:之前创建的
host-only
隔离网络
- 网络来源:之前创建的
- 重启主机(类Unix机器)
- 在客户机(Windows VM)中打开注册表编辑器,然后在
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
编辑/创建设置下DWORD
IPEnableRouter
将其设置为1
- 重启客户机
- 在来宾中打开
Network & Internet Settings
→Network and Sharing Center
。
这里有两个网络:NAT 网络(可访问互联网)和仅主机网络(无法访问互联网):打开后者 → 属性 → Internet 协议版本 4 (TCP/IPv4) → 属性- IP地址:
192.168.56.2
- IP地址:
- 在客户机上安装 VPN 并连接到它
- 在来宾中打开
Network & Internet Settings
→Network and Sharing Center
。
打开 VPN 网络 → 属性 → 共享 → 允许使用仅主机网络 - 在主机上
ip route add xxx.yyy.zzz.www/qq via 192.168.56.2
使用 sudo 运行(xxx.yyy.zzz.www/qq
您要通过 VPN 访问的网络在哪里)
来宾重启时
- 检查仅主机网络的 IP 是否正确(上面的第 7 步)
- 连接到 VPN 后,禁用 VPN 网络共享并重新启用(上述第 9 步)