如果在 vpn 设置/ipv4 设置/路由中选中了“仅将此连接用于其网络上的资源”,则我无法从 vpn 访问 192.168.12.123 之类的服务器,但如果未选中此标志,则可以。
路由地址/网络掩码:
192.168.0.0 255.0.0.0
10.0.0.0 255.0.0.0
标志未选中:
route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 ppp0
10.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 ppp0
10.35.5.1 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
168.68.168.6 192.168.0.1 255.255.255.255 UGH 0 0 0 wlan0
168.68.168.6 192.168.0.1 255.255.255.255 UGH 0 0 0 wlan0
192.168.0.0 0.0.0.0 255.255.255.0 U 9 0 0 wlan0
标志被选中
route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 wlan0
10.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 ppp0
10.35.5.1 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
168.68.168.6 192.168.0.1 255.255.255.255 UGH 0 0 0 wlan0
168.68.168.6 192.168.0.1 255.255.255.255 UGH 0 0 0 wlan0
192.168.0.0 0.0.0.0 255.255.255.0 U 9 0 0 wlan0
主要区别是网关。
如果未选中标志,则为 0.0.0.0,否则为 192.168.0.1。
如何更改已勾选标志的网关?
提前谢谢。
答案1
您可以使用命令添加默认网关
通过 IP 地址
sudo ip route add default via xxx.xxx.xxx.xxx
xxx.xxx.xxx.xxx
- 代表vpn服务器的ip
或通过界面
sudo ip route add default dev ppp0
当您连接到 vpn 时,可以从终端手动完成此操作。
第二种解决方案是让脚本在 VPN 连接时改变默认网关
ppp0
然后创建界面启动时执行的脚本。
ppp0
创建接口脚本
sudo nano /etc/ppp/if-up.d/script
把这个放入脚本中
# Check for specific interface if desired
[ "$IFACE" != "ppp0" ] || exit 0
# trigger vpn connection
ip route add default dev ppp0
保存并退出。
使脚本script
以执行权限 755调用
sudo chmod 755 /etc/network/if-up.d/script
解释
当vpn
连接建立并且ppp0
接口启动时,脚本将运行并将默认设备设置为ppp0
vpn
您也可以手动在站点上添加资源路线
sudo ip route add xxx.xxx.xxx.xxx/yy dev ppp0
xxx.xxx.xxx.xxx
- 代表主机/网络
yy
- 代表网络掩码
例子:
添加路由到主机10.35.5.181
槽ppp0
sudo ip route add 10.35.5.181/32 dev ppp0
10.35.5.0
添加带有掩码255.255.255.0
槽的网络范围路由ppp0
sudo ip route add 10.35.5.0/24 dev ppp0
这也可以在 中完成Network Manager
。您可以在 的相同位置use this connection only for resources on its network
添加路线。