2026年5月14日 星期四

scp remote to remote

有 3 台主機 HostA、HostB、HostC
在 HostC 下 scp 指令要從 HostA 複製檔案到 HostB,都透過 Key auth

預設情況下 (沒有加參數 -3)
HostC 對 HostA 要建 Key,HostA 對 hostB 要建 Key
資料流是直接從 HostA 到 HostB,沒有經過 HostC

第二種情況,透過 HostC 中繼,加參數 -3
HostC 對另外兩台建 Key,資料流有經過 HostC 本地

-3 Copies between two remote hosts are transferred through the local host.
Without this option the data is copied directly between the two remote hosts.
Note that, when using the legacy SCP protocol (via the -O flag),
this option selects batch mode for the second host as scp cannot ask for passwords or passphrases for both hosts.
This mode is the default.

2026年5月11日 星期一

Copy fail and Dirty Frag

Copy fail 及 Dirty Frag 這兩個漏本地提權(LPE)漏洞,在 2026 年 5 月被揭露,
漏洞已存在很久,幾乎影響所有的 Linux
Github 上面已經有很多 POC 程式
暫時解決方案是禁用相關的 Kernel 模組
以下是 for RedHat 系的 Linux

# Copy fail
echo "install af_alg /bin/false" > /etc/modprobe.d/disable-af_alg.conf
echo "install algif_aead /bin/false" >> /etc/modprobe.d/disable-af_alg.conf
echo "install algif_skcipher /bin/false" >> /etc/modprobe.d/disable-af_alg.conf
# Dirty Frag
echo "install esp4 /bin/false" > /etc/modprobe.d/disable-esp.conf
echo "install esp6 /bin/false" >> /etc/modprobe.d/disable-esp.conf
echo "install rxrpc /bin/false" >> /etc/modprobe.d/disable-esp.conf

lsmod | egrep "af_alg|algif_aead|algif_skcipher|esp4|esp6|rxrpc"
若有結果,表示已載入該模組,用 rmmod 移除

2026年5月10日 星期日

Mount SSHFS in Windows

https://github.com/winfsp/winfsp
https://github.com/winfsp/sshfs-win

要先安裝這兩個工具

一般用帳密掛載,預設是掛載使用者的 home 目錄
net use Z: \\sshfs\username@host

使用 SSH Key (前綴從 sshfs 變成 sshfs.k),SSH Key 存放路徑 C:\Users\username\.ssh
net use Z: \\sshfs.k\username@host

若要掛其他目錄,前綴從 sshfs 或 sshfs.k,請使用相對路徑
例如 username 的 home 目錄是 /home/username,要掛載 /data
net use Z: \\sshfs.k\username@host\..\..\data

要使用絕對路徑,前綴要使用 sshfs.r 或 sshfs.kr
net use Z: \\sshfs.kr\username@host\data

2026年5月3日 星期日

JOE 4.8

在 Linux 環境下,一直都是使用 joe 編輯器 (JOE - Joe's own editor)
這個編輯器應該算冷門了,非 vi、vim 的編輯器中,nano 或 pico 使用群大概都比它多
joe 是使用 Ctrl 組合鍵來達到各種編輯動作
從 2018 年發布 4.6 版本以來, 長期未更新,最近關注它,發現竟然有 4.7 及 4.8 版,都是在 2026 年更新的

joe-4.8-1.el8.x86_64.rpm

這是自編的 joe 4.8 的 rpm 檔,EL8 to EL10 應該都可以使用

以下是 AI 整理的更新摘要
joe 在 4.7 與 4.8 版中,除了日常的效能調校與臭蟲修復之外,也加入了多項實用功能,
以提升編輯器在現代終端機環境下的穩定性與安全性。

1. 核心安全性增強
標籤檔 (Tags File) 弱點修復 (JOE 4.8): 修正了先前版本中存在的重大安全性問題。
在舊版中,惡意建構的標籤檔可能會欺騙使用者執行 shell 指令。
4.8 版禁止了透過標籤檔開啟檔案時使用 ! 語法,強化了系統安全性。

2. 編輯器功能與除錯增強
歷史紀錄與巨集控制: 在巨集中允許使用 notmod 指令,
能夠在提示視窗中不將指令加入命令歷史紀錄,使歷史紀錄保持乾淨。
區塊過濾提示的歷史紀錄現在會儲存在狀態檔案中。
編譯器錯誤解析器 (Compiler Error Parser) 改進: 新增 parserr_homeonly 選單選項。
啟用後,錯誤解析器會忽略使用者家目錄以外的檔案錯誤,避免系統檔案的錯誤訊息干擾開發者的除錯視圖。
自訂選單改良 (JOE 4.7-4.8):重新整理了 ^T 選項設定選單,將不常使用的選項移至子選單中,
並支援在選單系統中加入自訂的巨集。

2026年4月20日 星期一

RouterOS Reverse Proxy

RouterOS 從 7.22 版,新增了 Reverse Proxy 功能,

SNI 填入域名
IP Address 填入 Server IP,通常是內部 IP,但也可以導到外部
Port 填入內部 Server HTTP 服務 Port
Certificate 選擇對應的憑證,選擇 none 會使用 IP / Services 中 reverse-proxy 指定的憑證

再搭配 ACME Cerfificate,還可以自動 Renew
在 IP / Cerfificates,Add ACME Certificate,若使用 Let's Encrypt
Directory URL 填入 https://acme-v02.api.letsencrypt.org/directory
Domain 可以填入多個,用逗號分隔
EAB KID 空白即可

注意事項 :
reverse-proxy Service 使用 443 的話,Web 管理介面 www-ssl 就要使用其他 Port 或關閉
reverse-proxy 並不會接 HTTP Port 80 再導入,若 HTTP 也需要的話,用 IP / Firewall dstnat 處理

2026年4月8日 星期三

0xC2A0 Non-breaking space

0xC2A0 是不換行空格(Non-breaking space, NBSP) 在 UTF-8 編碼下的十六進制表示形式。
字元作用:它的外觀與一般的空格(ASCII 0x20)完全相同,但其功能是告訴瀏覽器或排版軟體「不要在此處斷行」。
這個字元在維運是個雷

這兩行中間的空白看起來沒兩樣,實際執行這個腳本,會出現
123
bash: line 3: echo 456: command not found
456 的前面,就是 0xC2A0

2026年4月1日 星期三

Let's Encrypt IP certificate

https://letsencrypt.org/2026/01/15/6day-and-ip-general-availability
2026年一月開放使用,但效期只有 160 小時
可以同時申請 IPv4 + IPv6 在同一張

必需指定用 shortlived profile
acme.sh --issue -d {IPv4} -d {IPv6} --webroot /var/www/html --certificate-profile shortlived

2026年3月25日 星期三

10 minutes file sharing service

https://tmp.pank.org

這個服務方便臨時交換檔案,檔案存活時間 10 分鐘,檔案大小上限 25MB

可以經由 curl 上傳或 Web 上傳
curl 上傳範例,上傳完會顯示下載網址

# curl -sT 10mb.zip tmp.pank.org
10390198 bytes uploaded

download as file: wget https://tmp.pank.org/ehljs8d3/10mb.zip
download as file: curl -sO https://tmp.pank.org/ehljs8d3/10mb.zip
download to stdout: curl -s https://tmp.pank.org/ehljs8d3/10mb.zip

有時 A、B 主機想要交換檔案,但 A、B 無法直接互連,但各自可以連外網,就適合用這個服務

2026年3月7日 星期六

Mount LVM in rescue mode

pvscan # 掃描實體捲軸 (PV)
vgscan # 掃描捲軸群組 (VG)
vgchange -ay # 建立 /dev/mapper/ 下的設備節點
lvscan 或 ls -l /dev/mapper # 查看有那些節點
mount /dev/mapper/rl-root /mnt # 掛載 /root 到 /mnt

若無法掛載,可能需要修復
xfs 使用 xfs_repair -L
ext3/ext4 使用 fsck

Grubby set default kernel

顯示 boot menu 有那些 kernel
grubby --info=ALL

顯示目前預設 kernel
grubby --default-kernel

設定 index=1 為預設 kernel,index 由第一個指令取得
grubby --set-default-index=1

2026年2月27日 星期五

Chrome / Edge 修正個人裝置有受管理瀏覽器的問題

個人電腦 Chrome/Edge 出現瀏覽器受管,通常是曾經登入過公司或學校帳戶造成

以下兩個方式進行排除

1. 刪除 registry 中的 Chrome / Edge Policies (需用管理者權限)
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome" /f
reg delete "HKEY_CURRENT_USER\SOFTWARE\Policies\Google\Chrome" /f
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edge" /f
reg delete "HKEY_CURRENT_USER\SOFTWARE\Policies\Microsoft\Edge" /f

2. 移除「公司或學校帳戶」連結
[設定] -> [帳戶] -> [存取公司或學校資源]
檢查是否有任何帳號列在此處,如果有,將它中斷連接

2026年2月16日 星期一

PHP class for HE.net DNS management

HE.net 這家老牌的網路服務商,它所提供的 Free DNS service 並沒有 API,
所以寫了這個 PHP class,可以新增、刪除、修改 DNS records
https://github.com/pankpan/henet

它是爬蟲方式登入,Parse HTML 操作,網頁有改版就有可能會不能用,需配合做調整

2026年2月4日 星期三

OpenClaw

改名歷程 Clawdbot -> Moltbot -> OpenClaw
試了一下,真的有點厲害,它等於是在本地端執行,有最高權限的 Agent,可以做很多事
除非跑本地模型,不然它都是接外部大腦 (Claud、ChatGPT、Gemini 等) API
目前這個 Agent 非常燒 Token,隨便就會超過百萬 TPM,猜測可能要繼承上下文,
若真是這樣,不就愈用 TPM 愈多,有優化空間
而目前 AI API 不管那一家都是用多少算多少 (pay-as-you-go),
以現階段來說,考量到費用的話,覺得可以再等等,很快就會有很多 Agent 出現,
等燒 Token 的問題優化後再用不遅。
若想要玩的話強烈建議用獨立環境安裝,不要安裝在自己平常使用的電腦

2026年1月30日 星期五

WSL TCP network issue

狀況是
ping IP OK (表示 ICMP 有通)
dig domain OK (表示 UDP 有通)
但 curl google.com 這種 TCP 的動作都不通

解決方法:
wsl --shutdown
wsl --upgrade
重開電腦

Gemini 提供的解法都無效,這兩個在其他情況也許有用,提供參考:
MTU 問題
ip link set dev eth0 mtu 1400

關掉 Checksum Offloading
用 Administrator 執行 PowerShell 指令:
Get-NetAdapter | Where-Object {$_.Name -like "*vEthernet (WSL)*"} | Disable-NetAdapterChecksumOffload -TcpIPv4

Import Rocky Linux 10 to WSL

Rocky Linux 官方已經有直接提供 WSL 檔,可以直接匯入 Windows
Download 捲到最下頁 WSL 的地方
或直接使用這個 10.1 的 Mirror Link (180MB)
https://mirror.twds.com.tw/rockylinux/10.1/images/x86_64/Rocky-10-WSL-Base-10.1-20251116.0.x86_64.wsl

若這個檔是存在 C:\DL\Rocky-10-WSL-Base-10.1-20251116.0.x86_64.wsl
要安裝到 C:\WSL\RockyLinux10

wsl --import RockyLinux10 C:\WSL\RockyLinux10 C:\DL\Rocky-10-WSL-Base-10.1-20251116.0.x86_64.wsl

匯入後設它為預設值
wsl -d RockyLinux10

2026年1月14日 星期三

LINE Bot Webhook Source IP

根據 http log,LINE Bot Webhook 來源 IP 只會用這兩段
147.92.149.0/24
147.92.150.0/24
不是很確定是否還有其他段,ACL 可以先設 allow 147.92.128.0/17 再長期觀察,限縮區段

2026年1月11日 星期日

x86-64-v3 is required by RHEL10

RHEL10 必需要 x86-64-v3 指令集的 CPU 才能安裝,
太舊的電腦(超過十年)可能都沒辦法裝,連開機都不行
替代方案可使用 Almalinux,仍有提供 x86_64_v2 的版本



TWDS mirror
Almalinux 所提供的 x86_64,跟 RHEL 一樣,是 v3 的版本,
Rocky Linux 則沒有提供 x86_64_v2

2026年1月9日 星期五

AWS Asia Pacific (Taipei) ap-east-2

AWS 在去 2025 年六月就啟用亞太 (台北) 區域服務 (ap-east-2)
HiNet 光世代 ping 值 4-5ms
比 GCP 台灣 6-7ms 還快
三大雲端就差微軟 Azure 了
其實 Azure 也已在 2024 年 11 月啟用台灣資料中心,位於桃園蘆竹地區,
但尚未開放一般帳號使用,也就是 Azure Portal 中看不到台灣
微軟的策略是先讓金融、政府、醫療等產業客戶優先使用,之後才會逐步擴展到更多企業與一般開發者

scp remote to remote

有 3 台主機 HostA、HostB、HostC 在 HostC 下 scp 指令要從 HostA 複製檔案到 HostB,都透過 Key auth 預設情況下 (沒有加參數 -3) HostC 對 HostA 要建 Key,HostA 對 hostB 要建 Key 資料流是直...