我想要做的是:
- 拥有供客户系统使用的内部网络/能够在网络内部建立客户之间的连接
- 为客人提供互联网连接(下载更新)
- 能够使用 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),但没有任何效果。
我的问题是:
- openvpn 设置是否应该开箱即用,还是需要在 iptables 中设置一些转发规则?
- 如果是,规则是怎样的?
- 简单来说:我应该怎么做才能让它发挥作用?
答案1
首先,VirtualBox 的转发端口在 NAT 接口上还不够吗?您可以在主机上设置各种端口以转发到虚拟机上的 SSH 和 RDP 端口。
我怀疑 VirtualBox 不允许外部访问仅主机网络。您可以尝试运行另一台虚拟机作为 VPN 服务器。它还具有 NAT 和仅主机 NIC,并在 NAT 接口上进行端口转发以接受传入的 VPN 流量。