Powershell windows 端口转发 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
kinboy
V2EX    程序员

Powershell windows 端口转发

  •  1
     
  •   kinboy 2024-07-23 09:31:51 +08:00 3127 次点击
    这是一个创建于 519 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    launch

    notification

    21 条回复    2024-07-24 12:38:54 +08:00
    rayae
        1
    rayae  
       2024-07-23 09:34:36 +08:00
    wsl2 自带的`localhostForwarding`和`networkingMode=mirrored`不香吗
    rayae
        2
    rayae  
       2024-07-23 09:34:45 +08:00
    idealhs
        3
    idealhs  
       2024-07-23 09:35:59 +08:00
    加油,再写个反向代理
    kinboy
        4
    kinboy  
    OP
       2024-07-23 09:36:52 +08:00
    @rayae #1 我去看看,不过这个脚本可以转发到任意地址,只是最开始是方便转发到 WSL ,所以 target IP 默认设置了 WSL 的 IP
    wulays
        5
    wulays  
       2024-07-23 09:48:43 +08:00   1
    kinboy
        6
    kinboy  
    OP
       2024-07-23 10:01:15 +08:00
    @wulays #5 这个不错
    lneoi
        7
    lneoi  
       2024-07-23 10:05:24 +08:00
    系统有自带的 Netsh interface portproxy 命令
    netsh interface portproxy add v4tov4 listenport= {Integer | ServiceName} [[cOnnectaddress=] {IPv4Address | HostName}] [[cOnnectport=] {Integer | ServiceName}] [[listenaddress=] {IPv4Address | HostName}] [[protocol=]tcp]
    kinboy
        8
    kinboy  
    OP
       2024-07-23 10:18:04 +08:00
    @lneoi #7 脚本就是调的 Netsh 命令,只是觉得这个命令每次用起来输入太麻烦
    Davic1
        9
    Davic1  
       2024-07-23 10:27:21 +08:00
    Windows 上没有找到很好用的端口转发工具,就用 Powershell 写了一个脚本

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

    7# 说的 netsh 就是 windows 上的端口转发工具。
    liuliancao
        10
    liuliancao  
       2024-07-23 14:53:14 +08:00
    挺好的 我们服务器上也在用 netsh 缺点是没法记录老的 只能 netstat -ano|findstr 找下
    stew5566
        11
    stew5566  
       2024-07-23 15:32:02 +08:00

    有用过 vscode 的连接远程,不知道这个能不能给你用上
    Belmode
        12
    Belmode  
       2024-07-23 15:58:49 +08:00   1
    @Davic1 #9

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

    "我开发了一个很好用的脚本工具,要跟大家炫耀一下"
    nfksuk
        13
    nfksuk  
       2024-07-23 16:02:42 +08:00
    想找一个 gose 的加密转发工具 windws 的
    han3sui
        14
    han3sui  
       2024-07-23 16:12:38 +08:00
    kinboy
        15
    kinboy  
    OP
       2024-07-23 16:28:42 +08:00
    @Davic1 #9 嗯,脚本只是把 netsh 一些常用的基础功能封装了一下,降低使用难度
    kinboy
        16
    kinboy  
    OP
       2024-07-23 16:30:09 +08:00
    @Belmode #12 哈哈应该说想要分享一下,这个东西实在太简单没啥好炫耀的,自己感觉还挺好用,就拿出来,没准有人需要
    kinboy
        17
    kinboy  
    OP
       2024-07-23 16:30:54 +08:00
    @liuliancao #10 netsh 的命令实在难敲
    kinboy
        18
    kinboy  
    OP
       2024-07-23 16:33:47 +08:00
    @han3sui #14 star 一个
    vvhy
        19
    vvhy  
       2024-07-23 22:43:26 +08:00 via Android
    经常用端口转发+hosts 把一些本地的服务面板之类的映射到域名,哈哈
    xy2401
        20
    xy2401  
       2024-07-24 08:54:54 +08:00
    我上周也想要一个这个工具。笔记本本地示范项目默认配置连 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 管理界面。"
    }
    ]
    }
    artiga033
        21
    artiga033  
       2024-07-24 12:38:54 +08:00 via Android
    原来是封装 netsh 啊,我还以为是用 Powershell 调.NET BCL 实现的 l4 转发呢

    netsh 我经常加了之后忘了删,然后下次干别的事时候又忘了这回事,还以为遇到什么玄学 bug 了。

    反正本地调试的场景也不关心它是 l3 还是 l4 那点性能差别,我一般还是选择 l4 转发。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     944 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 20:54 PVG 04:54 LAX 12:54 JFK 15:54
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86