我正在使用openvpn
以下配置连接到 VPN 服务器:
remote openvpn.vpn.domain.tld
port 1194
proto udp
dev tun
client
auth-user-pass login.conf
keepalive 10 60
运行后openvpn /etc/openvpn/client/myconf.conf
,输出ip route
如下:
default via 192.168.1.1 dev wlp2s0 src 192.168.1.25 metric 303
129.31.0.0/16 via 129.31.250.1 dev tun0
129.31.250.0/24 dev tun0 proto kernel scope link src 129.31.250.111
146.169.0.0/16 via 129.31.250.1 dev tun0
146.179.0.0/16 via 129.31.250.1 dev tun0
155.198.0.0/16 via 129.31.250.1 dev tun0
172.16.0.0/12 via 129.31.250.1 dev tun0
192.168.1.0/24 dev wlp2s0 proto kernel scope link src 192.168.1.25 metric 303
这会通过 VPN 重定向一些流量,这通常足以满足我的目的,但有时我想重定向所有互联网流量。我知道配置中的选项redirect gateway def1
或多或少openvpn
会这样做,但我想要一个更灵活的手动解决方案。我认为通过以下方式添加默认路由:
ip route add default via 129.31.250.1 dev tun0
会那样做,但是当我发出该命令时,我的浏览器无法再加载网站,所以我想它出了点问题。任何人都知道问题可能来自哪里?
编辑:不知何故,使用0.0.0.0/1
而不是default
似乎解决了问题......如果有原因,我仍然有兴趣了解它。
使用“0.0.0.0/1”而不是“默认”并不能解决问题。充其量,它隐藏它。
问题是,如果您将默认路由设置到隧道中(没有更具体的路由到 VPN 的端点),您也会更改
openvpn
用于连接到 VPN 的远程端点的路由。换句话说,openvpn 不再知道如何到达远程 VPN 端点。您需要设置到远程 VPN 提供商 (
openvpn.vpn.domain.tld
) 的静态路由,以通过原始的非 VPN 互联网连接。例如,假设在接口上
wlp2s0
:顺便说一句,您可能还需要为您的 ISP 网络和/或他们为您提供的任何基本服务(例如 DNS、邮件服务)设置一条(或多条)路由,以便也通过该连接。您的 ISP 可能只向他们拥有或知道在其下游的 IP 地址提供这些服务(即不向世界另一端的某个 VPN 提供商拥有的随机 IP 地址)。