如何解决VPN客户端程序包未交付错误的源地址,数据包丢失
我刚刚创建了一个VPN服务器,但是VPN客户端程序包 似乎路由不正确:
VPN-Server$ tcpdump icmp
20:12:07.585962 IP 10.0.0.10 > 93.184.216.34: ICMP echo request,id 7595,seq 16,length 64
20:12:08.609952 IP 10.0.0.10 > 93.184.216.34: ICMP echo request,seq 17,length 64
当VPN服务器执行ping操作时,它会回来 因此连接“服务器-> WAN”似乎还可以。
VPN-Server$ ping example.org
64 Bytes from example.org (93.184.216.34): icmp_seq=293 ttl=54 time=77.9 ms
64 Bytes from example.org (93.184.216.34): icmp_seq=294 ttl=54 time=79.7 ms
我通过使VPN客户端ping我的另一台服务器再次检查了这一点 并查看了另一台服务器上的tcpdump:
Other-Server$ tcpdump icmp
(silence)
我猜想VPN客户端发送数据包时,它就无法到达目的地。
首先,我查看了NAT表,但MASQUERADE看起来还不错:
VPN-Server$ iptables -nvL -t nat
Chain POSTROUTING (policy ACCEPT 357 packets,28699 bytes)
pkts bytes target prot opt in out source destination
0 0 MASQUERADE all -- * ens18 10.0.0.0/24 0.0.0.0/0
(no other rules)
现在我调查了服务器的路由...
VPN-Server$ ip r
default via 12.34.56.78 dev ens18 onlink
10.0.0.0/30 via 10.0.0.2 dev tun0
10.0.0.0/24 via 10.0.0.2 dev tun0
10.0.0.2 dev tun0 proto kernel scope link src 10.0.0.1
(12.34.56.78实际上是正确的网关)
和客户...
VPN-Client$ ip r
default via 10.0.0.1 dev tun0 proto static metric 50
default via 192.168.0.1 dev wlp3s0 proto dhcp metric 600
10.0.0.1 dev tun0 proto kernel scope link src 10.0.0.10 metric 50
10.0.0.1 via 10.0.0.1 dev tun0 proto static metric 50
11.22.33.44 via 192.168.0.1 dev wlp3s0 proto static metric 600
192.168.0.0/24 dev wlp3s0 proto kernel scope link src 192.168.0.13 metric 600
192.168.0.1 dev wlp3s0 proto static scope link metric 600
是的,VPN服务器(此处显示为11.22.33.44)将路由推送到客户端。
openvpn.log文件显示一些有趣的行:
VPN-Server$ tail openvpn.log
Tue Aug 11 20:46:03 2020 us=933486 tst/13.37.42.69:34394 MULTI: bad source address from client [192.168.0.13],packet dropped
Tue Aug 11 20:46:03 2020 us=933524 tst/13.37.42.69:34394 MULTI: bad source address from client [192.168.0.13],packet dropped
对于这些行,openvpn建议告诉VPN服务器, 使用VPN客户端可以访问整个192.168.0.0/24网络 (https://openvpn.net/faq/multi-bad-source-address-from-client-packet-dropped-or-get-inst-by-virt-failed/)。 这可能意味着所有192.168.0.0/24请求将由某个VPN客户端提供服务。 如果是这样,那么其他VPN客户端呢?
在这一点上,我完全迷路了,希望能有所帮助 因为我完全需要在家工作。
如果有兴趣,我添加服务器配置:
VPN-Server$ cat /etc/openvpn/server.conf
port 1194
proto tcp-server # yes,no UDP
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh2048.pem
mode server
tls-server
ifconfig 10.0.0.1 10.0.0.2
ifconfig-pool 10.0.0.200 10.0.0.251
route 10.0.0.0 255.255.255.0
push "route 10.0.0.1"
ifconfig-pool-persist ipp.txt
client-config-dir ccd
route 10.0.0.0 255.255.255.252
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 10.0.0.1"
tls-auth ta.key 0
key-direction 0
user nobody
group nogroup
persist-key
persist-tun
# Removed some config for logging,compression,cipher/auth/keepalive.
# There is nothing else configured.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。