Linux | The Will Will Web

The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

如何在 Linux 正確建立自簽憑證並讓 ASP.NET Core 網站可以順利進行連線

我最近漸漸的嘗試將各種前後端開發環境搬遷到 Linux 環境下,無論是在 WSL 或是原生的 Linux 的效能表現都比 Windows 來的出色。然而在微服務架構下,服務與服務間的通訊經常需要使用 TLS/SSL 憑證進行加密連線,但是自簽憑證在 Linux 底下預設是不受信任的,必須特別處理才能解決服務間的安全連線的信任問題。這篇文章我將說明這個過程與解決方法。

... 繼續閱讀 ...

如何在 Ubuntu Linux 解除安裝 .NET SDK 或 Runtime 任意版本

雖然 .NET 有個 Uninstall Tool 可以用來解除安裝任何 .NET / .NET Core 版本,但是目前依然不支援 Linux 版本,可能是 Linux 生態實在是太複雜了,所以一直沒有提供好用簡便的反安裝工具。今天這篇文章我將分享幾個好用的命令,幫助你快速解除安裝現有的 .NET SDK 與 Runtime 版本。

... 繼續閱讀 ...

使用 luit 完美解決 Windows Subsystem for Linux 顯示 Big5 字集的問題

對於 WSL (Windows Subsystem for Linux) 一直無法處理 Big5 字元這件事,對我來說就像在一片白牆上的一個污點,明知這面白牆很漂亮,但就是無法不注意牆上的那個污點,一直覺得不完美,直到昨天都還是解決不了。睡一覺之後,想到了一個新的關鍵字,找到了一個 luit 工具,這就是我昨天一直想要找到的工具!

... 繼續閱讀 ...

分享幾個在 Windows 與 Linux 常見的編碼問題與解決方案

我每隔幾年我就會遇到一次 non-Unicode 的編碼問題,真的不常見,但這些年來也處理過無數次了,每次都被搞的很煩。最近在 Linux 環境又遇到棘手的編碼問題,檔案內容是從 ISO-8859-1 (Latin-1) 字集的 Sybase ASE 資料庫轉出,所以編碼是 ISO-8859-1 字集,但內容其實是 BIG5 字集,而我用 Windows Terminal + WSL 2 又只支援顯示 Unicode 字集的文字,所以文字無法正常在螢幕上顯示或複製。幾經嘗試後,我決定把這幾年累積的心得都寫下來,以免日後又要再花時間研究一次。

... 繼續閱讀 ...

在 Linux 如何使用 curl 下載從 Google Drive 分享的檔案

前陣子我需要安裝一台 Sybase ASE 資料庫到 Linux 主機,當我拿到安裝檔的時候,其實是一個 Google Drive 共用的連結,檔案大小有 1.4GB 左右,我不想先下載到我的 Windows 主機再上傳到 Linux 主機,我想直接從 Linux 主機下載該檔案。上網找了許多解決方案,但是這些作法幾乎都已經失效,最後還是自己研究出了一個很棒的方法,有需要的人請繼續看下去。

... 繼續閱讀 ...

關於 Linux 下 Bash 與 Zsh 啟動檔的載入順序研究

Linux 用了二十多年,從沒認真想過 Login Shell 載入的啟動檔順序為何,我們經常會看到 .bashrc, .bash_profile, .bash_login, .profile 諸如此類的檔案,在安裝一些工具或系統的時候,也多多少少會需要設定這些檔案,加入一些環境變數或其他設定之類的。除了我常用的 Bash 以外,外面還有 Zsh 也很多人用,這時到底要編輯哪個檔案才是正確的呢?我將用這篇文章來好好釐清這個真相。

... 繼續閱讀 ...

Ubuntu 20.04 LTS 伺服器如何調整網路介面設定從 DHCP 變更為固定 IP 地址

Ubuntu 20.04 LTS 伺服器預設採用 Netplan 作為網路設定的工具,但是要變更網路介面設定實在是有點麻煩,沒找到有好用的 TUI (Terminal UI) 工具可以用。我想透過這篇文章記錄一下變更 IP 設定的過程。如果有不同的網路情境導致設定步驟不同,我會陸續補充到這篇文章裡。

... 繼續閱讀 ...

執行 Docker 容器可使用 dumb-init 或 tini 改善程序優雅結束的問題

現在越來越多環境都跑在 Docker 環境下,但不知道你是否有遇過想要停止容器,但執行 docker stop 之後卻無法立即停止的狀況?這個問題會牽扯到我在 當 .NET Core 執行在 Linux 或 Docker 容器中如何優雅的結束 文章中提到的 訊號(Signal) 是如何傳送到容器的程序。這篇文章我將更深入的探討這個問題,以及提供解決方法。

... 繼續閱讀 ...

如何在 Linux 搬動資料夾與其所有檔案到另一個同名資料夾

我今天遇到一個緊急事件,我有台 Linux 主機意外的被一個 Bug 吃光所有磁碟空間,導致服務中斷。我原本想將檔案搬移到另一個地方,但是這個資料夾檔案特別多,不但檔案多,資料夾也多,我先用 mv 搬到另一個地方,空出足夠的空間後,先終止搬移作業,打算先修復服務,然後就無法搬了!💥

... 繼續閱讀 ...

如何使用 Certbot 建立免費的 TLS/SSL 網域憑證並自動產生 PFX 憑證

我之前有寫過一篇 如何使用 Certbot 命令列工具建立免費的 TLS/SSL 頂層網域憑證 文章,當時的情境是我的域名是 頂層網域 (naked domains)(Top-Level Domain)(TLD),必須用「手動」方式申請。今天這篇文章,我要示範如何「全自動」申請與更新憑證,並自動產生 Kestrel 所需的 *.pfx (PKCS#12) 憑證。

... 繼續閱讀 ...

如何使用 Certbot 命令列工具建立免費的 TLS/SSL 頂層網域憑證

許多有在玩 Angular 前端框架的人都知道,目前的 Angular 官網的正體中文版(https://angular.tw)都是由我負責維護。該網站我目前架設於 Azure App Service 上,我原本想用 Azure 上目前免費的 App Service 受控憑證,可惜他並不支援「裸網域」(naked domains),因此我就必須要改申請免費的 Let's Encrypt 網站伺服器憑證。

... 繼續閱讀 ...

OKD (OpenShift Origin) 3.11 與 Ubuntu 18.04 LTS 建置筆記

最近因為有客戶的 Infra 環境採用 OKD (The Community Distribution of Kubernetes that powers Red Hat OpenShift) 平台,為了能夠在我公司建立一套跟客戶一樣的環境,所以就自行架設了一套來用,大約花了兩天時間研究,雖然建置的過程不太順利,但發現越玩越熟就越覺得好用。還好我已經有 Kubernetes 的底子在,研究 OKD 其實觸類旁通,雖然有卡關,但還好都有解決。本篇文章就分享我的 OKD 3.11 建置過程與心得!

... 繼續閱讀 ...

如何解決 WSL 2 底下無法執行 Windows 應用程式的問題 (run-detectors)

我最近經常在 WSL 2 環境下開發,這樣不但可以大幅減少電腦的各種複雜配置與相依問題,有時候執行速度甚至比 Windows 還快。但我其中一台電腦這幾天卻出現了個詭異問題,想要執行 code . 卻會出現 run-detectors: unable to find an interpreter for /mnt/c/Program Files/Microsoft VS Code/Code.exe 的錯誤訊息,無法成功啟動 VSCode 執行,找了好一會兒才解決。

... 繼續閱讀 ...