Powershell windows 端口转发

126 天前
 kinboy

Winsows + WSL2 的环境经常有端口转发的需求,Windows 上没有找到很好用的端口转发工具,就用 Powershell 写了一个脚本,代码很简单,还挺好用,配上了通知,目前只支持 IPv4 Tcp 端口转发

Project: https://github.com/kinboyw/windows-port-forwarder

launch

notification

2216 次点击
所在节点    程序员
21 条回复
rayae
126 天前
wsl2 自带的`localhostForwarding`和`networkingMode=mirrored`不香吗
rayae
126 天前
idealhs
126 天前
加油,再写个反向代理👍
kinboy
126 天前
@rayae #1 我去看看,不过这个脚本可以转发到任意地址,只是最开始是方便转发到 WSL ,所以 target IP 默认设置了 WSL 的 IP
wulays
126 天前
kinboy
126 天前
@wulays #5 这个不错
lneoi
126 天前
系统有自带的 Netsh interface portproxy 命令
netsh interface portproxy add v4tov4 listenport= {Integer | ServiceName} [[connectaddress=] {IPv4Address | HostName}] [[connectport=] {Integer | ServiceName}] [[listenaddress=] {IPv4Address | HostName}] [[protocol=]tcp]
kinboy
126 天前
@lneoi #7 脚本就是调的 Netsh 命令,只是觉得这个命令每次用起来输入太麻烦
Davic1
126 天前
Windows 上没有找到很好用的端口转发工具,就用 Powershell 写了一个脚本

这就话本身就是矛盾的...

7# 说的 netsh 就是 windows 上的端口转发工具。
liuliancao
126 天前
挺好的 我们服务器上也在用 netsh 缺点是没法记录老的 只能 netstat -ano|findstr 找下
stew5566
126 天前

有用过 vscode 的连接远程,不知道这个能不能给你用上
Belmode
126 天前
@Davic1 #9

"Windows 上没有找到很好用的端口转发工具,就用 Powershell 写了一个脚本" ❌

"我开发了一个很好用的脚本工具,要跟大家炫耀一下" ✔️
nfksuk
126 天前
想找一个 gose 的加密转发工具 windows 的
han3sui
126 天前
kinboy
126 天前
@Davic1 #9 嗯,脚本只是把 netsh 一些常用的基础功能封装了一下,降低使用难度
kinboy
126 天前
@Belmode #12 哈哈应该说想要分享一下,这个东西实在太简单没啥好炫耀的,自己感觉还挺好用,就拿出来,没准有人需要
kinboy
126 天前
@liuliancao #10 netsh 的命令实在难敲
kinboy
126 天前
@han3sui #14 star 一个
vvhy
126 天前
经常用端口转发+hosts 把一些本地的服务面板之类的映射到域名,哈哈
xy2401
125 天前
我上周也想要一个这个工具。笔记本本地示范项目默认配置连 localhost 的数据库之类服务 不想修改配置文件 , 但是想连着台式机服务。
也考虑 netsh 或者 ssh 的端口转发但是太复杂了。
后面 vscode 远程调试发现自带端口转发,也可以配置在 .vscode/settings.json 里面 并且可以有注释。
缺点就是 要 vscode 打开远程项目(目标主机的)。
start 了项目希望也可以读取配置文件之类更友好的使用


{
"remote.SSH.defaultForwardedPorts": [
{
"localPort": 8080,
"remotePort": 8080,
"name": "Web 服务器",
"description": "将远程 8080 端口映射到本地 8080 端口,可用于访问部署在远程服务器上的 Java Web 应用。"
},
{
"localPort": 5432,
"remotePort": 5432,
"name": "PostgreSQL 数据库",
"description": "将远程 5432 端口映射到本地 5432 端口,可用于连接到远程服务器上的 PostgreSQL 数据库。"
},
{
"localPort": 3306,
"remotePort": 3306,
"name": "MySQL 数据库",
"description": "将远程 3306 端口映射到本地 3306 端口,可用于连接到远程服务器上的 MySQL 数据库。"
},
{
"localPort": 9092,
"remotePort": 9092,
"name": "ActiveMQ",
"description": "将远程 9092 端口映射到本地 9092 端口,可用于连接到 ActiveMQ 消息队列。"
},
{
"localPort": 61616,
"remotePort": 61616,
"name": "Kafka",
"description": "将远程 61616 端口映射到本地 61616 端口,可用于连接到 Kafka 消息队列。"
},
{
"localPort": 5672, // RabbitMQ AMQP 协议端口
"remotePort": 5672,
"name": "RabbitMQ AMQP",
"description": "将远程 5672 端口映射到本地 5672 端口,用于 RabbitMQ 的 AMQP 协议通信。"
},
{
"localPort": 15672, // RabbitMQ 管理界面端口
"remotePort": 15672,
"name": "RabbitMQ 管理界面",
"description": "将远程 15672 端口映射到本地 15672 端口,可用于访问 RabbitMQ 的 Web 管理界面。"
}
]
}

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1059315

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX