我正在 aws ec2 实例上设置 openvpn 服务器。此实例有两个接口:
- 一个属于私有子网 (10.10.0.0/17) 的接口
- 一个属于公共子网 (10.10.128.0/17) 的接口
我的目标是允许来自互联网的流量通过 VPN 与私有子网中的实例进行通信。 这是一个架构
外部和公共接口之间的连接已建立良好。私有接口和私有子网中的实例之间也建立了连接。
当我尝试从外部客户端 ping 私有实例时,问题就出现了。我可以看到“初始化序列已完成”消息,但似乎没有流量通过隧道路由。实际上似乎根本找不到任何路由,即使目的地是 VPN 服务器本身:
尽管在创建路由时似乎有错误,但它存在于内核路由表中,所以我猜问题不是出在这里:
这是我的客户端配置:
client
dev tun
proto udp
remote <server_ip> 1194
route 10.10.0.0 255.255.128.0
nobind
resolv-retry infinite
persist-key
persist-tun
comp-lzo
verb 3
cipher AES-256-CBC
<ca>
-----BEGIN CERTIFICATE-----
<SNIP>
-----END CERTIFICATE-----
</ca>
<cert>
Certificate:
<SNIP>
-----BEGIN CERTIFICATE-----
<SNIP>
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
<SNIP>
-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN PRIVATE KEY-----
<SNIP>
-----END PRIVATE KEY-----
</key>
服务器端:
local 0.0.0.0
port 1194
proto udp
dev tun
ca /etc/openvpn/easy-rsa/pki/ca.crt
cert /etc/openvpn/easy-rsa/pki/issued/server.crt
key /etc/openvpn/easy-rsa/pki/private/server.key
dh /etc/openvpn/easy-rsa/pki/dh.pem
topology subnet
server 10.10.0.0 255.255.128.0
#client-to-client communication
duplicate-cn
keepalive 10 120
cipher AES-256-CBC
comp-lzo
persist-key
persist-tun
status openvpn-status.log
verb 3
mute 10
explicit-exit-notify 1
我已经从头到尾按照 openvpn 操作指南操作了,但真的不知道我遗漏了什么。提前感谢您的帮助!