上一篇我们说明了使用纯VPN连接的方式来做自动翻墙.
因为VPN的方式就必然需要另外一头也有相同协议的服务器端, 这就意味着要么自己在VPS上建自己的VPN服务器,
比如我常说的搬瓦工, 一来是便宜, 二来是因为搬瓦工几乎把所有VPN需要用到的服务跟端口都给开了, 所以软件安装相对容易多了.
要么去买一些商用的VPN服务,比如:
VyprVPN, 在最基础的套餐jin仅支持PPTP, 但是在后续的pro套餐里可以支持几乎所有参见的的协议.
不过现在我们还有别的选择, 那就是shadowsocks.
这是一个开源的加密Socket5代理协议, 跟VPN相比最大的区别就是他的客户端相对轻量化, 所以大部分的路由器系统都可以运行在后台.
所以在路由器平台上相当流行, 也进而导致了同样使用shadowsocks协议的服务供应商的大量出现.
所以如果不愿意自己建VPS的服务端, 也可以直接去买相关的服务.
关于Shadowsocks的服务器端怎么安装就不在这里说了, 因为不同的服务器不同的系统差别比较大.
在EdgeOS这端, 我们需要在Debian的系统里安装2个工具, 一个是Shadowsock, 一个是ChinaDNS.
ERL3用的版本可以在这里找到:http://www.onlyos.com/archives/shadowsocks-libev-chinadns.html
因为是Linux端, 需要的话可以用Wget或者PSCP从Windwos拷贝过来.
Deb使用dpkg安装, ChinaDNS则是解压以后直接chmod +x赋权以后就能直接用了.
基本思路如下:
Shadowsocks负责流量的转发…ss-redir启动以后可以绑定在127.0.0.1的某个端口上, 等待路由协议把需要翻墙的包转发到这个端口上然后发送到服务器端
ChinaDNS负责作为本地的DNS服务器解析域名, 因为ChinaDNS本身带有-m的压缩指针模式, 同时支持使用433等非标准的域名端口, 所以可以成功绕开GFW去国外域名服务器拿到正确的IP.
并且支持非污染的IP从国内DNS拿IP, 被污染的出国拿, 所以最大程度上绕开了域名污染,并且避免了CDN, 位置服务等带来的不遍.
IPset负责标记GFWlist内的域名进入相关的组.
IPtables 负责将符合要求的对应的组的流量转发到Shadowsocks
这中间, 还需要一个本地Dnsmasq的支持, 不过这里的Dnsmasq主要的是直接去访问127.0.0.1:(ChinaDNS的端口), 作为一个转发跟缓存的存在, 因为Ipset需要Dnsmasq的解析记录去存入group
因为主要是Debian下的DNS操作, 所以具体操作我就不详细写了.
ss的配置主要是config.json的这个文件, 以及ss-tunnel的问题.
因为ss一开始并不支持UDP协议, 所以在DNS解析的时候, UDP包没有地方去, 所以ChianDNS使用8.8.8.8:53作为墙外的DNS, 那么我们可能需要ss-tunnel作为UDP转发通道.
一旦涉及到UDP流量, 那么请考虑所使用的SS版本因为只有C语音版本是支持UDP的, python版本无法使用UDP转发所以服务器端装什么也要考虑到.
当然我们也可以让ChinaDNS启用压缩指针模式.
在这些都准备好的情况下, 我们只需要一条iptabels的命令:
iptables -t nat -A PREROUTING -p tcp -m set –match-set group-name dst -j REDIRECT –to-port 1188(ss-local-port)
就可以把ipset对应的翻墙组的流量都扔到ss上然后出国拉.
我个人使用的方式是结合了几种方式的:
- 我用PPTP的VPN作为DNS解析的通道, 因为对速度要求低而且不需要考虑SS服务器端是否支持UDP
- SS作为流量的转发主力, 主要是因为如果要更换服务器信息我只要改下配置文件或者新建配置文件就可以, 不需要考虑路由等问题
- IPv6隧道备用, 作为第三路径保证前2个都出问题的情况下我去google和inbox都不会出问题.
ERL3是一台非常强大非常好用的路由, 然而因为图形界面的简陋, 命令行的相对晦涩, 导致了使用的人比较少, 相关资料也远不如ROS来的丰富.
然而因为后台Linux系统的开放, 甚至于可以直接在上面apt-get, 就跟一个树莓派一样, 所以对于Linux比较熟悉的用户甚至于可以直接在上面创建编译环境生成需要的工具.
并且他的存储其实是一个U盘…如果觉得原厂的容量不够了, 可以直接拆机换一个16G的上去…屌炸天有木有.
有兴趣的朋友去买一个来玩玩呗.
Ubiquiti Networks Edgerouter Lite 3Port Router (ERLITE-3)
Ubiquiti EdgeRouter X Advanced Gigabit Ethernet Routers ER-X 256MB Storage 5 Gigabit RJ45 ports
注意ER-X跟ERL的硬件平台不同所以软件包并不通道.
6条评论
[…] 在之前自动翻墙配置EdgeOS篇续中, 我说我一直把IPv6作为备用方案, 所以今天才有了翻墙之IPv6篇 […]
小白能不能求一个EDGEOS的shadowsocks小白用教程啊?大大
额…你是配好了不会用还是没配过还?
ss-redir转发配置好了,ChinaDNS和iptables配置了,但不知道正确吗。ipset 和dnsmasq不会配置,能指导一下嘛,万分感谢。
ipset只需要生成一个对应的配置文件就行了….现在有gfwlist转ipset的python脚本,现成的可以用的…
dnsmasq可以不使用…..或者直接指向chinadns的IP+端口就直接用了…
[…] 在之前自动翻墙配置EdgeOS篇续中, 我说我一直把IPv6作为备用方案, 所以今天才有了翻墙之IPv6篇 […]