前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Windows系统服务器开启端口转发功能

Windows系统服务器开启端口转发功能

原创
作者头像
用户9104802
修改2021-11-22 11:16:06
11.6K0
修改2021-11-22 11:16:06
举报
文章被收录于专栏:运维知识分享运维知识分享

前言

端口转发,这个功能在平时的开发中用到的还是比较多的,记录下 Windows 如何使用自带的软件实现端口转发。

命令介绍

Windows 从 Windows 2000 开始就提供了最基本的端口转发功能,是基于 Windows 的 IP Helper 服务的,不仅可以提供端口转发功能,还可以通过将 IPv4 和 IPv6 的不同地址的数据进行转发,但是只可以转发 TCP 协议,暂不支持 UDP 协议,使用 netsh interface portproxy 命令即可开启。

先看下命令帮助:

代码语言:javascript
复制
 PS C:\Windows\system32> netsh interface portproxy
 ​
 下列指令有效:
 ​
 此上下文中的命令:
 ?              - 显示命令列表。
 add            - 在一个表格中添加一个配置项。
 delete         - 从一个表格中删除一个配置项。
 dump           - 显示一个配置脚本。
 help           - 显示命令列表。
 reset          - 重置端口代理配置状态。
 set            - 设置配置信息。
 show           - 显示信息。

一个一个介绍,先说 show 命令:

show命令

show 命令可以查看已经存在的端口转发规则。用法如下:

代码语言:javascript
复制
 show all       - 显示所有端口代理参数。
 show v4tov4    - 显示 IPv4 代理连接到另一个 IPv4 端口的参数。
 show v4tov6    - 显示 IPv4 代理连接到 IPv6 的参数。
 show v6tov4    - 显示 IPv6 代理连接到 IPv4 的参数。
 show v6tov6    - 显示 IPv6 代理连接到另一个 IPv6 端口的参数。

例如我想查看所有的端口转发规则,则可以使用 netsh interface portproxy show all

代码语言:javascript
复制
 PS C:\Windows\system32> netsh interface portproxy show all
 ​
 侦听 ipv4:                 连接到 ipv4:
 ​
 地址            端口        地址            端口
 --------------- ----------  --------------- ----------
 127.0.0.1       3389        25.63.54.89     3389

help命令

这个就不说了,打印帮助信息...

add命令

add 命令可以增加一条端口转发规则,具体用法为:

代码语言:javascript
复制
 add v4tov4     - 添加通过 IPv4 的 IPv4 和代理连接到的侦听项目。
 add v4tov6     - 添加通过 IPv6 的 IPv4 和代理连接到的侦听项目。
 add v6tov4     - 添加通过 IPv4 的 IPv6 和代理连接到的侦听项目。
 add v6tov6     - 添加通过 IPv6 的 IPv6 和代理连接到的侦听项目。
 ​
 用法: add v4tov4 [listenport=]<integer>|<servicename>
             [connectaddress=]<IPv4 address>|<hostname>
             [[connectport=]<integer>|<servicename>]
             [[listenaddress=]<IPv4 address>|<hostname>]
             [[protocol=]tcp]
 ​
 参数:
 ​
         标记            值
         listenport      - IPv4 侦听端口。
         connectaddress  - IPv4 连接地址。
         connectport     - IPv4 连接端口。
         listenaddress   - IPv4 侦听地址。
         protocol        - 使用的协议。现在只支持 TCP。

例如我想将本地的 3389 端口转发到远程的 3389 端口上,可以使用以下命令实现:

代码语言:javascript
复制
 netsh interface portproxy add v4tov4 listenaddress=127.0.0.1 listenport=3389 connectaddress=25.63.54.89 connectport=3389

其中 v4tov4 的作用在于将 IPv4 地址的 3389 端口转发到 IPv4 地址的 3389端口上,listenaddress 指定本地监听的地址,listenport 指定本地监听的端口,connectaddress 指定要将数据转发到哪个地址去,也就是目的地址,connectport 指定要转发到的端口,也就是目的端口。

delete命令

delete 命令用来删除一条端口转发规则,删除时只需要指定端口转发的监听地址和端口即可,具体用法为:

代码语言:javascript
复制
 delete v4tov4  - 删除通过 IPv4 的 IPv4 和代理连接到的侦听项目。
 delete v4tov6  - 删除通过 IPv6 的 IPv4 和代理连接到的侦听项目。
 delete v6tov4  - 删除通过 IPv4 的 IPv6 和代理连接到的侦听项目。
 delete v6tov6  - 删除通过 IPv6 的 IPv6 和代理连接到的侦听项目。
 ​
 用法: delete v4tov4 [listenport=]<integer>|<servicename>
             [[listenaddress=]<IPv4 address>|<hostname>]
             [[protocol=]tcp]
 ​
 参数:
 ​
        标记             值
        listenport     - 要侦听的 IPv4 端口。
        listenport     - 要侦听的 IPv4 地址。
        protocol       - 要使用的协议。当前仅支持 TCP。

例如我想删除刚才添加的端口转发规则,先查看下目前存在的端口转发规则:

代码语言:javascript
复制
 PS C:\Windows\system32> netsh interface portproxy show all
 ​
 侦听 ipv4:                 连接到 ipv4:
 ​
 地址            端口        地址            端口
 --------------- ----------  --------------- ----------
 127.0.0.1       3389        25.63.54.89     3389

执行删除命令

代码语言:javascript
复制
PS C:\Windows\system32> netsh interface portproxy delete v4tov4 listenaddress=127.0.0.1 listenport=3389 

即可。

代码语言:javascript
复制
 PS C:\Windows\system32> netsh interface portproxy delete v4tov4 listenaddress=127.0.0.1 listenport=3389
 ​
 PS C:\Windows\system32> netsh interface portproxy show all
 ​
 侦听 ipv4:                 连接到 ipv4:
 ​
 地址            端口        地址            端口
 --------------- ----------  --------------- ----------
 ​

dump命令

dump 命令可以将已存在的端口转发规则进行输出,保存到一个文件中或者输出到控制台的标准输出中,方便发送给其他人或者进行备份,以备下次还原。

执行 netsh interface portproxy dump 将配置信息输出到控制台的标准输出,或者执行 netsh interface portproxy dump > 1.txt 命令将配置信息重定向到文件中。

代码语言:javascript
复制
PS D:\360download> netsh interface portproxy dump

#========================
# 端口代理配置
#========================
pushd interface portproxy

reset
add v4tov4 listenport=3389 connectaddress=25.63.54.89 connectport=3389


popd

# 端口代理配置结束

PS D:\360download> netsh interface portproxy dump >1.txt

set命令

set 命令可以修改现有的端口转发配置,也可以新加端口转发配置。

例如将刚才的远程地址和端口改为 123.124.125.126:3390,使用以下命令来修改。

代码语言:javascript
复制
PS C:\Windows\system32> netsh interface portproxy show all

侦听 ipv4:                 连接到 ipv4:

地址            端口        地址            端口
--------------- ----------  --------------- ----------
127.0.0.1       3389        25.63.54.89     3389

D:\360download>netsh interface portproxy set v4tov4 listenaddress=127.0.0.1 listenport=3389 connectaddress=123.124.125.126 connectport=3390


D:\360download>netsh interface portproxy show all

侦听 ipv4:                 连接到 ipv4:

地址            端口        地址            端口
--------------- ----------  --------------- ----------
127.0.0.1       3389        123.124.125.126 3390

本来以为可以将刚才 dump 命令导出的配置重新导入的,但是我没成功....可能人家就没设计这个功能吧, 有点尴尬的...如果有知道的小伙伴可以告诉我。

reset命令

reset 命令可以重置所有的端口转发规则,如果没有备份的小伙伴慎用。

代码语言:javascript
复制
D:\360download>netsh interface portproxy show all

侦听 ipv4:                 连接到 ipv4:

地址            端口        地址            端口
--------------- ----------  --------------- ----------
127.0.0.1       3389        123.124.125.126 3390


D:\360download>netsh interface portproxy reset


D:\360download>netsh interface portproxy show all


D:\360download>

注意事项

如果有添加了规则但是规则不生效的小伙伴,可以检查下 Windows 的 IP Helper 服务是否开启,因为端口转发功能是由这个服务支持的,一定要保证它是正常运行的才可以。还有,在监听本地地址上的端口时,最好先确定本地的端口没有被占用,防止端口冲突影响其他程序的正常运行。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 命令介绍
  • show命令
  • help命令
  • add命令
  • delete命令
  • dump命令
  • set命令
  • reset命令
  • 注意事项
相关产品与服务
文档服务
文档服务(Document Service,DS)是腾讯云数据万象提供云上文档处理服务,支持多种类型的文件生成图片或 html 格式的预览,可以解决文档内容的页面展示问题,满足 PC、App 等多端的文档在线浏览需求。同时,本产品还提供文本隐私筛查能力,可以有效识别文本中的身份证号、银行卡号、手机号等敏感数据,满足数据可用性和隐私保护的各种要求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档