我有一台运行 Arch Linux 的笔记本电脑。在家里,我可以毫无问题地连接到我的 OpenVPN 服务器;然而,我的大学网络似乎使用了一些奇怪的配置,在连接时我被分配二通过 DHCP 获取 IP 地址。
ip addr
:
2: wlp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 18:5e:0f:90:55:29 brd ff:ff:ff:ff:ff:ff
inet xx.xx.127.167/24 brd xx.xx.127.255 scope global wlp3s0
valid_lft forever preferred_lft forever
inet xx.xx.127.227/24 brd xx.xx.127.255 scope global secondary wlp3s0
valid_lft forever preferred_lft forever
inet6 xx::xx:xx:fe90:5529/64 scope link
valid_lft forever preferred_lft forever
我隐藏了这些地址,因为没有 NAT,所以这些是我实际的公共 IP。
当我连接到 OpenVPN 时,我无法向任何地方发送任何流量;甚至是 LAN 中 VPN 网关的本地 IP,更不用说任何外部主机了。我怀疑双 IP 配置是造成这种情况的原因,因为从ip route
没有为源自该 IP 的数据包添加路由来看:
0.0.0.0/1 via 10.8.0.5 dev tun0
default via xx.xx.127.254 dev wlp3s0 src xx.xx.127.227 metric 302
10.8.0.1 via 10.8.0.5 dev tun0
10.8.0.5 dev tun0 proto kernel scope link src 10.8.0.6
<vps ip> via xx.xx.127.254 dev wlp3s0
128.0.0.0/1 via 10.8.0.5 dev tun0
xx.xx.127.0/24 dev wlp3s0 proto kernel scope link src xx.xx.127.227 metric 302
该default
条目将源地址限制为上面列出的“辅助地址”;我怀疑这就是导致数据包无法发送到任何地方的原因。奇怪的是,即使我手动配置连接,我仍然会被分配另一个“辅助”IP(我正在使用 NetworkManager)。
我尝试为该.167
地址添加另一条路由,但无济于事;没有什么变化。我应该补充一点,网络绝对不会阻止 VPN 流量,因为我可以在 Windows 8(同一台笔记本电脑上双启动)和 Android 手机(同一服务器)上使用它,没有任何问题。此外,OpenVPN 连接过程中不会显示任何警告或错误。
我对这种双 IP 配置导致 VPN 问题的怀疑是否正确?