[問題] 用 PowerShell 自動設定 Port forwarding
問題來自於 Podman 佈署完服務後要設定 Port forwarding
但手動確認 IP 好麻煩 想要一鍵處理
```
$config += @(@{listenport=4567; connectport=4567; distroname='Ubuntu'})
$config += @(@{listenport=2283; connectport=2283; distroname='Ubuntu'})
netsh interface portproxy reset
foreach ($c in $config) {
$distroname = $c.distroname
$wslip = wsl -d "$distroname" hostname -I
netsh interface portproxy add v4tov4 `
listenport=$c.listenport `
listenaddress=0.0.0.0 `
connectport=$c.connectport `
connectaddress=$wslip
}
```
檢查過變數的值看起來沒問題
看不出來是哪裡出問題
--
Sent from PTTopia
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 27.53.136.68 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Windows/M.1707151763.A.161.html
※ 編輯: falcon (27.53.136.68 臺灣), 02/06/2024 00:52:18
→
02/06 19:41,
2月前
, 1F
02/06 19:41, 1F
→
02/06 19:41,
2月前
, 2F
02/06 19:41, 2F
$config = @()
$config += @(@{ListenPort=4567; ConnectPort=4567; DistroName='Ubuntu'})
$config += @(@{ListenPort=2283; ConnectPort=2283; DistroName='Ubuntu'})
$iptable = @{}
netsh interface portproxy reset
foreach ($c in $config) {
if(-not ($c.DistroName -in $iptable.Keys)) {
$distroname = $c.DistroName
$result = wsl -d "$distroname" hostname -I
if ($result -match '\d{1,4}\.\d{1,4}\.\d{1,4}\.\d{1,4}') {
$iptable[$distroname] = $matches[0]
}
else {
continue
}
}
$listenPort = $c.ListenPort
$connectPort = $c.ConnectPort
$connectAddress = $iptable[$c.DistroName]
netsh interface portproxy add v4tov4 `
listenport=$listenPort `
listenaddress=0.0.0.0 `
connectport=$connectPort `
connectaddress=$connectAddress
}
→
02/06 19:42,
2月前
, 3F
02/06 19:42, 3F
※ 編輯: falcon (27.53.136.68 臺灣), 02/06/2024 19:57:16
→
02/06 21:11,
2月前
, 4F
02/06 21:11, 4F
→
02/06 21:11,
2月前
, 5F
02/06 21:11, 5F
→
02/06 21:11,
2月前
, 6F
02/06 21:11, 6F
@echo off
Powershell -sta "Start-Process Powershell -Verb RunAs -ArgumentList '-ExecutionPolicy Bypass -File ""%~dpn0.ps1""'"
※ 編輯: falcon (27.53.136.68 臺灣), 02/06/2024 21:48:58
推
02/06 22:27,
2月前
, 7F
02/06 22:27, 7F
推
02/08 20:03,
2月前
, 8F
02/08 20:03, 8F
Windows 近期熱門文章
PTT數位生活區 即時熱門文章