在 Tomato 安裝 Squid 當 Transparent Proxy 步驟.

繼前陣子退掉光纖, 改用手機上網, 再接快取主機, 以及分享器之後.
發現快取主機大約一天需要 3 元電費, 決定試試分享器加掛快取軟體.

設備:

  1. ASUS N10U (軔體: Tomato Firmware 1.28.0000 MIPSR2-123 K26 USB VPN (Shibby))
  2. USB 隨身碟一支

步驟:

  1. 把 USB 隨身碟接在 N10U 上, 並格式化成 ext3 格式(mkfs.ext3 /dev/sda)
  2. 在 Tomato 圖形介面, 把隨身碟 mount 進來(格式化後第一次需要手動, 以後會自動 mount , 預設的 mount 目錄在 /tmp/mnt/sda )
  3. 建立擴充功能專用的目錄: mkdir /tmp/mnt/sda/opt
    並掛上 mount -o bind /tmp/mnt/sda/opt /opt
  4. 下載擴充功能: cd /opt
    wget http://tomatousb.org/local--files/tut:optware-installation/optware-install.sh
  5. 改為可執行並開始執行: chmod u+x optware-install.sh
    ./optware-install.sh
  6. 更新可擴充套件清單: ipkg update
  7. 安裝 Squid : ipkg install squid
  8. 修改 Squid 設定檔(在 /opt/etc/squid/squid.conf ):
    http_port 3128 transparent
    cache_mem 0 MB
    (由於網路上有很多修改方式, 其實應用的環境不盡相同, 不一定要改.)
  9. 執行看看: /opt/etc/init.d/S80squid start
  10. 既然目的是 transparent proxy , 就要把 http 連線轉送到 proxy :
    modprobe ipt_REDIRECT
    iptables -t nat -A PREROUTING -i br0 -p tcp --dport 80 -j REDIRECT --to-port 3128
  11. 然後用 netstat -n 觀察, 確定 http 的連線都有經過 proxy 了.
而以上是第一次設定時的步驟, 之後只有幾個步驟, 而可以寫在 Script :
  1. (免) mount USB 隨身碟: 預設值是開機時自動 mount . (只要確認 mount 目錄即可)
  2. mount 之後執行:
    mount -o bind /tmp/mnt/sda/opt /opt
    /opt/etc/init.d/S80squid restart
    modprobe ipt_REDIRECT
  3. WAN UP 之後執行:
    iptables -t nat -A PREROUTING -i br0 -p tcp --dport 80 -j REDIRECT --to-port 3128
這樣沒有意外的話, 就有 transparent proxy 的功能, 讓手機不會一直發熱了....