Select Page

將你windows中的Ubuntu(WSL)的IP對外

預設在你的windows下的 Linux 系統會取得一個 IP,通常是172.19開頭的,這是因為用的是 Hyper-V 架構導致的,變成你再 WSL 內開發的服務都很難對外,但其實只要利用 windows 內建的 Netsh interface portproxy 即可

設定 NAT Proxy

透過 netsh interface portproxy 來作設定

netsh interface portproxy add v4tov4 listenport=<yourPortToForward> listenaddress=0.0.0.0 connectport=<yourPortToConnectToInWSL> connectaddress=(wsl hostname) -I)

其中

listenport 和 connectport 通常設定一樣,也就是你的服務的 port

listenaddress=0.0.0.0 (固定)

connectaddress 要記得是填入你 ubuntu 的IP喔,可以透過 wsl hostname -I 找出 IP

wsl hostname -I

假設你有一個服務是運行在 port 3001,ubuntu 的 ip 172.19.227.52,修改後的你指令應該要長成

netsh interface portproxy add v4tov4 listenport=3001 listenaddress=0.0.0.0 connectport=3001 connectaddress=172.19.227.5

最後記得要打開對應的防火牆的設定喔

加碼演出

關於 netsh 的控制指令說明

顯示目前所有的設定

netsh interface portproxy show all

重新設定 netsh

netsh interface portproxy reset

參考資料

https://learn.microsoft.com/zh-tw/windows/wsl/networking

使用 WP-CLI 管理 WordPress

使用 WP-CLI 管理 WordPress

WordPress 是全球最受歡迎的內容管理系統之一,提供了直觀的圖形使用者介面來管理網站。然而,對於開發者系統管理員來說,通過命令列介面管理 WordPress 也是非常必要的。這就是 WP-CLI 發揮作用的地方。WP-CLI 是一個為 WordPress 站點提供的命令列工具,允許用戶快速執行許多任務,如安裝和更新插件、配置多站點安裝、生成內容等,而無需使用 Web 瀏覽器。

WP-CLI 的優勢

  • 效率:通過命令列執行任務通常比使用圖形使用者介面更快。
  • 自動化:可以輕鬆地將命令腳本化和自動化,以便批量處理任務。
  • 無需 GUI:對於僅命令列介面訪問的伺服器,這是管理 WordPress 站點的理想選擇。

安裝 WP-CLI

WP-CLI 的安裝過程簡單直接,可以通過幾個簡單的步驟在任何類 UNIX 系統上安裝(包括 MacOS、Linux 發行版和 Windows 的 WSL)。

下載 WP-CLI: 首先,使用 curlwget 命令下載 WP-CLI 的 Phar 檔案。

使用 curl:

curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

或者使用 wget:

wget https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

驗證 Phar 檔案是否可執行: 執行以下命令測試 wp-cli.phar 是否正常工作:

php wp-cli.phar --info

將它變成執行檔: 將下載的檔案轉換為可執行檔案,並移動到全域路徑中,以便從任何位置訪問 WP-CLI。

chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp

驗證及測試WP-CLI: 輸入以下命令以確認 WP-CLI 正確安裝:

wp --info

會看到結果如下

以下示範一些簡單的功能

檢查 WordPress 核心檔案更新

wp core check-update

安裝插件

wp plugin install [plugin-name] --activate

更新所有插件

wp plugin update --all

創建新的用戶

wp user create bob [email protected] --role=author