我创建了2个实例:
我遵循了本指南,可以使它起作用。 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”更好?
答案 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