openvpn的PAC绕过大陆模式实现方法详解

简介

之前写过openvpn客户端证书上配置路由来达到提速和分流的目的,总觉得写的不是很详细,还是有一些

没讲清楚的地方。openvpn不做过多介绍,大致就是基于openSSL库的应用层VPN虚拟网络的实现,是基于SSL

协议。正常情况之下呢,VPN隧道连接成功后会自动增加路由条目,并且把网关地址设置成VPN的地址,这样所

有的流量都会通过VPN来传送。这样的话就不利于我们办公环境,如果要兼并VPN隧道和本地网络分流,让该走

的流量指定到需要走的路由,这就需要我们人工手动添加路由表增加路由条目来实现。

 

这个需求就有点像v2ray或者ssr当中的PAC模式了,但openvpn不具备天然的功能。

 

先往下看一下参数的介绍

 

参数介绍

控制着Openvpn自定义路由的三个参数

route-nopullvpn_gatewaynet_gateway来决定路由

 

route-nopull

客户端的证书中加入这个参数后,openvpn 连接后不会添加路由,也就是不会有任何网络请求走 openvpn

,所有的流量都由本地转发(单独使用这条参数无意义)。

route-nopull

 

vpn_gateway

在客户端的证书中加入 route-nopull 后,所有出去的访问都不从 openvpn 出去,这里用到 vpn_gateway

参数使指定的IP访问走 openvpn 出去。例如:

route-nopull
route 192.168.1.0 255.255.0.0 vpn_gateway
route 10.0.0.0 255.255.0.0 vpn_gateway

 

net_gateway

这个参数和 vpn_gateway 相反,表示在默认出去的访问全部走 openvpn 时,强行指定部分IP访问不通过

openvpn出去。max-routes 参数表示可以添加路由的条数,默认只允许添加100条路由,如果少于100条路由可不

加这个参数。例如:

max-routes 1000
route 192.168.1.0 255.255.255.0 net_gateway

参数都介绍完了,下面就开始看实操部分,具体怎么实现,openvpn的路由条目怎么写

 

实例

官方的配置文件的写法,有兴趣的也可以研究一下

https://github.com/OpenVPN/openvpn/blob/master/sample/sample-config-files/server.conf

 

客户端修改

只需要手动的修改本地的配置文件即可,服务端那边不需要做修好。适合客户端数量较多并且网络条件复

杂,定制化路由需求。比如打开openvpn生成的配置文件1.ovpn进行演示,添加如下的路由条目。

第一种写法

route-metric 150
route-nopull
route 10.0.0.0 255.255.0.0 vpn_gateway

route-nopull:是不默认建立路由表(即不会出现所有流量经过VPN)
route:目标的IP和目标的子网掩码,利用vpn_gateway语句允许通过VPN流量

 

第二种写法

max-routes 1000
route 192.168.1.0 255.255.255.0 net_gateway

max-routes:则表示可以增加的路由条数

roote:这里写的是本地IP和子网掩码,利用net_gateway语句不通过VPN流量

使用语句不能添加 route-nopull

可以给不代理的国内IP段加进去,这里是国内IP段的列表

 

我使用的是第一种写法

具体修改

- 120c804667eee2a

服务端修改

在服务器端上配置可以推送的全局路由,这样额好处则省却了客户端上进行配置,客户端不用修改任何

配置,配置推送全局路由,适合网络条件相似的环境。修改配置文件

vi /etc/openvpn/server/server.conf

在openvpn服务器配置文件中加入

push "route 172.16.0.0 0.0.0.0 net_gateway"
push "route 192.168.2.0 255.255.255.0 net_gateway"
push "route 192.168.1.0 255.255.255.0 net_gateway"
push "route 192.168.0.0 255.255.255.0 net_gateway"

查看openvpn进程ID,得到的进程ID值后

pidof openvpn

用kill命令结束掉

kill -9 ID值

最后重启服务

openvpn --daemon --config /etc/openvpn/server/server.conf

 

查看路由

最后我们查看路由表的变化,windows可以用这以下两套条命令查看

netstat -nr

route print

没连上之前我们的路由表情况

- 3e8c4fec23dd84f420bf2daaa4d362

连上之后

- 127b3d0e42d4a9f2

上一篇 github报错Permission denied,配置连接ssh公钥教程
下一篇 VinaHost庆祝成立14年周年的活动,-90% 折扣, 新注册和续费-30%折扣

投稿邮箱:
ivpsr888@gmail.com (投稿详情)

TG订阅频道:
t.me/ivpsr_news 网站最新内容推送

TG交流群:
(点击加入) 用户交流

文章列表
1
UCloud:尼日利亚VPS简单测评,UCloud云服务器怎么样?请看测评数据
UCloud:尼日利亚VPS简单测评,UCloud云服务器怎么样?请看测评数据
2
Thaihosting:泰国原生VPS,9折优惠码,可看泰国区的Netflix
Thaihosting:泰国原生VPS,9折优惠码,可看泰国区的Netflix
3
RackNerd促销VPS $21.99/年起,自助换 IP,可选洛杉矶/圣何塞/西雅图等机房
RackNerd促销VPS $21.99/年起,自助换 IP,可选洛杉矶/圣何塞/西雅图等机房
4
EtherNetservers不限流量独立服务器$65/月起,E3-1230v6/16GB/256G SSD/1Gbps带宽,英国/荷兰等8个机房可选
EtherNetservers不限流量独立服务器$65/月起,E3-1230v6/16GB/256G SSD/1Gbps带宽,英国/荷兰等8个机房可选
5
hhost日本VPS月付低至2.5美元,软银IIJ线路、2核、4G内存、20G SSD、500M带宽、1T流量
hhost日本VPS月付低至2.5美元,软银IIJ线路、2核、4G内存、20G SSD、500M带宽、1T流量
6
无脑ghost闭着眼都能使用的简化版教程
无脑ghost闭着眼都能使用的简化版教程
7
谷歌宣布将建设海底电缆Nuvem,连接葡萄牙、百慕大、美国
谷歌宣布将建设海底电缆Nuvem,连接葡萄牙、百慕大、美国
8
RAKsmart CN2优化独立服务器$59/月起,E5-2630L/16GB/1TB硬盘/50M带宽,香港/日本机房
RAKsmart CN2优化独立服务器$59/月起,E5-2630L/16GB/1TB硬盘/50M带宽,香港/日本机房
9
BBIX开设新加坡的第四个数据中心
BBIX开设新加坡的第四个数据中心
10
微信好友删我了怎么查?一键检测好友删除状态(附图文教程)
微信好友删我了怎么查?一键检测好友删除状态(附图文教程)