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,可用下列指令檢視
1
cat /proc/cpuinfo
硬體加速功能說明: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 連入,下以下指令安裝環境
1
entware-setup.sh
會跳出安裝路徑選擇,輸入數字確定。如果沒有選項,代表第一步驟沒有成功。
安裝 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 可執行許可權
1
chmod 700 /jffs/vlmcsd
- 啟動 vlmcsd
1
/jffs/vlmcsd
Windows 啟動
來源3
用系統管理員許可權輸入以下命令
1234567891011121314
::解除原先金鑰slmgr.vbs -upk::選擇金鑰,請依照底下的金鑰列表作選擇slmgr.vbs -ipk W269N-WFGWX-YVC9B-4J6C9-T83GX::設定KMS伺服器slmgr.vbs -skms 192.168.1.1::啟動slmgr.vbs -ato::顯示KMS相關資訊slmgr.vbs -dlv
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 再執行
123456789101112131415161718192021222324252627282930313233343536373839404142434445
@echo off:ADMINopenfiles >nul 2>nul ||(echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs""%temp%\getadmin.vbs" >nul 2>&1goto:eof)del /f /q "%temp%\getadmin.vbs" >nul 2>nulpushd "%~dp0"cd /d %ProgramFiles%\Microsoft Office\Office16cd /d %ProgramFiles(x86)%\Microsoft Office\Office16cscript ospp.vbs /inslic:"..\root\Licenses16\ProPlusVL_KMS_Client-ppd.xrm-ms"cscript ospp.vbs /inslic:"..\root\Licenses16\ProPlusVL_KMS_Client-ul.xrm-ms"cscript ospp.vbs /inslic:"..\root\Licenses16\ProPlusVL_KMS_Client-ul-oob.xrm-ms"cscript ospp.vbs /inslic:"..\root\Licenses16\ProPlusVL_MAK-pl.xrm-ms"cscript ospp.vbs /inslic:"..\root\Licenses16\ProPlusVL_MAK-ppd.xrm-ms"cscript ospp.vbs /inslic:"..\root\Licenses16\ProPlusVL_MAK-ul-oob.xrm-ms"cscript ospp.vbs /inslic:"..\root\Licenses16\ProPlusVL_MAK-ul-phn.xrm-ms"cscript ospp.vbs /inslic:"..\root\Licenses16\ProjectProVL_KMS_Client-ppd.xrm-ms"cscript ospp.vbs /inslic:"..\root\Licenses16\ProjectProVL_KMS_Client-ul.xrm-ms"cscript ospp.vbs /inslic:"..\root\Licenses16\ProjectProVL_KMS_Client-ul-oob.xrm-ms"cscript ospp.vbs /inslic:"..\root\Licenses16\ProjectProVL_MAK-pl.xrm-ms"cscript ospp.vbs /inslic:"..\root\Licenses16\ProjectProVL_MAK-ppd.xrm-ms"cscript ospp.vbs /inslic:"..\root\Licenses16\ProjectProVL_MAK-ul-oob.xrm-ms"cscript ospp.vbs /inslic:"..\root\Licenses16\ProjectProVL_MAK-ul-phn.xrm-ms"cscript ospp.vbs /inslic:"..\root\Licenses16\VisioProVL_KMS_Client-ppd.xrm-ms"cscript ospp.vbs /inslic:"..\root\Licenses16\VisioProVL_KMS_Client-ul.xrm-ms"cscript ospp.vbs /inslic:"..\root\Licenses16\VisioProVL_KMS_Client-ul-oob.xrm-ms"cscript ospp.vbs /inslic:"..\root\Licenses16\VisioProVL_MAK-pl.xrm-ms"cscript ospp.vbs /inslic:"..\root\Licenses16\VisioProVL_MAK-ppd.xrm-ms"cscript ospp.vbs /inslic:"..\root\Licenses16\VisioProVL_MAK-ul-oob.xrm-ms"cscript ospp.vbs /inslic:"..\root\Licenses16\VisioProVL_MAK-ul-phn.xrm-ms"cscript ospp.vbs /inpkey:XQNVK-8JYDB-WJ9W3-YJ8YR-WFG99cscript ospp.vbs /inpkey:YG9NW-3K39V-2T3HJ-93F3Q-G83KTcscript ospp.vbs /inpkey:PD3PC-RHNGV-FXJ29-8JK7D-RJRJKcscript ospp.vbs /sethst:203.195.139.162cscript ospp.vbs /act
可以用以下指令來驗證有無成功
1
cscript "C:\Program Files\Microsoft Office\Office16\OSPP.VBS" /dstatus
確認為 VLK 版後,依序使用以下指令啟動 OFFICE (自行確認路徑)
1234
cd "%ProgramFiles%\Microsoft Office\Office16"cscript ospp.vbs /sethst:192.168.1.1cscript ospp.vbs /actcscript ospp.vbs /dstatus
這四行為:
- 切換到 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 啟用服務預設端
號;
1
echo “srv-host=_vlmcs._tcp,router,1688”>>/jffs/configs/dnsmasq.conf.add
輸入命令 service restart_dnsmasq 重啟 dnsmasq 服務
- Windows 下使用管理員開啟命令提示符(cmd),使用命令 nslookup -type=srv _vlmcs_tcp 驗證 dns 配置是否正確
- 驗證 office 能不能成功發現 kms 伺服器,還是在管理員模式命令提示符(cmd)下執行以下命令(OFFIFC 路徑改為自已的)
1234
cd "%ProgramFiles%\Microsoft Office\Office14"cscript ospp.vbs /remhstcscript ospp.vbs /actcscript ospp.vbs /dstatus
其中第一行切換到 office 目錄,第二行表示清除之前設定的 kms 啟用伺服器地址,第三行手動啟用,第四行顯示啟用狀態。
掛載 NAS 路徑
來源10
Nas 要先開啟 NFS v4 服務
SSH 連到 Router ,輸入以下指令。
- mkdir 後方為要將 Nas 的資料夾掛載到的路徑
- cifs 後方為 Nas 有開放共享的路徑
12
mkdir /mnt/nasmount -t cifs "//192.168.1.241/Download" -o username=帳號,password=密碼 /mnt/nas
自動啟動
1
vi /jffs/scripts/post-mount
加入
12
mkdir /mnt/nasmount -t cifs "//192.168.1.241/Download" -o username=帳號,password=密碼 /mnt/nas
ARIA2
官網
比原本內建的 ASUS Download Master 還好得多的下載器,快速、高效,特色有:
- 多點下載
- 多協定下載
- 檔案分割下載
- 使用代理伺服器
- 使用 JSON-RPC、XML-RPC 遠端控制
安裝 ARIA2
主要參考來源5
請先確定 Entware 已經裝好
- 用以下指令安裝 Aria2,lighttpd,certificates to support SSL 和 php (這個對下一步要安裝的 GUI 並非必要)
1
opkg install aria2 ca-bundle ca-certificates lighttpd lighttpd-mod-fastcgi php7-fastcgi
- 安裝 WEB GUI for Aria2
webui-aria2 的安裝方式
1234
wget -c -O /opt/tmp/webui-aria2.zip https://github.com/ziahamza/webui-aria2/archive/master.zip --no-check-certificateunzip /opt/tmp/webui-aria2.zip -d /opt/tmp/rm /opt/tmp/webui-aria2.zipmv /opt/tmp/webui-aria2-master /opt/share/www/aria2
AriaNg6 的安裝方式
1234
wget -c -O /opt/tmp/ariang.zip https://github.com/mayswind/AriaNg/archive/master.zip --no-check-certificateunzip /opt/tmp/ariang.zip -d /opt/tmp/rm /opt/tmp/ariang.zipmv /opt/tmp/AriaNg-master /opt/share/www/ariang
或選擇自已喜歡的 GUI ,解壓後放置在 web server 對應的目錄 /mnt/磁碟機位置/entware/share/www/
- 設定 lighttpd for php and port 81:7
123456789101112131415
sed -i 's/#server.port = 81/server.port = 81/g' "/opt/etc/lighttpd/lighttpd.conf"sed -i "/server.upload-dirs*/cserver.upload-dirs = ( \"/opt/tmp\" )" "/opt/etc/lighttpd/lighttpd.conf"cat >> /opt/etc/lighttpd/conf.d/30-fastcgi.conf << EOFserver.modules += ( "mod_fastcgi" ) fastcgi.server = ( ".php" =>( "localhost" =>( "socket" => "/tmp/php-fcgi.sock","bin-path" => "/opt/bin/php-fcgi","max-procs" => 1,"bin-environment" =>( "PHP_FCGI_CHILDREN" => "2","PHP_FCGI_MAX_REQUESTS" => "1000" ))))EOF
- 和原文不同,個人在 port 81 設定失敗,所以手動設定:
1
vi /opt/etc/lighttpd/lighttpd.conf
找到 #server.port =81
,刪掉前面的註解符#
,再按esc
→:wq
存檔離開
- 設定 Aria2 的 conf,更改預設路徑或 RPC Token
1
vi /opt/etc/aria2.conf
- 下載的路徑,個人這邊設定為掛載上的 Nas 空間
1
dir=/mnt/nas
- RPC Token
1
rpc-secret=Passw0rd
- 啟動 aria2 和 lighttpd
12
/opt/etc/init.d/S81aria2 start/opt/etc/init.d/S80lighttpd start
- 開啟瀏覽器,輸入(換成自已 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 加入以下內容:
12
/opt/etc/init.d/S81aria2 start/opt/etc/init.d/S80lighttpd start
Chrome 整合
安裝擴充功能 YAAW2 for Chrome
設定 Aria2 RPC 位置為 Router IP,Aria2 RPC 密鑰為 Token,預設:Passw0rd
虛擬記憶體 SWAP
使用下載器容易使用 Router 的記憶體用量大增,適當的使用虛擬記憶體能加強穩定性。
來源8,在 /jffs/scripts 下新增一個檔案 sdaswap ,編碼為 UTF-8 ,內容如下:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
R_BOLD="\033[31m\033[1m"G_BOLD="\033[32m\033[1m"BOLD="\033[33m\033[1m"NORM="\033[0m"INFO="$BOLD Info: $NORM"ERROR="$BOLD *** Error: $NORM"INPUT="$BOLD => $NORM"SWAP_FILE=`nvram get apps_swap_file`SWAP_SIZE=`nvram get apps_swap_size`i=1cd /tmpecho -e "$INFO 此脚本文件指导你创建虚拟内存"echo -e "$INFO 默认创建的虚拟内存文件存放在 \"swap\" 文件夹并不可改变"echo -e "$INFO 检查可用的挂载分区......"for mounted in `/bin/mount |awk '{if($0 ~/mnt/){ print $3}}'` ; doecho -e "$G_BOLD [$i] --> $mounted $NORM"eval mounts$i=$mountedi=`expr $i + 1`doneif [ $i == "1" ] ; thenecho -e "$ERROR $R_BOLD 未找到挂载磁盘,执行退出。$NORM"exit 1fiecho -en "$INPUT $BOLD 请输入磁盘分区序号或键入 0 退出程序 $NORM\n$BOLD[0-`expr $i - 1`]$NORM: "read partitionNumberif [ "$partitionNumber" == "0" ] ; thenecho -e $INFO 执行退出...exit 0fiif [ "$partitionNumber" = "" ] || [ "`echo $partitionNumber|sed 's/[0-9]//g'`" != "" ] ; thenecho -e "$ERROR $R_BOLD 无效的参数,执行退出...$NORM"exit 1fiif [ "$partitionNumber" -gt `expr $i - 1` ] ; thenecho -e "$ERROR $R_BOLD 分区序号无效,执行退出...$NORM"exit 1fieval entPartition=\$mounts$partitionNumberecho -e "$INFO 已选择$G_BOLD $entPartition $NORM磁盘分区"APPS_INSTALL_PATH=$entPartition/swapcase "$1" instart)mem_size=`free |awk '$0 ~/Swap/{print $4}'`pool_size=`df |awk '{if($0 ~"'$entPartition'") {print $4}}'`if [ $pool_size -gt $SWAP_SIZE ]; then[ -e "$APPS_INSTALL_PATH/$SWAP_FILE" ] && swapoff $APPS_INSTALL_PATH/$SWAP_FILE[ -d "$APPS_INSTALL_PATH" ] && rm -rf $APPS_INSTALL_PATHecho -e "$INFO 建立虛擬記憶體資料夾: $APPS_INSTALL_PATH "mkdir -p $APPS_INSTALL_PATHecho -en "$INFO 默认虚拟内存大小: [$BOLD$SWAP_SIZE$NORM],新文件大小:\c $BOLD"read answerif [ "$answer" = "" ]then{echo -e "$INFO 虚拟内存大小未改变"}else{if [ "$answer" != "" ] && [ "`echo $answer|sed 's/[0-9]//g'`" = "" ] && [ $answer -lt $pool_size ]then{SWAP_SIZE=$answerecho -en "$INFO 虚拟内存大小已改变: $BOLD[$SWAP_SIZE]$NORM \n"}else{echo -e "$ERROR $R_BOLD 无效的参数! $NORM"exit 1}fi}fiswap_count=`expr $SWAP_SIZE / 1000 - 1`echo -e "$INFO dd if=/dev/zero of=$APPS_INSTALL_PATH/$SWAP_FILE bs=1M count=$swap_count"dd if=/dev/zero of=$APPS_INSTALL_PATH/$SWAP_FILE bs=1M count=$swap_countecho -e "$INFO 已创建虚拟内存文件: $APPS_INSTALL_PATH/$SWAP_FILE"mkswap $APPS_INSTALL_PATH/$SWAP_FILEecho -e "$INFO $G_BOLD 虚拟内存路径:$APPS_INSTALL_PATH/$SWAP_FILE $NORM"swapon $APPS_INSTALL_PATH/$SWAP_FILEecho -e "**********************************************************"echo -e " ${G_BOLD}虚拟内存:$NORM 总计($G_BOLD$(free |grep -A1 "Swap" |awk '{print $2}')$NORM) 已用($G_BOLD$(free |grep -A1 "Swap" |awk '{print $3}')$NORM) 可用($G_BOLD$(free |grep -A1 "Swap" |awk '{print $4}')$NORM)"echo -e "**********************************************************"fiecho -e "$INFO 是否创建启动项? y? :\c "read yorif [ "$yor" = "y" ]then{[ -e "/jffs/scripts/services-start" ] && [ `cat /jffs/scripts/services-start |awk '{if($0 ~/swapon/) {print $0}}'|wc -l` -ge 1 ] &&\sed -i 'N;/\n.*swapon/!P;D' /jffs/scripts/services-start && sed -i '/swapon/d' /jffs/scripts/services-start[ ! -e "/jffs/scripts/services-start" ] && echo "#!/bin/sh" > /jffs/scripts/services-start[ `grep "#!/bin/sh" /jffs/scripts/services-start |wc -l` -lt 1 ] && sed -i '1i#!\/bin\/sh' /jffs/scripts/services-startsed -i '1asleep 30' /jffs/scripts/services-startsed -i '2aswapon '$APPS_INSTALL_PATH'/'$SWAP_FILE'' /jffs/scripts/services-startchmod 755 /jffs/scripts/services-startecho -e "$INFO $G_BOLD开机启动项已创建! $NORM"}else{echo -e "$INFO $G_BOLD开机启动项未创建成功,执行退出... $NORM"exit 1}fi;;stop)[ -e "/jffs/scripts/services-start" ] && [ `cat /jffs/scripts/services-start |awk '{if($0 ~/swapon/) {print $0}}'|wc -l` -ge 1 ] &&\sed -i 'N;/\n.*swapon/!P;D' /jffs/scripts/services-start && sed -i '/swapon/d' /jffs/scripts/services-start[ -e "$APPS_INSTALL_PATH/$SWAP_FILE" ] && swapoff $APPS_INSTALL_PATH/$SWAP_FILE[ -d "$APPS_INSTALL_PATH" ] && rm -rf $APPS_INSTALL_PATHecho -e "**********************************************************"echo -e " ${G_BOLD}虚拟内存:$NORM 总计($G_BOLD$(free |grep -A1 "Swap" |awk '{print $2}')$NORM) 已用($G_BOLD$(free |grep -A1 "Swap" |awk '{print $3}')$NORM) 可用($G_BOLD$(free |grep -A1 "Swap" |awk '{print $4}')$NORM)"echo -e "**********************************************************";;*)exit 1;;esac
在 sdaswap 檔案右擊滑鼠,屬性。設定為 0755 許可權 (該許可權是可讀寫、執行)
到此可以關閉 WinSCP 軟體。
執行命令
1
/jffs/scripts/sdaswap start
指令碼自動掃瞄路由器外接的 USB 裝置,列出所有儲存類裝置供選擇使用哪個 USB 硬碟作為虛擬記憶體的載體。
支援 NTFS\EXT2,3,4
注意:建議使用高速隨身碟或者 SSD 硬碟,虛擬記憶體類似於普通記憶體,需要多次高速讀寫,整體速度取決於 USB 裝置的速度。這裡可以選擇虛擬記憶體的大小,預設為 33000=32M,可以設定為 64M=>65500。如果沒有特殊需求,建議使用預設大小。並不是越大越好,更大的虛擬記憶體容量 可能會拖慢系統速度。
載入成功後,自動載入 Swap 的資訊。Total 是總快取,Used 已使用,Free 未使用
如果 Total 顯示為 0 證明沒有載入成功或者已關閉虛擬記憶體功能。
最後一行是提示是否載入到開機啟動項。y 回車是新增到啟動項。
停用虛擬記憶體功能命令:
1
/jffs/scripts/sdaswap stop
掃瞄 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
12
opkg install rrdtoolopkg install wget
- Copy /www to /opt/var/www in preparing WebGUI to run from /opt/var/www
1
tar cf - /www | tar -C /opt/var -xvf -
- install the package
1
wget --no-check-certificate -O - https://github.com/kvic-z/goodies-asuswrt/blob/master/ntpd_stats-arm-R3-1.tar.gz?raw=true | tar -C / -xzf -
- Run the following command to manually start ntpd as litmus test
1
cp /jffs/configs/fstab /etc; mount -a
1
/opt/etc/init.d/S77ntpd-custom start
1
/jffs/bin/ntpstats.sh
1
mount -a /opt/var/www /www
- (FW version>= 380.68) Patch files for WebUI and restart httpd
1
cp /opt/var/spool/ntp/Tools_NtpdStats.asp /www
1
sed -i '/"Tools_OtherSettings.asp", tabName: "Other Settings"/a {url: "Tools_NtpdStats.asp", tabName: "NTP Daemon"},' /www/require/modules/menuTree.js
1
service 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
1
cru a NtpdStats "*/5 * * * * /jffs/bin/ntpstats.sh"
- Append the following two lines to the end of /jffs/scripts/post-mount
12
mount -aservice restart_httpd
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 後,應該就能執接使用下列指令生成金鑰
1
ssh-keygen
在產生金鑰的過程中,會詢問一些問題,對於一般的使用者而言,全部都使用預設值(直接按下 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 ,會造成設備性能下降。
安裝
1
opkg install bash wget sed privoxy
設定
12345
cd /opt/etc/privoxy/rm ./configwget http://files.ryzhov-al.ru/Routers/adblock-plus/configwget http://files.ryzhov-al.ru/Routers/adblock-plus/privoxy-blocklist_0.2.shchmod +x ./privoxy-blocklist_0.2.sh
設定 list
1
vi ./privoxy-blocklist_0.2.sh
找到 URLS=
,後面改為 https://easylist-downloads.adblockplus.org/easylistchina+easylist.txt
設定靜態 IP
到 DHCP 介面設定手動分配,可以用以下指令確認分配結果
12
cat /etc/hosts.dnsmasqcat /var/lib/misc/dnsmasq.leases
在 iptables 添規則,攔截設備的流量並通過 privoxy 過濾廣告
將 --source
後方的網址改為要套用的設備IP
123
echo "#!/bin/sh" > /jffs/scripts/firewall-startecho "iptables -t nat -A PREROUTING --source 192.168.1.21 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128" >> /jffs/scripts/firewall-startchmod +x /jffs/scripts/firewall-start
如果要套用一個網段,第二行指令請改為
1
echo "iptables -t nat -A PREROUTING -m iprange --src-range 192.168.1.21-192.168.1.30 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128" >> /jffs/scripts/firewall-start
Client 設置
設定 Proxy 為 192.168.1.1
通訊埠為 3128
,重開機即可。
更改訂閱、自動更新
如果要添加新訂閱列表,需先刪除舊訂閱
1
./privoxy-blocklist_0.2.sh -r
如果要手動更新更新,直接執行下列指令
1
./privoxy-blocklist_0.2.sh
要自動更新,編輯/jffs/scripts/init-start
加入以下命令(每日凌晨 4 點更新)
1
cru a ScheduledReboot "0 4 * * * /opt/etc/privoxy/privoxy-blocklist_0.2.sh"
- 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 實現廣告過濾 ↩