作者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/cn.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