Skip to content

treelite/vpn-config

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

小米路由器VPN配置

基于域名黑名单的翻墙方式,好处是:

  • 配置简单可控,只有需要的时候才走VPN
  • 对P2P友好,同时也能节约大量的VPN流量

当然该方法也适用于OpenWrt的路由器

设置

首先对指定域名下的所有请求进行标记,以区分需要进行翻墙操作的请求,然后让所有被标记的请求使用VPN专用的路由表进行路由

需要用到ipsetdnsmasq ipiptables等工具

Step 1

建立需要翻墙的IP集合,名为vpn

$ ipset create vpn hash:ip

为了以后能在开机时自动建立,将该代码作为启动脚本加入/etc/rc.local文件中

Step 2

自动解析需要的翻墙的域名加入IP集合

/etc/dnsmasq.d/目录下建立vpn.conf文件,并在其中加入一下代码:

# 对此域名的解析使用Google的公共DNS服务器(防止DNS污染)
server=/google.com/8.8.8.8
# 将此域名对应的所有IP地址加入之前建立的 vpn ip集合中
ipset=/google.com/vpn

对于其它需要翻墙的域名都如法炮制,随意添加。

注意 一般网站都会使用多个顶级域名来提供服务,如果网站能打开但是页面图片什么的看不到就是还需要补充些域名

Step 3

标记vpn集合中的网络请求,方便后续的路由操作

# 符合VPN地址集合的请求都以`8`进行标记
iptables -t mangle -A fwmark -m set --match-set vpn dst -j MARK --set-mark 7

为了以后能在开机时自动生效,将该代码作为启动脚本加入/etc/rc.local文件中

Step 4

建立VPN专用的路由表

/etc/iproute2/rt_tables文件中添加一个行记录

# 增加一个序号为200 名为gfw的路由表
200 gfw

新版的Rom(0.8.74)已经默认有一个叫vpn的路由表了,所以得取个另外的名字,囧...

Step 5

在建立VPN连接时让所有已被标记为需要翻墙的请求使用专用的VPN路由表

  • 拷贝仓库中的vpnup文件到/etc/ppp/ip-up.d/目录下
  • 执行chmod a+x vpnup使vpnup文件具有可执行权限

然后在VPN断开时不再使用专用的VPN路由表

  • 拷贝仓库中的vpndown文件到/etc/ppp/ip-down.d/目录下
  • 执行chmod a+x vpndown使vpndown文件具有可执行权限

Step 6

如果MiWiFi的Rom版本在0.7.6以下,可以跳过此步,直接前往Step 7

0.7.6以上的版本改变了VPN建立时相关脚本的逻辑,需要额外进行两处设置

  • 拷贝仓库中的70-vpn文件至/etc/hotplug.d/iface/目录覆盖原文件,并执行chmod a+x 70-vpn命令
  • 执行chmod a-x /etc/ppp/ppp.d/vpn-up

Step 7

打完收工,设置PPTP/L2TP为自动开机链接,最后重启路由器 ~

About

VPN Configuration for MiWiFi

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages