ASUS N66U 是個人買過最貴的 Router ,也是個人第一次認真學 Linux 指令的對像。
這邊記錄個人對它安裝的服務,包含 KMS 啟動用的 KMS Server 、ARIA2 下載器、掛載虛擬記憶體、翻牆工具等。
環境:ASUS N66U, Merlin 380.70
刷 Merlin
Asuswrt-Merlin 官網
Asuswrt-Merlin WIKI
因為有復原模式,所以不用擔心刷壞,第一次刷時需要等上五~十分鐘,請耐心等候。
選用 Merlin 版是因為其是唯一能繼續開啟 ASUS 硬體加速功能的版本。
之候有空再寫完整教學。
另外,N66U 的處理器是 Broadcom BCM4706,處理器架構是 MIPS 74K1,可用下列指令檢視
硬體加速功能說明:NAT Acceleration On or Off
待完成:
- SSR Server
- Setting up an NTP Server for your local lan https://github.com/RMerl/asuswrt-merlin/wiki/Setting-up-an-NTP-Server-for-your-local-lan
安裝 Entware
- 先將隨碟格式化為 Ext3 格式後再插入,之後要作為內部空間來使用。
- Ext4 只有在 Arm 機型才可使用。
- SSH 連入,下以下指令安裝環境
會跳出安裝路徑選擇,輸入數字確定。如果沒有選項,代表第一步驟沒有成功。
安裝 KMS Server : vlmcsd
看到這個做法真是覺得非常腦洞大開!
介紹2
常用的 KMS 啟用伺服器程式為 py-kms 與 vlmcsd,分別為 python 和 C 語言版本。可執行於各種類 linux 和 windows 及 mac os 環境中。
vlmcsd 釋出地址
py-kms 釋出地址
開啟 jffs
- 開啟 jffs 和 ssh ,登入 n66u 管理介面,在
系統管理→系統設定
,開啟Format JFFS partition at next boot
和Enable JFFS custom scripts and configs
- 開啟
Enable SSH
,選LAN only
- 重開路由器
- 進入管理介面,把
Format JFFS partition at next boot
取消
安裝 vlmcsd
- 在官網 下載 vlmcsd (下載 rgho.st 的) ,複製出執行檔 .
arm 架構的路由器(AC68U)使用 vlmcsd-1112-2018-10-20-Hotbird64.7z\binaries\Linux\arm\little-endian\static\vlmcsd-armv7el-uclibc-static
mips 架構的路由器(N66U)使用 vlmcsd-1112-2018-10-20-Hotbird64.7z\binaries\Linux\mips\little-endian\static\vlmcsd-mips32el-uclibc-static - 將檔案重新命名為 vlmcsd,通過 xftp,winscp 等工具(連線類型還
SCP
,埠和 SSH 設定的一樣) 上傳到路由器 / jffs 目錄下
- 右鍵修或通過 ssh 連線路由器,用以下指令賦予 vlmcsd 可執行許可權
- 啟動 vlmcsd
Windows 啟動
來源3
用系統管理員許可權輸入以下命令
Windows 10 作業系統版本 | KMS 客戶端設定金鑰 |
---|---|
Windows 10 專業版 | W269N-WFGWX-YVC9B-4J6C9-T83GX |
Windows 10 Professional N | MH37W-N47XK-V7XM9-C7227-GCQG9 |
Windows 10 企業版 | NPPR9-FWDCX-D2C8J-H872K-2YT43 |
Windows 10 企業 N | DPH2V-TTNVB-4X9Q3-TJR4H-KHJW4 |
Windows 10 教育 | NW6C2-QMPVW-D7KKK-3GKT6-VCFB2 |
Windows 10 教育 N | 2WH4N-8QGBV-H22JP-CT43Q-MDWWJ |
Windows 10 企業版 2015 LTSB | WNMTR-4C88C-JK8YV-HQ7T2-76DF9 |
Windows 10 Enterprise 2015 LTSB N | 2F77B-TNFGY-69QQF-B8YKP-D69TJ |
Windows 10 企業 2016 LTSB | DCPHK-NFMTC-H88MJ-PFHPY-QJ4BJ |
Windows 10 企業 2016 LTSB N | QFFDN-GRT3P-VKWWX-X7T3R-8B639 |
Office 啟用
如果要將已安裝的 Retail(零售版) 轉換成 VLK (大量授權啟動版),要先做轉換
來源4
將以下內容另存成 activate.bat 再執行
可以用以下指令來驗證有無成功
確認為 VLK 版後,依序使用以下指令啟動 OFFICE (自行確認路徑)
這四行為:
- 切換到 office2016 目錄
- 設定KMS Server地址為 192.168.1.1(即路由地址);3.
- 啟動
- 檢視啟動狀態。
自動啟用(尚末成功)
雖然經在路由器部署完成了 KMS 服務。但是我們卻需要在被啟用主機上執行批處理命令,是不是有點繁瑣呢,接下來通過配置 DNS 伺服器的 SRV 記錄實現被啟用主機接入區域網,不需要任何配置就可以啟用系統或 office。
merlin 固件的 dnsmasq 配置檔案為 / etc/dnsmasq.conf,新增自定義項需要開啟 jffs,在 /
jffs/configs/dnsmasq.conf.add 中新增 (詳見參考 2)。srv 記錄的格式參考 merlin 原始碼 dnsmasq 中
dnsmasq.conf.example(詳見參考 3)
- 通過 ssh 或 telnet 連線路由器,輸入命令新增 srv 記錄到 / jffs/configs/dnsmasq.conf.add.
其中 _vlmcs._tcp 為服務名;router 為路由在內網中的網路名稱(可通過 uname –n
檢視);1688 為 kms 啟用服務預設端
號;
輸入命令 service restart_dnsmasq 重啟 dnsmasq 服務
- Windows 下使用管理員開啟命令提示符(cmd),使用命令 nslookup -type=srv _vlmcs_tcp 驗證 dns 配置是否正確
- 驗證 office 能不能成功發現 kms 伺服器,還是在管理員模式命令提示符(cmd)下執行以下命令(OFFIFC 路徑改為自已的)
其中第一行切換到 office 目錄,第二行表示清除之前設定的 kms 啟用伺服器地址,第三行手動啟用,第四行顯示啟用狀態。
掛載 NAS 路徑
來源10
Nas 要先開啟 NFS v4 服務
SSH 連到 Router ,輸入以下指令。
- mkdir 後方為要將 Nas 的資料夾掛載到的路徑
- cifs 後方為 Nas 有開放共享的路徑
自動啟動
加入
ARIA2
官網
比原本內建的 ASUS Download Master 還好得多的下載器,快速、高效,特色有:
- 多點下載
- 多協定下載
- 檔案分割下載
- 使用代理伺服器
- 使用 JSON-RPC、XML-RPC 遠端控制
安裝 ARIA2
主要參考來源5
請先確定 Entware 已經裝好
- 用以下指令安裝 Aria2,lighttpd,certificates to support SSL 和 php (這個對下一步要安裝的 GUI 並非必要)
- 安裝 WEB GUI for Aria2
webui-aria2 的安裝方式
AriaNg6 的安裝方式
或選擇自已喜歡的 GUI ,解壓後放置在 web server 對應的目錄 /mnt/磁碟機位置/entware/share/www/
- 設定 lighttpd for php and port 81:7
- 和原文不同,個人在 port 81 設定失敗,所以手動設定:
找到 #server.port =81
,刪掉前面的註解符#
,再按esc
→:wq
存檔離開
- 設定 Aria2 的 conf,更改預設路徑或 RPC Token
- 下載的路徑,個人這邊設定為掛載上的 Nas 空間
- RPC Token
- 啟動 aria2 和 lighttpd
- 開啟瀏覽器,輸入(換成自已 router 的 IP 和 WEB GUI 資料夾名稱):192.168.1.1:81/aria2/
- 設定 Token ,以下舉兩種 WEB GUI 的範例
- webui-aria2:設定→連線設定→密碼令牌,輸入 Token ,預設:
Passw0rd
- AriaNg:系統設定:AriaNg設定→RPC(192.168.1.1):Aria2 RPC 密鑰,輸入 Token ,預設:
Passw0rd
- webui-aria2:設定→連線設定→密碼令牌,輸入 Token ,預設:
自動啟動
修改 /jffs/scripts/post-mount 加入以下內容:
Chrome 整合
安裝擴充功能 YAAW2 for Chrome
設定 Aria2 RPC 位置為 Router IP,Aria2 RPC 密鑰為 Token,預設:Passw0rd
虛擬記憶體 SWAP
使用下載器容易使用 Router 的記憶體用量大增,適當的使用虛擬記憶體能加強穩定性。
來源8,在 /jffs/scripts 下新增一個檔案 sdaswap ,編碼為 UTF-8 ,內容如下:
在 sdaswap 檔案右擊滑鼠,屬性。設定為 0755 許可權 (該許可權是可讀寫、執行)
到此可以關閉 WinSCP 軟體。
執行命令
指令碼自動掃瞄路由器外接的 USB 裝置,列出所有儲存類裝置供選擇使用哪個 USB 硬碟作為虛擬記憶體的載體。
支援 NTFS\EXT2,3,4
注意:建議使用高速隨身碟或者 SSD 硬碟,虛擬記憶體類似於普通記憶體,需要多次高速讀寫,整體速度取決於 USB 裝置的速度。這裡可以選擇虛擬記憶體的大小,預設為 33000=32M,可以設定為 64M=>65500。如果沒有特殊需求,建議使用預設大小。並不是越大越好,更大的虛擬記憶體容量 可能會拖慢系統速度。
載入成功後,自動載入 Swap 的資訊。Total 是總快取,Used 已使用,Free 未使用
如果 Total 顯示為 0 證明沒有載入成功或者已關閉虛擬記憶體功能。
最後一行是提示是否載入到開機啟動項。y 回車是新增到啟動項。
停用虛擬記憶體功能命令:
掃瞄 USB 裝置,選擇要停用哪個裝置的虛擬記憶體。Swap: Total 顯示 0,證明已經停用虛擬記憶體
SSR Server
待補
https://www.mobile01.com/topicdetail.php?f=110&t=5165732
NTP Daemon
網路校時守護程序
網路校時守護程序 安裝
比內建的 NTP 使用更少的 RAM 且更有效率,並提供圖示介面。
- Entware 要先裝好。
- 以下以 ARM 為範例,mips 請參考原文作修改
- 安裝 rrdtool 和 wget
- Copy /www to /opt/var/www in preparing WebGUI to run from /opt/var/www
- install the package
- Run the following command to manually start ntpd as litmus test
- (FW version>= 380.68) Patch files for WebUI and restart httpd
Stop and check if any error. If things go well, you shall see NTP Daemon on WebUI > Tools page.
- Create a cron job to collect NTPD stats. Add the following line to /jffs/scripts/services-start
- Append the following two lines to the end of /jffs/scripts/post-mount
Reboot your router and enjoy!
Check the “server” entries in /jffs/etc/ntp.conf. You may want to replace those ip addresses with time servers near you. Preferrably put some stratum 1 servers there.要一點時間自動重整後圖示才會有變化,重整時要按F5清快取才可以看到更新。
SSH 安全性
SSH 連線故然方便,但網路上很多自動程序在掃描這個服務,提升安全性有以下方向可設定
- LAN only:只允許內網連線,外網的攻擊除非是有漏洞否則是可乎略的
- SSH service port :不要用預設的 port 號,自行修改。
- Enable SSH Brute Force Protection :對暴力破解密碼進行防禦
- 啟用 SSH 金鑰認證並禁止密碼登入
這邊記錄 SSH 金鑰的設定方式。
生成 SSH 金鑰
參考來源9
- 安裝 Git for win 後,應該就能執接使用下列指令生成金鑰
在產生金鑰的過程中,會詢問一些問題,對於一般的使用者而言,全部都使用預設值(直接按下 Enter 鍵)即可。
Generating public/private rsa key pair.
Enter file in which to save the key (%userprofile%/.ssh/id_rsa):
首先指定金鑰儲存的位置,使用預設值即可,通常是在使用者資料夾 %userprofile%
,直接按下 Enter 鍵。
Enter passphrase (empty for no passphrase):
指定金鑰保護密碼,如果有設定密碼的話,以後每次使用都要輸入密碼,除你需要非常高的安全性,否則就不用設定了,直接按下 Enter 鍵即可。
Enter same passphrase again:
再次輸入密碼,直接按下 Enter 鍵,接著就會產生金鑰了。
Your identification has been saved in %userprofile%/.ssh/id_rsa.
Your public key has been saved in %userprofile%/.ssh/id_rsa.pub.
The key fingerprint is:
c7:61:98:72:02:91:94:db:12:96:05:9d:59:91:aa:25 seal@seal-desktop
The key's randomart image is:
+--[ RSA 2048]----+
| .=O.+oo |
| *.+ .o |
| . +o.+ o |
| E ++ o . |
| = S o |
| . . |
| |
| |
| |
+-----------------+
這裡會顯示金鑰的指紋(fingerprint)與 randomart,而產生的金鑰會有兩個檔案:
- id_rsa.pub:公開金鑰(public key),這是可以對外公開的金鑰,之後要將它放在遠端的 Router 上作認證使用。
- id_rsa:私密金鑰(private key),這是要保護好的金鑰,它等同於你的密碼,放在自己的電腦中。
設定 Router
- 用文字編輯器開啟
id_rsa.pub
,位置預設在%userprofile%/.ssh
,複製所有的內容。 開啟 n66u WEB 介面,到系統管理→系統設定:SSH Authentication key,把公鑰
id_rsa.pub
內容全部貼上,套用設定。可以 SSH 連入 Router 後,用
cat ~/.ssh/authorized_keys
檢查
設定 Client 端
原理相同,這邊記錄個人所用的軟體設法。
Token2Shell:
- ADDRESS BOOK :對 Router 的登入方式要改為
Publickey
- PRIVATE KEYS :按下方的加號,匯入私鑰
%userprofile%/.ssh/id_rea
,如此再連線時即會自動使用。
WinSCP
- 在連線介面,選擇
進階→SSH→身份校對
,在身份核對參數那欄點…
選擇私鑰%userprofile%/.ssh/id_rea
- 會跳出“是否就此 OpenSSH 私鑰轉換為 PuTTY 格式?”,確定即可,跳出回到連線介面後記得按
儲存
關閉 SSH 密碼登入
確認都可正常登入後,回到 Router WEB GUI 介面,關閉 Allow SSH password login 即可。
使用 Adblock Plus Filter 對特定設備做廣告過濾 (連結過時,暫時無法安裝中)
官方不建議過濾 PC ,會造成設備性能下降。
安裝
設定
設定 list
找到 URLS=
,後面改為 https://easylist-downloads.adblockplus.org/easylistchina+easylist.txt
設定靜態 IP
到 DHCP 介面設定手動分配,可以用以下指令確認分配結果
在 iptables 添規則,攔截設備的流量並通過 privoxy 過濾廣告
將 --source
後方的網址改為要套用的設備IP
如果要套用一個網段,第二行指令請改為
Client 設置
設定 Proxy 為 192.168.1.1
通訊埠為 3128
,重開機即可。
更改訂閱、自動更新
如果要添加新訂閱列表,需先刪除舊訂閱
如果要手動更新更新,直接執行下列指令
要自動更新,編輯/jffs/scripts/init-start
加入以下命令(每日凌晨 4 點更新)
- 1.在 Asus RT-N66U 原廠韌體上面安裝 iperf 服務,測量連線速度 ↩
- 2.merlin 搭建區域網內免配置 KMS 自動啟用環境 ↩
- 3.Linux 上利用 vlmcsd 搭建 KMS 伺服器 ↩
- 4.Office 2016 自動轉換 VOL 版並啟用 ↩
- 5.Aria2 on Asus Router with AsusWRT Merlin ↩
- 6.AriaNG——高顏值的 Aria2 WebUI ↩
- 7.华硕 RT-N66U上安装aria2遇到的问题 ↩
- 8.為路由器增加虛擬記憶體 SWAP ↩
- 9.SSH 公開金鑰認證:不用打密碼登入 Linux 設定教學,安全又方便 ↩
- 10.[固件討論] 請教一下,梅林有沒有辦法掛載 NAS 上的 samba 或者 nfs 共享? ↩
- 11.華碩路由器 Merlin 固件使用 Adblock + Privoxy 實現廣告過濾 ↩