很早就听说了ShadowSocks翻墙利器,一直没空玩。今天被“河南青年因售卖SS账号被判三缓五 罚款10万”刺激了,觉得应该看看到底怎么回事,有多难。
自己家里装这些玩玩当然要考虑省电,而最省电的莫过于家用路由器。
家里的路由器是Craigslist上10美刀淘来的Linksys E4200 v1, 早早的就刷了Advanced Tomato
前一阵子跟风5W大佬在上面装了PPTP VPN Server,回国时用得很顺。今天在同一个路由器上成功设置了ShadowSocs server,回国又有新玩具了。
具体步骤我是跟着油管视频 https://www.youtube.com/watch?v=UnTJg0d6JoQ? 慢慢做的,多年不接触Unix/Linux,手生了,眼神也不好,犯了许多打字错误, 10几分钟的活好几个小时才搞定。
我把过程都做成图片,以便大家理解。
首先router要刷成DD-WRT, Tomato, OpenWRT, Asus Merlin等open source firmware,其次储存要足够大(究竟要多大我也不知道,反正新点的都够大)。这些都是Embedded Linux OS。以Linksys E4200 v1 Advanced Tomato 为例:
Administration/Admin Access/Enable SSH Daemon
Enable JFFS Partition (别忘了Format, Save)
PuTTy login (Host Name (or IP address) 我就填 router IP address 192.168.1.1 Tomato router default)
PuTTy terminal commands
就下面这么几条:
cd /jffs
mkdir opt
mount –o bind /jffs/opt /opt
cd /opt
entware-install.sh
opkg update
opkg install shadowsocks-libev-ss-server
cd /opt/etc
vi shadowsocks.json
【注意:如果你要copy-paste的话最好用notepad等纯text editor上copy-paste,否则各种其他格式也许会跟着来】
贴图:
【也有人说最新的Tomato by Shibby (the core of Advanced Tomato) 已经包含entware】
下面是server configuration file, 重要一步。把多年不用的vi说明找出来...
我按油管视频的指导把server address改成了 0.0.0.0。server_port 随便写一个,不被ISP挡住就行。password 自己想一个。最后 (encryption) method 我改成了 aes-256-cfb,这个是许多client side的default。记下server_port, password and (encryption) method,后面要用到
回到路由器web interface,
Administration/Scripts:
Init:
mount -o bind /jffs/opt /opt
ss-server -c /opt/etc/shadowsocks.json
Save
Firewall:
iptables -A INPUT -p tcp -s 0/0 --dport 8388 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 8388 -m state --state ESTABLISHED -j ACCEPT
上面 8388 要改成与 shadowsocks.json 中 server_port 一样的数值。注意有几个参数用了两个dash
Save
至此ShadowSocks Server就设置好了。
至于ShadowSocks client,可以到 https://shadowsocks.org/en/download/clients.html
下载你所需要的。最方便的是用手机测试 --- 用cell phone data, 不用家里wifi, 这样连接时肯定是从外面连到家里
连接ShadowSocks client 连接 server 有4个参数:
Server: 填你router wan side IP, 或者dynamic domain name
Remote port: 填shadosocs.json文件中server_port
Password: 填shadosocs.json文件中password
Encryption Method: 选shadosocs.json文件中method
填好后就可以试着连接。我用Android 手机,连接后看到sent/received 不是0 就是连上了。也可以“tap to check connection"。
ShadowSocks client feature setting 栏有个 Route 选项(不知中文版怎么说),可以选 All 或各种bypass list或各种use only for list,比如:"Bypass Lan & mainland China", "GFW List"等。这样在墙内可以避免不必要的翻墙(翻进翻出肯定会影响速度)。
等到了墙内再来汇报!
【隔壁数码坛米老康有帖介绍ShadowSocks client,有个公开的ShadowSocks server,大家可以试试
http://bbs.wenxuecity.com/smsh/24264.html
】
【谢谢 gegenion 指正,改了typo
mount –o bind /jffs/opt/opt /opt
mount –o bind /jffs/opt /opt
】