如何使用 openvpn 从外部连接到 virtualbox 的 host-only 网络

如何使用 openvpn 从外部连接到 virtualbox 的 host-only 网络

我想要做的是:

  • 拥有供客户系统使用的内部网络/能够在网络内部建立客户之间的连接
  • 为客人提供互联网连接(下载更新)
  • 能够使用 ssh(Linux 客户机)/rdp(Windows 客户机)连接到客户机

我的设置是:Ubuntu oneiric 主机系统使用 Virtualbox 来虚拟化一些客户机(linux 和 windows)。

我为每个客户机设置了两个网络适配器:

  • NAT
  • 仅主机网络 vboxnet0

我正在尝试在主机系统上设置 openvpn 服务器,以允许连接到仅主机网络 vmnet0。为访客提供公共 IP 地址对我来说不是一个选择,因为我不想让这些访客公开访问,而且我没有足够的 IP 地址提供给访客。

我安装了 openvpn 服务器并尝试桥接至 vboxnet0,但根本就没有连接,还尝试使用路由 ip 隧道:

dev tun
server 192.168.56.0 255.255.255.0

使用最后一个配置,我可以连接到 vpn 服务器并获取内部 ip 地址。我可以 ping 通 192.168.56.1 的服务器,但无法 ping 通来宾 (192.168.56.101)。如果我从主服务器进行 ping,则可以 ping 通两个地址。

我对 iptables 没什么经验,因此没有为此设置任何规则,这可能是问题所在。我尝试在主机系统上启用 ipforwarding(sysctl -w net.ipv4.ip_forward=1),但没有任何效果。

我的问题是:

  1. openvpn 设置是否应该开箱即用,还是需要在 iptables 中设置一些转发规则?
  2. 如果是,规则是怎样的?
  3. 简单来说:我应该怎么做才能让它发挥作用?

答案1

首先,VirtualBox 的转发端口在 NAT 接口上还不够吗?您可以在主机上设置各种端口以转发到虚拟机上的 SSH 和 RDP 端口。

我怀疑 VirtualBox 不允许外部访问仅主机网络。您可以尝试运行另一台虚拟机作为 VPN 服务器。它还具有 NAT 和仅主机 NIC,并在 NAT 接口上进行端口转发以接受传入的 VPN 流量。

相关内容