我第一次尝试在两个不同的云网络之间设置 OpenVPN,但遇到了问题。我有 2 台 Linux 机器,一台是 OpenVPN 服务器,另一台是客户端。
OpenVpn SSL 网关(AWS Amazon Linux 中的开放 VPN 服务器)
私有 IP:172.30.xx.8(网络接口 - eth0)虚拟 IP:10.90.x.1(网络接口 - tun0)
Vpn 客户端机器(另一个云网络中的 OpenVpn 客户端)
私有 IP:10.0.xx.11(网络接口 - eth0)虚拟 IP:10.90.x.2(网络接口 - tun0)
我已经在服务器和客户端中允许转发请求
net.ipv4.ip_forward=1 当我尝试从 Vpn 客户端机器 ping SSL 网关私有 IP 时,我得到了成功的响应。
即 ping 172.30.xx.8(来自 10.0.xx.11)- 成功
当我尝试反向 ping 时
即 ping 10.0.xx.11(来自 172.30.xx.8)-不起作用
目前,我已经允许两台服务器上 iptables 中的过滤器中的所有内容。
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A PREROUTING -j LOG
-A POSTROUTING -j LOG
-A POSTROUTING -o tun0 -j MASQUERADE
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i etho -j ACCEPT
-A INPUT -i tun0 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A FORWARD -j LOG
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -p icmp -j ACCEPT
-A FORWARD -i lo -j ACCEPT
-A FORWARD -i eth0 -j ACCEPT
-A FORWARD -i tun0 -j ACCEPT
COMMIT
我没有在路由和 Iptables 方面做过太多工作,所以不确定我在这里遗漏了什么。非常感谢任何帮助。这是我对 vpn 访问的 openvpn 要求
答案1
OpenVPN 仅知道其自身链路上的地址,而不了解服务器/客户端上的其他接口或除此之外的网络。您需要向 OpenVPN 和您的服务器提供更多信息。
看着那(这OpenVPN 路由 LAN页面很好地介绍了有关路由和网络的所有概念,尤其是 OpenVPN 之外的概念。
一个简单的测试是在连接之前和之后转储每一端的路由表,并且使用上面发布的配置,您应该只看到链接的子网,而不是您想要与之通信的远程网络:
ip route