https://avatars.githubusercontent.com/u/6058558

程式狂想筆記

sshuttle 一個免架設 VPN 的跳板代理工具

平常如果只是臨時要連內網服務,我大多會先想到 SSH Tunnel,通常用 -L-R-D 幾招就很夠用了。不過最近看到 sshuttle 這個工具,研究之後發現它滿有意思的。

它也是建構在 SSH 之上,但用起來比自己手動設定 Dynamic Port Forwarding 再加 SOCKS Proxy 更直接。某些情境下,你甚至可以把它當成「不用另外架 VPN Server,也能快速把指定網段流量送進遠端主機」的跳板工具。

用 Docker 讓 Transmission 自動補上公開 Tracker

有時候 BT 下載速度卡卡,不一定是種子本身的問題,也可能只是 Tracker 太少。最近剛好看到一個小工具,可以自動幫 Transmission 補上公開 Tracker,對於一些老種子或來源比較分散的任務來說,多少還是有幫助。

這篇就簡單記一下怎麼快速掛上去,順便補一下 Docker 環境下比較容易踩到的設定點。

DateTime.Parse 解析文字時間時區會遺失問題

最近接到一個專案,原本時間欄位大多使用 DateTime,但因為要串另外一套 API,對方是使用 DateTimeOffset。我原本以為只要 JSON 裡面有時間字串,應該就會連時區一起帶著走,結果實際追問題時,還真的踩到時間少了 8 小時的坑。

後來往下追,問題點其實就卡在 DateTime.Parse 這種「把字串重新轉回時間」的流程。尤其當字串裡本來就沒有時區資訊時,這一步很容易把原本上下文中的時區概念弄丟。

使用 mkcert 快速建立自簽憑證(Self-Signed Certificate)

常常在本機測試 HTTPS、Webhook、反向代理,或是模擬正式環境時,都會需要一組可以快速拿來用的自簽憑證。以前我自己也會手刻 OpenSSL 指令慢慢生,但後來用了 mkcert 之後,真的方便很多。

它最大的好處是,可以先在本機安裝一個受自己電腦信任的根憑證,後面要再簽出新的測試憑證時,就不用每次都重新匯入。這種做法在內部測試、開發環境,甚至臨時要掛到 Nginx、Kestrel、Traefik 時都很好用。

SSH Tunnel 三種方式備忘錄

最近要連某一台主機上的 Transmission 管理介面,Port 是 9091,但主機本身沒有直接對外開放這個 Port,所以最後還是得靠 SSH Tunnel 裡最常見的 Local Port Forwarding 來處理。

這個功能我以前就知道,只是通常久久才會用一次。每次要用的時候,又得重新想一次 -L-R-D 到底差在哪裡。既然這次剛好重新整理,就乾脆把重點記下來,之後自己複習也比較快。

Linux 掛載硬碟另類方法

在 Linux 系統管理裡,掛載硬碟看起來像是基本功,但真的遇到外接硬碟、USB、SD 卡、NAS 或 NFS 時,選錯方法很容易把自己搞到開機變慢、服務卡住,甚至一拔裝置就滿地錯誤。

我以前比較常直接用 /etc/fstab,後來在不同情境下才慢慢發現,其實 systemdudeviludev,甚至 autofs 都各有適合的使用場景。這篇就把幾種常見做法整理成一篇,順便補上我自己覺得比較實用的踩雷心得。

切歌總有「啵」一聲?解決獨佔模式切換歌會爆音

最近在玩 USB DAC、播放器獨佔模式時,有一個很容易讓人分心的小問題:明明音質很好,但每次切歌都會突然「啵」一聲。尤其是從 44.1kHz 切到 96kHz、192kHz 這種不同採樣率的音樂時,耳機裡那一下真的很明顯,聽久了不只不舒服,也會讓人擔心是不是設備哪裡有問題。

我一開始也以為是喇叭壞掉、USB 線不穩,或播放器設定怪怪的。後來查了一輪資料,有查到關掉獨佔模式可以解決部分問題,沒想到測試竟然解決。但聽音樂怎麼可能不開獨佔模式?那就失去很多音質優勢了啊。後來有找到解決方法,發現很少網站提到這個方法,甚至很多人都還在苦惱這個問題,希望這問題能幫助到大家。

這篇就整理成一篇實戰筆記,說明為什麼會有這個聲音,以及我自己覺得最有效、最省事的處理方式。

使用 OBS 錄製畫面,並以 FFmpeg AV1 壓縮影片

常看到網路上有人貼補幀或對比示範影片,但不確定如何錄製與壓縮。其實用 OBS 就能錄製,Windows 內建遊戲列也能錄,但檔案通常偏大。這篇示範:

  • 用 OBS 錄製桌面(顯示器擷取)
  • 錄完用 FFmpeg 壓縮為 AV1(檔案小、品質佳)

目標是做出「體積小、觀感不差、可快速分享」的示範影片。