我在具有 3 个子网的 AWS VPC 中有一个在 Ubuntu 12.04 上运行的 OpenVPN 服务器。我能够连接我的客户端,并且可以毫无问题地 ping 服务器 (10.8.0.1),但是我无法从我的客户端访问 VPC 中的任何其他计算机。
一些背景信息:
我可以从服务器本身 ping 该服务器。
我可以从客户端 ping 服务器。
我无法从服务器 ping 通客户端。
我可以从服务器 ping 通 VPC 中的机器。
我无法从我的客户端 ping VPC 中的机器(服务器除外)。
我已在服务器上启用了 IPV4 转发。
我已禁用源/目标检查。
我已经在 VPC 中设置了路由表,以将 10.8.0.0/16 流量路由到我的 OpenVPN 实例。
VPC 子网:
10.0.0.0/24
10.0.1.0/24
10.0.2.0/24
OpenVPN 服务器在 10.0.2.0/24 上运行,我能够从它 ping 其他子网上的任何服务器,但客户端无法访问子网上的任何内容。
服务器配置:
port 80
proto tcp
dev tun
ca ca.crt
cert server.crt
key server.key # This file should be kept secret
dh dh1024.pem
server 10.8.0.0 255.255.0.0
ifconfig-pool-persist ipp.txt
push "route 10.0.0.0 255.0.0.0"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"
keepalive 10 120
tls-auth ta.key 0 # This file is secret
comp-lzo
max-clients 100
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
log openvpn.log
verb 6
mute 20
客户端配置:
client
dev tun
proto tcp
remote xx.xx.xxx.xxx 80
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert olo-imac.crt
key olo-imac.key
tls-auth ta.key 1
comp-lzo
verb 3
服务器路由:
Destination Gateway Genmask Flags Metric Ref Use Iface
default 10.0.2.1 0.0.0.0 UG 100 0 0 eth0
10.0.2.0 * 255.255.255.0 U 0 0 0 eth0
10.8.0.0 10.8.0.2 255.255.0.0 UG 0 0 0 tun0
10.8.0.2 * 255.255.255.255 UH 0 0 0 tun0
客户端路线:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 192.168.36.1 192.168.36.120 10
10.0.0.0 255.0.0.0 10.8.0.5 10.8.0.6 30
10.8.0.1 255.255.255.255 10.8.0.5 10.8.0.6 30
10.8.0.4 255.255.255.252 On-link 10.8.0.6 286
10.8.0.6 255.255.255.255 On-link 10.8.0.6 286
10.8.0.7 255.255.255.255 On-link 10.8.0.6 286
127.0.0.0 255.0.0.0 On-link 127.0.0.1 306
127.0.0.1 255.255.255.255 On-link 127.0.0.1 306
127.255.255.255 255.255.255.255 On-link 127.0.0.1 306
192.168.36.0 255.255.255.0 On-link 192.168.36.120 266
192.168.36.120 255.255.255.255 On-link 192.168.36.120 266
192.168.36.255 255.255.255.255 On-link 192.168.36.120 266
224.0.0.0 240.0.0.0 On-link 127.0.0.1 306
224.0.0.0 240.0.0.0 On-link 192.168.36.120 266
224.0.0.0 240.0.0.0 On-link 10.8.0.6 286
255.255.255.255 255.255.255.255 On-link 127.0.0.1 306
255.255.255.255 255.255.255.255 On-link 192.168.36.120 266
255.255.255.255 255.255.255.255 On-link 10.8.0.6 286
答案1
回应 CIGuy 的上述评论。
在您的 OpenVPN 服务器上运行 tcpdump。您应该能够看到数据包是否确实从服务器转发到远程网络上的其他主机。
就像是:
tcpdump -i any -v host <ip>
您尝试 ping 的 IP 在哪里。您还可以通过添加以下内容将数据包捕获写入文件,以便稍后在 wireshark 中进行分析
-s0 -w somefile.pcap
请记住,某些版本的 tcpdump 会自行 chroot,因此如果 somefile.pcap 没有显示在您期望的位置,请检查 /var/lib/tcpdump/