我可以使用 成功从命令行连接到我的 OpenVPN 服务器openvpn --config client.conf
。client.conf 文件包含redirec-gateway
通过 VPN 服务器路由所有流量的指令。所有这一切都运行正常。
现在,如何使用网络管理器和 nm-applet 实现相同的结果?
我尝试简单地配置连接。它正确初始化,但不会通过服务器路由流量。就好像我勾选了“仅将此连接用于其网络上的资源”,但实际上并没有。
似乎当我从命令行连接时,VPN 路由会添加到顶部
# ip route show
default via 192.168.10.5 dev tun0
default via 192.168.1.1 dev eth0 proto static metric 1024
但它被添加为第二个从小程序连接时
# ip route show
default via 192.168.1.1 dev eth0
default via 192.168.10.5 dev tun0 proto static metric 1024
这是在 Ubuntu 15.04 Vivid 和 OpenVPN 2.3.2 上。
答案1
我不知道如何设置此选项,NM
但您可以添加脚本,以便每次启动时都/etc/ppp/if-up.d/
默认路由到接口。使用执行命令创建脚本ppp0
permissions 755
sudo nano /etc/ppp/if-up.d/script
# Check for specific interface if desired
[ "$IFACE" != "ppp0" ] || exit 0
# Do something
sudo route add default dev ppp0
chmod 755 /etc/ppp/if-up.d/script
尝试
编辑1
如果您有tun0
接口,则放入脚本/etc/network/if-up.d/
并更改接口名称
sudo nano /etc/network/if-up.d/script
# Check for specific interface if desired
[ "$IFACE" != "tun0" ] || exit 0
# Do something
sudo route add default dev tun0
chmod 755 /etc/network/if-up.d/script
答案2
我在 Ubuntu 15.04 上遇到了同样的问题,这个解决方案对我有用:
- 从 /etc/network/interfaces 中删除所有网络接口(lo 除外),以便由网络管理器进行管理,或者编辑 /etc/NetworkManager/NetworkManager.conf,将行管理=false到管理=真并重新启动网络管理器(
sudo service network-manager restart
) 获取用作默认网关的 iface 的名称。
> route Destination Gateway Genmask Flags Metric Ref Use Iface default fritz.box 0.0.0.0 UG 0 0 0 enp60s0
找出此接口的 uid 和你的 vpn 连接的 uid
> nmcli c NAME UID TYPE DEVICE ..... Wired conne....3d7cfc99-dd28-45c1-87d8-5ec88b0b687c 802-3-ethernet enp60s0 VPN France 2c5131c6-3d8e-4768-a67e-cbcc4f35db1f vpn -- .....
将当前默认接口的度量设置为 2,将 vpn 设备的度量设置为 0
sudo nmcli connection modify uuid 3d7cfc99-dd28-45c1-87d8-5ec88b0b687c ipv4.route-metric 2 sudo nmcli connection modify uuid 2c5131c6-3d8e-4768-a67e-cbcc4f35db1f ipv4.route-metric 0
- 通过网络管理器启动 vpn 连接
- 路线现在将显示如下内容(VPN 网关是 VPN 网关 IP 地址的占位符。这意味着所有流量都将通过 VPN 服务器路由。
> route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default VPN-Gateway 0.0.0.0 UG 0 0 0 tun0 default 192.168.220.1 0.0.0.0 UG 2 0 0 enp60s0