Windows 端口重映射

核心就是通过命令 netsh 实现端口重映射
注意netsh需要administrator权限运行

netsh interface portproxy add v4tov4 listenport=12345 listenaddress=0.0.0.0 connectport=3388 connectaddress=127.0.0.1

且要求随系统重启时自动运行

  1. 下载 nssm, 它可以把命令行包装为一个Service
  2. copy nssm to c:\
  3. enter nssm bin path
  4. input:
    nssm install PortRedirectService
    然后在弹出的对话框中做如下操作:

在“Path”中选择 netsh.exe。
在“Arguments”中输入你的 netsh 命令

具体的参数例如:

interface portproxy add v4tov4 listenport=12345 listenaddress=0.0.0.0 connectport=3388 connectaddress=127.0.0.1

这个命令就是让12345转向到3388

点击“Install service”完成安装。

接着可以运行服务

net start PortRedirectService

服务会在每次系统启动时自动运行。

但是要注意Windows防火墙会ban掉外部连接,
但是我不希望把nssm这个app设为except
相反我把端口12345设为except

具体操作如下:

进入 Windows 防火墙设置: 在控制面板中,选择 系统和安全,然后选择 Windows Defender 防火墙。

创建入站规则: 在左侧导航栏中,点击 高级设置。

创建新的入站规则: 在右侧窗口中,点击 入站规则,然后在右侧面板点击 新建规则。

配置规则属性: 在向导中选择 端口 选项,然后点击 下一步。

选择端口类型: 选择 特定本地端口,然后输入要打开的端口号(例如,12345)。

选择允许连接: 选择 允许连接,然后点击 下一步。

选择连接的配置: 可以选择 公共、专用 或 域,具体根据你的网络设置选择。

命名规则: 给规则起一个名称和可选的描述,然后点击 下一步。

完成向导: 检查配置,然后点击 完成。

此时外部就可以访问12345了

P.S 如何通过 netsh 枚举所有映射,以及删除映射
1.枚举映射

netsh interface portproxy show all

2.删除映射
举例:

netsh interface portproxy delete v4tov4 listenaddress=0.0.0.0 listenport=8080
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值