作者falcon (falken)
看板Windows
標題[問題] 用 PowerShell 自動設定 Port forwarding
時間Tue Feb 6 00:49:21 2024
問題來自於 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://webptt.com/m.aspx?n=bbs/Windows/M.1707151763.A.161.html
※ 編輯: falcon (27.53.136.68 臺灣), 02/06/2024 00:52:18
1F:→ falcon: 找到問題了,$wslip 似乎混入多餘字元,用正規表示法濾掉02/06 19:41
2F:→ falcon: 多餘的字元之後就解決了。02/06 19:41
$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
}
3F:→ falcon: 現在的新問題是如何開機自動以管理員身分執行腳本…02/06 19:42
※ 編輯: falcon (27.53.136.68 臺灣), 02/06/2024 19:57:16
4F:→ falcon: 找到解法了 Start-Process -Verb RunAs 呼叫出系統管理員 02/06 21:11
5F:→ falcon: 權的限 PowerShell 去執行 .ps102/06 21:11
6F:→ falcon: 做成 bat 丟個捷徑到啟動目錄02/06 21:11
@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
7F:推 saito2190: 推自問自答 XD 02/06 22:27
8F:推 agong: RunOnce 02/08 20:03