2026年10月23日 星期五

RouetOS 7.25 set minimal supported WinBox version to 4.3

2026-10-23 釋出的 RouterOS 7.25 強制使用 WinBox 4.3 以上的版本
使用舊版 WinBox 3.43 會出現
ERROR: router requires newer winbox, please upgrade
RouterOS 7.24.5 變成是最後一個可以用 WinBox 3 連線的版本
WinBox 3 已經變成時代的眼淚,還是習慣用它,真捨不得

ref. 7.25 [stable] is released!

RouterOS Recursive Routing

Recursive Routing 「遞迴路由」

為什麼需要「遞迴路由」?
在設定雙 WAN 備援時,如果只在預設路由上設定 check-gateway=ping
並指向 ISP 的閘道器 (例如數據機 IP),
路由器只會檢查「自己到數據機」這一段連線是否正常。
一旦發生「數據機沒壞,但 ISP 機房端光纖斷裂」的情況,
路由器仍會誤判主線路正常,導致斷線。
MikroTik 官方採用 Recursive Routing (遞迴路由) 解決這個盲點:

1. 指定外部監控目標: 挑選穩定且可以 Ping 主機 (例如 8.8.8.8 與 8.8.4.4),
強制指定它們分別透過 ISP1 與 ISP2 的實體閘道器連線。

2. 將預設路由指向監控目標: 把預設路由 (0.0.0.0/0) 的 gateway 設為 8.8.8.8 而非 ISP 閘道器,
路由器會自動「遞迴查找」前往 8.8.8.8 的真實下一跳 (即 ISP1 閘道器)

3. 透過 scope 與 target-scope 控制查找範圍
scope: 代表該條路由本身的「距離層級」
target-scope: 代表這條路由允許去查找 scope 值小於或等於此數值的其他路由作為下一跳。
在 RouterOS v7 中,遞迴路由的 target-scope 必須嚴格大於或等於底層主機路由的 scope
(官方範例將底層監控路由設為 scope=10,預設路由設為 target-scope=11)


參數項目主要線路(ISP1)備援線路(ISP2)說明
外網介面(Interface)ether1ether2連接兩家 ISP 的實體或邏輯埠
ISP 閘道器(Gateway)10.111.0.110.112.0.1ISP 配發的上游閘道器 IP
路由優先權(Distance)1(優先使用)2(備援待命)數值越小優先權越高
第一組監控主機(Google DNS)8.8.8.88.8.4.4用於基礎連通性偵測
第二組監控主機(OpenDNS)208.67.222.222208.67.220.220用於雙主機防誤判(進階設定)


NAT rule
/ip/firewall/nat
add chain=srcnat action=masquerade out-interface=ether1
add chain=srcnat action=masquerade out-interface=ether2

指定外部監控目標
/ip/route/
add dst-address=8.8.8.8 scope=10 gateway=10.111.0.1
add dst-address=8.8.4.4 scope=10 gateway=10.112.0.1

將預設路由指向監控目標
/ip/route/
add distance=1 gateway=8.8.8.8 target-scope=11 check-gateway=ping
add distance=2 gateway=8.8.4.4 target-scope=11 check-gateway=ping

進階強化: 加入第二組監控主機防止單一目標誤判
/ip/route
add dst-address=208.67.222.222 gateway=10.111.0.1 scope=10
add dst-address=208.67.220.220 gateway=10.112.0.1 scope=10
add distance=1 gateway=208.67.222.222 target-scope=11 check-gateway=ping
add distance=2 gateway=208.67.220.220 target-scope=11 check-gateway=ping

注意事項:
監控目標要避開內網設備可能的連線目標
官方的設定範例,8.8.8.8 與 208.67.222.222 已經被靜態路由強制綁定在 ISP1,
當 ISP1 斷線,切換至 ISP2 時,內網設備將暫時無法連上 8.8.8.8 與 208.67.222.222
所以內網設備 DNS 就不能指定 8.8.8.8 及 208.67.222.222

ref. Failover (WAN Backup)


PHP CVE-2026-109618 CVE-2026-109619 workaround


PHP Critical RCE 漏洞緩解設定

PHP 官方於 2026 年 10 月 21 日發布重大安全公告,涉及以下兩個可導致遠端程式碼執行(RCE)的漏洞:

漏洞主要問題主要緩解方向
CVE-2026-109618記憶體耗盡(OOM)期間,PHP 內部請求資料尚未完整初始化,後續清理流程可能使用不正確的記憶體狀態行政強制設定 memory_limit=-1,限制請求大小與輸入複雜度
CVE-2026-109619請求結束後仍殘留指向已釋放記憶體的全域狀態,後續由同一 worker 處理的請求可能觸發 use-after-free停用 session upload progress、減少可觸發的錯誤路徑並清除危險的設定方式

相關版本的官方修補版本如下:

  • PHP 8.5:8.5.12

  • PHP 8.4:8.4.27

  • PHP 8.3:8.3.36

  • PHP 8.2:8.2.35

無法立即升級 PHP 至官方修補版本的既有系統,可以透過調整 php.ini 參數緩解,
注意,參數設定只是 workaround,並沒有解決原本的問題,只是增加攻擊路徑的難度

; 避免攻擊者利用可控的 PHP 記憶體上限,觸發已知的 OOM 攻擊路徑。
memory_limit = -1

; 停用此功能,可以阻斷已確認的 session upload progress 攻擊路徑
session.upload_progress.enabled = Off

; 降低輸入巢狀深度,這個預設值是 64,一般 4 或 8 即足夠
max_input_nesting_level = 4

; 限制 GET / POST / COOKIE 輸入變數數量,這個值預設是 1000
max_input_vars = 100

; 限制同一請求可接收的上傳檔案數
max_file_uploads = 1

; 不需要檔案上傳
file_uploads = Off

; 小檔上傳建議值
post_max_size = 8M
upload_max_filesize = 7M

; 大檔上傳建議值
post_max_size = 32M
upload_max_filesize = 28M


同時限制 Web Server 的請求大小,注意這邊單位是 Bytes,可以設定跟 post_max_size 相同

Apache:LimitRequestBody
Nginx:client_max_body_size


ref. RCE via OOM corruption

2026年10月5日 星期一

Android ACCESS_LOCAL_NETWORK permission

目標 SDK 版本 37 以上版本,app 若需要存取區域網網,需要求 ACCESS_LOCAL_NETWORK 權限
Google Play 中的 Termux 在 app 並沒有要求此權限,造成 ping、curl 內網都不會通
ping: sendmsg: Operation not permitted

替代方案是安裝 F-Droid 內的 Termux,最後一次更新是 2025年5月
Source Code 內的設定是
targetSdkVersion=28
compileSdkVersion=36

2026年9月15日 星期二

Windows 11 bypass TPM and create local account

跳過 TPM 檢查及建立本機帳號,適用 Windows 11 25H2 Aug 2026 版本

看到選擇語言時,Shift-F10 叫出 CMD,執行 regedit

HKEY_LOCAL_MACHINE\SYSTEM\Setup
下面新增 機碼(Key)LabConfig
再建立以下兩個 DWORD 32位元,數值設為 1
BypassTPMCheck
BypassSecureBootCheck

裝完重開機後,停下來第一個畫面,Shift-F10 叫出 CMD
輸入 start ms-cxh:localonly
會跳出一個對話框,可以直接建立本機帳號

2026年8月27日 星期四

WinBox legacy version 3.x

RouterBoard 管理工具 WinBox 官方已經出 4.x 版
UI 比較漂亮,但也肥大許多(解開大於50M),還是習慣使用舊版(x64 只有 2.2M)

WinBox 3.43
Legacy version of advanced desktop utility to manage RouterOS limitless configuration options.
With WinBox you can setup any of MikroTik products.
Available only on Windows.

官方網址

2026年8月12日 星期三

Windows 10 ESU extended to 2027-10-12

微軟延長了 Windows 10 ESU 支援時間至 2027-10-12 (又加一年)

可以使用 ConsumerESU 腳本快速啟用 ESU

下載 ZIP 包解開後,以系統管理員身分執行 Consumer_ESU_Enrollment_run.cmd

 

New Zealand Dazzle Apple

鈕西蘭的 Dazzle 蘋果真是超好吃啊
爽脆多汁口感,貼紙上有 dazzle 字樣及 PLU 編號 3529
據說是經歷 20 年研發,農業科技的結晶

 

附圖取自官網 https://www.dazzleapple.com/

2026年6月26日 星期五

DNS-PERSIST-01 DCV

Let's encrypt 建立的新 DCV 方式 DNS-PERSIST-01

它是用綁定帳號,在域名直接設上 accounturi 的 TXT 資料,
來達到長效授權,之後經由綁定帳號來申請的憑證,就直接過了,不需再設定 DNS
已經上 Staging 環境 (--server letsencrypt_test)
預計 2026 Q2 上正式,應該快了

使用 acme.sh 先下指令取得要設定的 TXT
acme.sh --make-dns-persist-value --dns-persist-wildcard -d {domain}

設好之後,就可以 issue
acme.sh --issue -d {domain} -d *.{domain} --dns-persist

尚未上正式前,用正式的 Server (--server letsencrypt) 會收到錯誤
Cannot get domain token entry {domain} for dns-persist-01
Supported validation types are: tls-alpn-01 http-01 dns-01 , but you specified: dns-persist-01

2026年6月16日 星期二

Save Web to PNG

方法1 Playwright

npm install -g playwright
npx playwright install-deps
npx playwright install chromium

npx playwright screenshot --full-page --wait-for-timeout=3000 https://24h.pchome.com.tw screenshot.png

方法2 Chromium

dnf install chromium -y

chromium-browser --headless --disable-gpu --screenshot --window-size=1920,1080 https://24h.pchomec.com.tw

結果會輸出到當前目錄的 screenshot.png

方法1會自動捲動,存下完整頁面,方法2局限於指定的大小

 

RouetOS 7.25 set minimal supported WinBox version to 4.3

2026-10-23 釋出的 RouterOS 7.25 強制使用 WinBox 4.3 以上的版本 使用舊版 WinBox 3.43 會出現 ERROR: router requires newer winbox, please upgrade RouterOS 7.24.5 ...