我需要测试我的软件在互联网上的运行情况,即两台机器可以通过主机地址和名称解析相互通信,中间使用路由器和端口转发。最好的方法是什么?我可以使用任何操作系统并在虚拟机上进行设置。
机器 A | 路由器 | 调制解调器/互联网/WAN?| DNS 服务器 | 调制解调器/互联网/WAN?| 路由器 | 机器 B
基本上,我需要模拟一台机器,该机器具有对另一台机器隐藏的内部 IP 地址,并且该机器只能通过具有端口转发的另一个 IP 地址(路由器)访问。
答案1
您可以使用 WANem,这是一个专门用于模拟互联网的 Linux 发行版。
- 官方网站 :http://wanem.sourceforge.net/
- PacketLife.net 上的文章: http://packetlife.net/blog/2011/jan/12/emulating-wans-wanem/
答案2
我还设法使用两个 VirtualBox 安装来做到这一点,这是我的笔记:
- 有两台机器,每台机器模拟一个 LAN
- 您的路由器和物理 LAN(192.168.1.x 网络)将模拟 WAN
- 在每台机器上设置 VirtualBox,在每台机器上运行客户机
- 在两个来宾上配置 NAT,使其不使用默认 LAN 寻址,而是使用特定的 LAN 寻址:
- *VBoxManage 修改虚拟机“MachineA”--natnet1“172.23.24/24**
- 这使得 NAT 访客网络成为 172.23.24.x
- 主机的内部 IP 是 172.23.24.2
- 访客是 172.23.24.15
- 外部 IP(WAN IP)是 192.168.1.x
- *VBoxManage 修改虚拟机“MachineA”--natnet1“172.23.24/24**
- 将 NAT 配置为代理别名,以便 WAN IP 可以穿透
- VBoxManage 修改虚拟机“MachineA”--nataliasmode1 proxyonly
- 在路由器上设置映射到每个虚拟机主机的 WAN 地址的主机名,并使用这些名称作为连接地址
*引自《用户手册》:
9.10 微调 VirtualBox NAT 引擎 9.10.1 配置 NAT 网络接口的地址 在 NAT 模式下,默认情况下,客户机网络接口被分配到 IPv4 范围 10.0.x.0/24,其中 x 对应于 NAT 接口实例 +2。因此,当只有一个 NAT 实例处于活动状态时,x 为 2。在这种情况下,客户机被分配到地址 10.0.2.15,网关设置为 10.0.2.2,名称服务器可以在 10.0.2.3 找到。如果出于任何原因需要更改 NAT 网络,可以使用以下命令实现:VBoxManage modifyvm "VM name" --natnet1 "192.168/16" 此命令将为“VM name”的第一个 NAT 网络实例保留从 192.168.0.0 到 192.168.254.254 的网络地址。客户机 IP 将被分配到 192.168.0.15,默认网关位于 192.168.0.2。