我希望能够通过 tun0 上已建立的 VPN 连接从客户端访问服务器网络。我有以下设置:
- 客户端(tun0 上的 10.8.0.6 和 wlan 上的 172.28.220.95)
- VPN 服务器(tun0 上的 10.8.0.1 和 eth 上的 192.168.178.32)
- 服务器端网络(192.168.178.0/24)
客户端路由:
client$ ip route show
10.8.0.0/24 dev tun0 scope link src 10.8.0.6
client$ ip route show table local
local 10.8.0.6 dev tun0 proto kernel scope host src 10.8.0.6
local 172.28.220.95 dev wlp2s0 proto kernel scope host src 172.28.220.95
在服务器端:
server$ ip route show
default via 192.168.178.1 dev eth0
10.8.0.0/24 dev tun0 scope link
192.168.178.0/24 dev eth0 proto kernel scope link src 192.168.178.32
server$ ip route show table local
local 10.8.0.1 dev tun0 proto kernel scope host src 10.8.0.1
local 192.168.178.32 dev eth0 proto kernel scope host src 192.168.178.32
为了清楚起见,不相关的路线和广播路线被省略。
服务器可以在 10.8.0.1 上 ping 自己。客户端可以在 10.8.0.6 上 ping 自己。但是,当我尝试从服务器 ping 客户端或反之亦然时,我没有得到任何响应(但也没有错误,除了 100% 的数据包丢失)。
知道这里出了什么问题吗?我也不太明白 ip addr 的对等地址的含义。
# server
4: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 100
link/none
inet 10.8.0.1 peer 10.8.0.2/32 scope global tun0
# client
8: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 100
link/none
inet 10.8.0.6 peer 10.8.0.5/32 brd 10.8.0.6 scope global tun0
答案1
两个 tun0 上显然存在 IP 地址不匹配的情况。这是点对点连接。无需广播和进行第 2 层地址解析。离开此接口的所有内容都会到达其目标。只涉及两个地址。在两个系统上,一个必须是本地 tun0 地址,另一个必须是对等方的地址。
如果地址不匹配,则很难建立 VPN 连接。因此,如果服务器输出正确,则客户端输出必须正确
# client
8: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 100
link/none
inet 10.8.0.2 peer 10.8.0.1/32 brd 10.8.0.6 scope global tun0
可能是某个配置文件有错误。