VirtualBox

VirtualBox客户机和主机之间设置 OpenVPN

由 Tim Day 贡献,2007/03/13

情景

您有一台主机(下文假定为 Debian Etch),您正在其上以 NAT 模式运行多个 VBox 虚拟机。我们称它们为 debianvm 和 ubuntuvm。您可以从这些虚拟机连接到您的局域网和互联网,使用 ssh、http 等,但您可能会感到失望,因为 VBox NAT 不支持端口转发,所以无法连接到这些虚拟机。

(注意:从版本 1.3.8 开始,VBox 支持端口转发)

您的选择有

  • 向 vbox-users 邮件列表提交查询。然后被告知,NAT 模式不支持此功能,这并非不合理。
  • 阅读关于“主机接口网络”的文档。然后因为看起来非常复杂而望而却步。
  • 按照以下说明在这些虚拟机中运行 OpenVPN 客户端,使它们(几乎)成为您局域网的一等公民,并允许您连接到它们。

操作步骤

在主机上(此处假定为 192.168.7.3),以 root 身份

首先,启用数据包转发(在 /etc/sysctl.conf 中取消一行注释即可)。然后

apt-get install openvpn cd /etc/openvpn cat<<EOF > debianvm.conf dev tun ifconfig 10.8.0.5 10.8.0.6 keepalive 10 60 port 1195 EOF /etc/init.d/openvpn start

在 debianvm 客户机上,以 root 身份

apt-get install ssh openvpn cd /etc/openvpn cat<<EOF > debianvm.conf remote 192.168.7.3 dev tun ifconfig 10.8.0.2 10.8.0.1 keepalive 10 60 redirect-gateway EOF /etc/init.d/openvpn start

在主机上

ping 10.8.0.2

应该有响应。并且

ssh -l root 10.8.0.2

应该能让您登录。

[SSH 没什么特别之处;例如,主机端的 xtightvncviewer 连接到客户机上运行的 tightvncserver 也能正常工作]。

这可能就是您所需要的一切,在这种情况下请跳过下一节。

多个虚拟机

现在我们也将设置 ubuntuvm。我们只需在主机上运行另一个 openvpn;它需要监听不同的端口号(但在我看来,这比设置 OpenVPN 的服务器模式更容易)。我们需要添加 +4 以获取下一个可用的 IP 地址(debianvm 的链接使用了 .1 和 .2 作为端点,.0 和 .3 作为网络和广播地址;ubuntuvm 将使用 .4 到 .7,其中 .5 和 .6 是端点)。

在主机上(仍在 /etc/openvpn 目录中以 root 身份)

cat<<EOF > ubuntuvm.conf dev tun ifconfig 10.8.0.5 10.8.0.6 keepalive 10 60 port 1195 EOF /etc/init.d/openvpn restart

在客户机上

# 注意:首先您需要启用 "universe" 仓库并运行 apt-get update

apt-get install ssh openvpn

cat<<EOF > ubuntuvm.conf remote 192.168.7.3 1195 dev tun ifconfig 10.8.0.6 10.8.0.5 keepalive 10 60 redirect-gateway EOF /etc/init.d/openvpn restart

在主机上

ping 10.8.0.6

应该有响应。并且

ssh -l username 10.8.0.6

应该能让您登录到 ubuntuvm(别忘了:ubuntu 不允许 root 登录)。

您还会发现您可以直接从 debianvm ssh(或其他方式)到 ubuntuvm,反之亦然。

收尾工作

在 Debian 上,openvpn 初始化脚本会在启动时为 /etc/openvpn 中的任何配置文件运行 openvpn,因此不需要再次重复上述任何设置;VPN 隧道应该会自动出现。

确保您的所有机器在

10.8.0.2 debianvm 10.8.0.6 ubuntuvm

中包含这些条目(或您用于主机名解析的任何其他方式)。

确保您的局域网已设置为通过 192.168.7.3 的网关路由 10.8.0.0/255.255.255.0 网段。

您现在应该可以像连接到局域网上的其他任何机器一样连接到 debianvm 和 ubuntuvm。

免责声明

  • 上述内容不包括加密。只是想指出这一点,以防有人假定 OpenVPN 默认会进行加密。请参阅 openvpn 文档;使用静态密钥会在上述配置基础上为每个虚拟机增加 4 行(生成密钥,使用 scp 传输到客户端,在 .conf 文件中添加一行)。
  • OpenVPN 不支持广播。这可能会导致某些 Windows 功能出现问题。
  • 客户端配置中的 `redirect-gateway` 会将所有流量通过 VPN 隧道重定向。怀疑这可能会以某种方式破坏与 NAT 模式 VirtualBox 内置 DHCP 服务器的 DHCP 交互,但到目前为止对我来说一切正常。
最后修改 18 年前 最后修改于 2007/03/15 04:45:22 PM
注意: 查看 TracWiki 获取使用维基的帮助。

© 2025 Oracle 支持 隐私 / 不要出售我的信息 使用条款 商标政策 自动化访问礼仪