如何共享VPN连接到私有子网中的实例?

时间:2018-06-27 06:49:28

标签: amazon-web-services networking amazon-ec2 vpn

我创建了2个实例:

  • VM-A 在公共子网中
  • VM-B 在专用子网中

我遵循了本指南,可以使它起作用。 VM-B 可以访问互联网(通过 VM-A ):https://aws.amazon.com/premiumsupport/knowledge-center/vpc-nat-instance/

VM-A 上,我已经设置了OpenVPN,它可以连接到我们办公室中的VPN服务器。

现在,我希望 VM-B 能够使用 VM-A 的VPN连接访问我们办公室中的计算机,但我找不到方法怎么做。

我想我知道为什么它不起作用,因为在 VM-B 的路由表中,我有:

Destination    Target
10.0.0.0/16    local
0.0.0.0/0      eni-xxxx

网络接口eni-xxxx属于 VM-A 。所以交通往那儿走。

相反,我想添加这样的内容,但是似乎不可能,因为“ tun0”不是有效的资源ID:

Destination
10.100.7.2 (network in our office accessible via VPN)

Target
tun0 (the network interface created by OpenVpn)

有关如何解决此问题的任何建议?

其他问题: 使用“ route add”命令添加路由是一种好习惯,还是在VPC仪表板中使用Web界面“ Route Tables”更好?

1 个答案:

答案 0 :(得分:1)

我找到了解决方案。我在防火墙中丢失了伪装地址的规则。 在 VM-A 上:

# the subnet of VM-B is 10.0.30.0/24
$ sudo iptables -t nat -A POSTROUTING -o tun0 -s 10.0.30.0/24 -j MASQUERADE