我有一個路由器(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 配置代理
如果你網絡沒問題,就不必使用代理,但國情在此,直連的話基本上無法更新軟件。正常情況下設置代理非常簡單:
1 2 3 4 5 6 7 8 9 10 11 | #進入路由器 ssh root@192.168.1.1 #添加代理到到 /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 後再替換回來。
1 2 3 4 5 6 7 8 9 | #備份下軟件源 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 |
1 2 3 4 5 6 | #在 opkg 配置文件李設置代理 #/etc/opkg.conf 中添加 option http_proxy http: //192 .168.1.1:44083/ option https_proxy http: //192 .168.1.1:44083/ #後台運行程序 opkg install coreutils- nohup |
使用優盤為路由器拓展空間
不到 10 MB 的可用空間非常限制 OpenWrt 的可玩性,好在可以用優盤來拓展。首先在電腦上把優盤格式化成 ext4 格式:
1 2 3 4 5 6 | #查看優盤盤符 lsblk #得到類似 /dev/sdb 或 /dev/sdc #格式化成 ext4 格式 sudo mkfs.ext4 /dev/sdX |
然後將優盤插入路由器:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | #安裝依賴 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
參數來解決:
1 2 3 | scp -O source target #如果是文件夾或多個文件 scp -O -r source target |
在命令行下載文件文件時,鏈接過長導致無法輸入完整鏈接?可以安裝 bash
:
1 2 3 4 5 6 | 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 服務器。
1 2 3 4 5 6 7 | 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/11/08。