我有一個路由器(CPU:580 MHz, RAM: 128 MB, Flash: 16 MB),幾年前刷過 OpenWrt 19,三年來工作的很好,裡面的 dnscrypt2 也運行的很好。最近看到可以更新到 23.05.4,於是打算試試。順便把一個舊優盤的容量擴展上去試試更多的軟件。
重裝 OpenWrt
由於我是跨版本升級,所以為了避免出現問題選擇的不保留資料。在 Table of Hardware 查詢自己的路由器,然後在 Device page 就能找到升級所需要的 Sysupgrade image。 也可以到 Download OpenWrt firmware for your device 搜索並下載所需的升級鏡像。而且這個下載頁還有一個 Customize installed packages and/or first boot script,裡面可以添加預裝軟件。有興趣的朋友可以嘗試將 wget-ssl 添加進去。下載 squashfs-sysupgrade.bin 文件到電腦後,就可以路由器界面 System > Backup / Flash Firmware > Flash new firmware image 升級系統了。升級後使用網線連接電腦就能獲得 IP。瀏覽器輸入 192.168.1.1 就能進入控制台。進入後設置密碼和密鑰,再到 Network > Wireless 開啟 WiFi,路由器就可以使用了。
為 opkg 配置代理
如果你網絡沒問題,就不必使用代理,但國情在此,直連的話基本上無法更新軟件。正常情況下設置代理非常簡單:
#進入路由器 ssh [email protected] #添加代理到到 /etc/profile echo "export http_proxy=http://192.168.1.235:44083" >> /etc/profile echo "export https_proxy=http://192.168.1.235:44083" >> /etc/profile #重新加載 profile source /etc/profile echo $http_proxy #此時應出現 http://192.168.1.235:44083/ wget http://ip-api.com/json #應能成功顯示 proxy 的 IP
但是使用 wget 下載 https 連接卻會出現 400 錯誤,可以先把軟件源替換成 http 安裝 wget-ssl 後再替換回來。
#備份下軟件源 cp /etc/opkg/distfeeds.conf distfeeds.conf #然後將軟件源中的 https 替換為 http sed -i -e "s/https/http/" /etc/opkg/distfeeds.conf #之後就可以更新並安裝軟件了 opkg update opkg install wget-ssl #安裝 wget-ssl 後就可以換回 https 的軟件源了 cp distfeeds.conf /etc/opkg/distfeeds.conf
使用優盤為路由器拓展空間
不到 10 MB 的可用空間非常限制 OpenWrt 的可玩性,好在可以用優盤來拓展。首先在電腦上把優盤格式化成 ext4 格式:
#查看優盤盤符 lsblk #得到類似 /dev/sdb 或 /dev/sdc #格式化成 ext4 格式 sudo mkfs.ext4 /dev/sdX
然後將優盤插入路由器:
#安裝依賴 opkg update opkg install block-mount kmod-usb-storage kmod-fs-ext4 e2fsprogs #建立掛載點 mkdir -p /mnt/usb #查看優盤盤符 ls /dev/sd* #得到類似 /dev/sda #掛載優盤 mount /dev/sda /mnt/usb #查看掛載結果 df -h #應該可以看到 /dev/sda 掛載到了 /mnt/usb #備份 /overlay cp -a /overlay/* /mnt/usb #卸載優盤 umount /mnt/usb #掛載到 /overlay mount /dev/sda /overlay #更新 /etc/config/fstab,在文件底部增加如下內容 config 'mount' option target '/overlay' option device '/dev/sda' option fstype 'ext4' option options 'rw,sync' option enabled '1' option enabled_fsck '0' #重啟路由器即可看到路由器顯示優盤容量 reboot
其他 OpenWrt 命令行小撇步
在使用 scp
從電腦往路由器傳文件時出現 ash: /usr/libexec/sftp-server: not found
,可以通過添加 -O
參數來解決:
scp -O source target #如果是文件夾或多個文件 scp -O -r source target
在命令行下載文件文件時,鏈接過長導致無法輸入完整鏈接?可以安裝 bash
:
opkg install bash #使用 bash 而不是 ash bash wget https://a.vrey.long/url/that/you/would/like/to/access #返回 ash exit
嘗試在 OpenWrt 上編譯 Python 庫
測試的項目是 ssr-command-client,這裡只能說歷經劫難修成正果,最終編譯出來了也成功安裝上了。但是由於路由器性能實在孱弱,並不能直接運行 ssr-command-client,不過可以通過自己寫一個 Python 腳本,只引用需要的庫來運行。
使用更輕便的 HTTPS DNS Proxy 來增加網絡安全性
安裝 https-dns-proxy
和 luci-app-https-dns-proxy
然後重新登錄路由器,頂部導航應該就出現 Services > HTTPS DNS Proxy 了。在 HTTPS DNS Proxy - Instances 中編輯或添加 DNS 服務器。
Provider: Custom Parameter: https://YOUR.DNS.PROVICDER/PATH Bootstrap DNS: Listen Address: 127.0.0.1 Listen Port: 5353 Run As User: nobody Run As Group: nogroup
經過兩周的使用,發現這個路由器還是可以在性能有限的情況下同時穩定運行 ssr + v2fly + dnscrypt2 的。最高網速相較於電腦上的客戶端可能有所下降,但是也還好。
本文更新於 2024/09/29。