蕃茄(Tomato) firmware + Entware/SSR
Last updated on April 14, 2024 am
這篇是將Tomato firmware 加裝SSR的筆記。
- 選用 router: Netgear R7000
- firmware: 目前最新版是3.4-140。下載chk檔。
- 準備一支將永遠插在AP的USB碟。
第一步 將router flash 到 Tomato
第二步 USB碟/Tomato設定
到Tomato的Web UI,USB與NAS -> USB 設定(USB Support),打開相關的設定。
自動掛載後執行 (copy & paste以下)
1
2#!/bin/sh
/opt/etc/init.d/rc.unslung start卸載移除前執行 (copy & paste以下)
1
2
3
4#!/bin/sh
/opt/etc/init.d/rc.unslung stop
sleep 15
umount /optauto-mount:到『路由器管理』-> 『開機初始化』, (copy & paste以下)
1
2#!/bin/sh
echo "LABEL=ENTWARE /opt ext3 rw,noatime 1 1" >> /etc/fstab
第三步 準備USB碟
基本上,就是要將usb碟格式化為ext3,然後 mount/ auto mount到 /opt。
- 格式化
1
$ fdisk -l '檢查USB碟的代號,以下都將用 /dev/sda 代表
1 |
|
格式化成ext3,Label設為 ENTWARE
1
$ mkfs.ext3 -L ENTWARE /dev/sda1
2. 掛上USB碟
1
2echo "LABEL=ENTWARE /opt ext3 rw,noatime 1 1" >> /etc/fstab
mount /opt
** 注意usb的disk label,跟剛剛格式化的要一樣。
沒出現錯誤就是搞定了,可以df -h
來確認。
最好也vi /etc/fstab
來看看。
未來若重新開啟router,因為有設好『開機初始化』,usb會自動掛在/opt下。
第三步 安裝Entware-ng
看好你的CPU是哪一種,是ARM就:
1 |
|
是MIPS就:
1 |
|
Asus Asus RT-N6xx 跟 R7000都是MIPS。
這樣就裝好了。
可以確認一下:
1 |
|
可以看到一大堆base packages列出來。
okpg相關指令可以看這裡。
第四步 安裝SSR
目前最新版的 shadowsocks-libev 是3.1.0-1。
可以去下載xc2編譯好的版本。
解壓,拷到/opt/bin, /opt/include等相應目錄即可。
ssr設置
1 |
|
1 |
|
第五步 設置
- 防火牆
Tomato WebUI -> 路由器管理 -> 系統指令 -> 防火牆1
2iptables -A INPUT -p tcp -s 0/0 --dport 8388 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 8388 -m state --state ESTABLISHED -j ACCEPT
(optional)通訊埠轉送設定(Port Forwarding)
其實設防火牆就夠了。但通常我也設這個,才會記得有裝過:
假設router的內部IP是192.168.1.1,
1 |
|
- StartUp / init script
Tomato WebUI -> 路由器管理 -> 系統指令 -> WAN連線後1
ss-server -c /opt/etc/shadowsocks.json -u
第六步 Clients
- iOS: Potatso Lite
- macOS: Mac OS使用SSR教程
- Windows, etc: ShadowsocksR Clients and Server
第七步 測試
- 手動開啟ssr
1
ss-server -c /opt/etc/shadowsocks.json -v
- 連線測試
最方便的方法是手機用4G網路(wifi關掉),然後試著連線。
經過幾次內外測試,這版本還是不好用(即便是自己編譯)。結論是router還是當ss client比較好。Server用raspberry pi或內網的mac/linux來跑ShadowsocksR。若不熟悉,可以先從doub的小白一鍵安裝開始玩。
(OPTIONAL) 自己編譯SSR
看這裡 - shadowsocks libev 3.0 cross compiling for tomato shibby