2025年7月18日 星期五

TEST-NET

有時為了測試,又不能用 RFC1918 那三段 Private IP 時,可以使用 TEST-NET 網段

TEST-NET 有三段
192.0.2.0/24 (TEST-NET-1)
198.51.100.0/24 (TEST-NET-2)
203.0.113.0/24 (TEST-NET-3)

ref. Reserved IP addresses

2025年7月14日 星期一

Windows delete junctions

遇到無法用一般 del 指令刪除的連結時,可以用

fsutil reparsepoint delete <FileName>

2025年5月22日 星期四

New SSH client to old SSH server

從新版 SSH 8.x 連到舊版 6.x SSH server
若出現
Unable to negotiate with x.x.x.x port 22: no matching host key type found. Their offer: ssh-rsa,ssh-dss
因為較新版已禁用一些舊的加密協定導致無法連

可設定 LEGACY 使可以連
update-crypto-policies --set LEGACY

若要改回來是
update-crypto-policies --set DEFAULT

2025年4月19日 星期六

Certificate lifetime reduce to 47 days after 2029-03-15

在 2020年九月,憑證效期縮短為 398 天
爾後最新標準是 47 天,原因一樣是資安考量,分三個階段逐步調整
執行時間表
2026-03-15 縮短成 200 天
2027-03-15 縮短成 100 天
2029-03-15 縮短成 47 天

圖片來源 Sectigo

ref.
SSL/TLS憑證最長效期2029年將縮減成47天
CA/Browser Forum passes ballot to reduce SSL/TLS certificates to 47 day maximum term, endorsed by Sectigo


2025年4月1日 星期二

Update ESXi to 8.0.3d using depot file

本例是從 8.0U3 升到 8.0U3d,若從更舊的版本升級,不確定是否適用
先把所有 VM 關機,進入維護模式
把 depot 升級檔 VMware-ESXi-8.0U3d-24585383-depot.zip 放到機器內

ssh ESXi
先查看 depot 有那些 Profile
esxcli software sources profile list -d /vmfs/volumes/6626844c-01363afa-8c5d-60beb4161160/8.0u3d/VMware-ESXi-8.0U3d-24585383-depot.zip


升級指令,加 -p 指定 Profile,可以先用 --dry-run 參數測試
esxcli software profile update -d /vmfs/volumes/6626844c-01363afa-8c5d-60beb4161160/8.0u3d/VMware-ESXi-8.0U3d-24585383-depot.zip -p ESXi-8.0U3d-24585383-standard

完成後 reboot 重開機即可

2025年3月31日 星期一

Bracketed Paste Mode

Bracketed Paste Mode 是 Terminal 為了區分手動輸入及剪貼簿貼上的一種模式,
啟用此模式,貼上的文字區塊會被起始控制碼 ESC [ 200 ~ 及結束控制碼 ESC [ 201 ~ 包住

例如在編輯器貼上一段已經排版好的程式碼,若沒有啟用 Bracketed Paste Mode,
縮排會不如預期,導致有重複縮排的情況,可以參考 WIKI - Bracketed-paste 內的舉例

若是在 CLI 模式,啟用 Bracketed Paste Mode,一次貼上多行,Terminal 會先 queue 住,
按 Enter 後,才會將整個區塊送出
附圖畫面是一次貼了兩行指令,還沒按 Enter 的狀況,此時指令是還沒執行的



個人認為 CLI 模式將 Bracketed Paste Mode 關掉是比較正常的,
一次送出多行指令的執行如果可能不如預期

查看目前 Bracketed Paste Mode 是否啟用
bind -V | grep enable-bracketed-paste

啟用/關閉指令(當前)
bind 'set enable-bracketed-paste on'
bind 'set enable-bracketed-paste off'

如要寫入設定,可以將
set enable-bracketed-paste on 或 set enable-bracketed-paste off
寫入 /etc/inputrc

2025年3月18日 星期二

SSH Jump host connection

SSH 跳板機連線

情境: 1跳,透過 Host A 連 Host B
ssh -J user@hostA user@hostB

情境: 2跳,透過 Host A 連 Host B,再連到 Host C
ssh -J user@hostA,user@hostB user@hostC

-J 參數相當於設定 ProxyJump
若是用 Key 連線,Key 都是吃 Client 端的,只要把 Key 放到所有 Host 即可
達到體感直連,實際上路由仍是照指定 Host 順序走到目的
理論上更多跳都行

2025年3月6日 星期四

Fast check domain is registered or free

一般都用 whois 檢查域名可否註冊

whois.joker.com 提供了簡易版,看結果是 free 還是 registered,簡單明暸

# whois -h whois.joker.com -p 4343 domain:7878.com
domain:7878.com registered

# whois -h whois.joker.com -p 4343 domain:78782222.com
domain:78782222.com free

也可以用 nc
# nc whois.joker.com 4343 < domain:7878.com
domain:7878.com registered

ref. Check Domain Availability

2025年3月5日 星期三

Linux moreutils

moreutils 這個套件,包含了一些有趣功能的小工具
可以透過 dnf install moreutils 或 apt install moreutils 安裝
套件包含以下工具,個人覺得比較實用的是 ifdata、pee、sponge、ts、vidir
/usr/bin/chronic
/usr/bin/combine
/usr/bin/errno
/usr/bin/ifdata
/usr/bin/ifne
/usr/bin/isutf8
/usr/bin/lckdo
/usr/bin/mispipe
/usr/bin/pee
/usr/bin/sponge
/usr/bin/ts
/usr/bin/vidir
/usr/bin/vipe
/usr/bin/zrun

chronic 用來隱藏正常執行結果的標準輸出
好像沒什麼用,使用 > /dev/null 可以達到一樣的效果

combine 布林合併兩分文件
combine file1 and file2 兩分文件都有則輸出行
combine file1 not file2 輸出只存在 file1 但不存在 file2 的行
combine file1 or file2 相當於 cat file1 file2
combine file1 xor file2 輸出只存在 file1 或 file2 的資料

errno 查詢 errno 名稱及描述

ifdata 直抓網路卡各項資訊
例如: ifdata -pa eth0 可以直接取出 IPv4 IP

ifne 標準輸入不為空時,執行後續指令
date | echo hello # 會出現 hello
true | echo hello # 不會出現 hello

isutf8 檢查檔案是否是合法 UTF-8 格式
現在系統已全面都是 UTF-8,好像沒什麼用了

lckdo 指定 lock file,避免指令重複執行
跟 flock 類似,man page 也建議使用 flock

mispipe 相當於 command1 | command2
和 pipe 的差異是使用 mispipe command1 command2 會回傳 command1 的 exit status

pee 複製標準輸入,pipe 給多支程式
類似 tee,tee 是將標準輸入寫到檔案,pee 是將它 pipe 給程式,可以多個,
通常用 pee 的情況也是要 pipe 給多個程式才需要它
例如: date | pee cat cat 執行結果可以看到兩個日期

sponge 這個指令會接收到所有 input 後才會輸出,可以做到同檔操作
例如: grep abc file | sponge file
若不使用 sponge,一般做法要兩行
grep abc file > file.tmp
mv file.tmp file

ts 在任何 input 上加上時間
這指令很好用,例如: ping 1.1.1.1 | ts

vidir 可以在 vi 模式進行檔案操作
例如刪除,改檔名,存檔後會真的刪除及改檔名

vipe 編輯 pipe
在 command1 | command2 中間,加入 vipe,command1 | vipe | command2,可以對資料異動後,再 pipe 給 command2

zrun 在不解開 .gz 的情況下,對解開的檔案進行操作
背景做法是解壓暫存檔,把暫存檔名當參數餵給 command
例如: zrun grep abc file1.gz

2025年3月4日 星期二

Gmail SPF Checking

發現 Gmail 檢查 SPF 較之前嚴格,不確定從何時開始的
之前未設定 SPF,自架的 Server 都可以寄,頂多就是進 Spam,
現在沒有設定 SPF 或有設定但未通過檢查的都會被退信

退信訊息範例
<<< 550-5.7.26 SPF [pank.org] with ip: [203.xx.xx.xx] = did not pass
此案例使用自己的域名信箱寄信

這樣對使用者會少了一些彈性,
如果設備只支援基本的 SMTP (未加密的 Port 25),解法大概就幾種:

1. 使用 ISP 的信箱,及 SMTP
2. Sender 用自己的域名,用自己架 SMTP,設好 SPF
3. Sender 用自己的域名,用 ISP 的 SMTP,SPF 比照 ISP 的設定,例如 HiNet 是 "v=spf1 redirect=spf.ms.hinet.net"

不建議用方法3,因為別人也可以透過 ISP 使用你的域名寄信

TEST-NET

有時為了測試,又不能用 RFC1918 那三段 Private IP 時,可以使用 TEST-NET 網段 TEST-NET 有三段 192.0.2.0/24 (TEST-NET-1) 198.51.100.0/24 (TEST-NET-2) 203.0.113.0/24 (T...