9月 012016
 

有同学反映,连接 VPN 后,外网机器就无法访问这台机器了。这是由于 VPN 会强制所有非局域网流量通过 VPN 接口发送,而不会通过原有网络接口发送。如果您是 Linux 系统,可以通过添加策略路由规则的方法解决。

添加如下路由规则:

ip route add default via 原有默认网关 dev 原有网卡 table 1000
ip rule add from 原有IP lookup 1000

可以用 ip route | grep default 命令查看原有默认网关和原有网卡。用 ip addr show dev 原有网卡 命令查看原有IP。

这两句的意思是让从自己机器的公网 IP 发出的包从原有默认网关出去。当外面有个连接进来的时候,它的目的 IP 是公网 IP,那么回复这个包的时候,源 IP 就会被设置成公网 IP,匹配到这条 ip rule,进而走 1000 号路由表,从公网网关出去。如果不加这两句,回复的包就会按照默认路由表,从 VPN 出去,回复的包就不能被收到了。

 回复

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>