在Tomato Router上安裝翻牆利器ShadowSocks server

來源: 2018-02-10 23:50:19 [博客] [舊帖] [給我悄悄話] 本文已被閱讀:

很早就聽說了ShadowSocks翻牆利器,一直沒空玩。今天被“河南青年因售賣SS賬號被判三緩五 罰款10萬”刺激了,覺得應該看看到底怎麽回事,有多難。

自己家裏裝這些玩玩當然要考慮省電,而最省電的莫過於家用路由器。

家裏的路由器是Craigslist上10美刀淘來的Linksys E4200 v1, 早早的就刷了Advanced Tomato 

https://advancedtomato.com/

前一陣子跟風5W大佬在上麵裝了PPTP VPN Server,回國時用得很順。今天在同一個路由器上成功設置了ShadowSocs server,回國又有新玩具了。

網站:https://shadowsocks.org

具體步驟我是跟著油管視頻 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