前言

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

命令介绍

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

先看下命令帮助:

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

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

show命令

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

 show all       - 显示所有端口代理参数。show v4tov4    - 显示 IPv4 代理连接到另一个 IPv4 端口的参数。show v4tov6    - 显示 IPv4 代理连接到 IPv6 的参数。show v6tov4    - 显示 IPv6 代理连接到 IPv4 的参数。show v6tov6    - 显示 IPv6 代理连接到另一个 IPv6 端口的参数。

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

 PS C:Windowssystem32> netsh interface portproxy show all​侦听 ipv4:                 连接到 ipv4:​地址            端口        地址            端口--------------- ----------  --------------- ----------127.0.0.1       3389        25.63.54.89     3389

help命令

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

add命令

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

 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 端口上,可以使用以下命令实现:

 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 命令用来删除一条端口转发规则,删除时只需要指定端口转发的监听地址和端口即可,具体用法为:

 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。

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

 PS C:Windowssystem32> netsh interface portproxy show all​侦听 ipv4:                 连接到 ipv4:​地址            端口        地址            端口--------------- ----------  --------------- ----------127.0.0.1       3389        25.63.54.89     3389

执行删除命令 PS C:Windowssystem32> netsh interface portproxy delete v4tov4 listenaddress=127.0.0.1 listenport=3389 即可。

 PS C:Windowssystem32> netsh interface portproxy delete v4tov4 listenaddress=127.0.0.1 listenport=3389​PS C:Windowssystem32> netsh interface portproxy show all​侦听 ipv4:                 连接到 ipv4:​地址            端口        地址            端口--------------- ----------  --------------- ----------​

dump命令

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

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

PS D:360download> netsh interface portproxy dump#========================
# 端口代理配置
#========================
pushd interface portproxyreset
add v4tov4 listenport=3389 connectaddress=25.63.54.89 connectport=3389popd# 端口代理配置结束PS D:360download> netsh interface portproxy dump >1.txt

set命令

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

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

PS C:Windowssystem32> netsh interface portproxy show all侦听 ipv4:                 连接到 ipv4:地址            端口        地址            端口
--------------- ----------  --------------- ----------
127.0.0.1       3389        25.63.54.89     3389D:360download>netsh interface portproxy set v4tov4 listenaddress=127.0.0.1 listenport=3389 connectaddress=123.124.125.126 connectport=3390D:360download>netsh interface portproxy show all侦听 ipv4:                 连接到 ipv4:地址            端口        地址            端口
--------------- ----------  --------------- ----------
127.0.0.1       3389        123.124.125.126 3390

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

reset命令

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

D:360download>netsh interface portproxy show all侦听 ipv4:                 连接到 ipv4:地址            端口        地址            端口
--------------- ----------  --------------- ----------
127.0.0.1       3389        123.124.125.126 3390D:360download>netsh interface portproxy resetD:360download>netsh interface portproxy show allD:360download>

注意事项

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

总结

以上就是端口转发功能的使用教程,在平时的开发中临时需要和虚拟机通信或者其他场景中还是比较常用的,虽然只支持 TCP 协议,不过 UDP 在平时使用的并不多,TCP 也足够了,所以还是可以满足日常开发需求的。

参考链接:

https://docs.microsoft.com/en-us/windows-server/networking/technologies/netsh/netsh-interface-portproxy

tcp连接 本地端口_Windows开启端口转发功能相关推荐

  1. 苹果电脑macbook/mac_os开启路由转发功能

    mac OS开启路由转发功能 主要是我有时候需要用mac进行ps4直播转发,需要mac开启路由功能 环境:MAC OS 10.11 机器:macbook pro 配置方法 基本步骤跟linux类似,不 ...

  2. VOS中开启媒体转发功能后,计算几种常用编码所需占用的带宽量

    VOS中开启媒体转发功能后,计算几种常用编码所需占用的带宽量 计算方法如下: 带宽 = 包长度 × 每秒包数 = 包长度 × (1 / 打包周期) =(Ethernet 头 + IP 头 + UDP ...

  3. Linux开启路由转发功能(透明代理环境搭建)

    环境: 客户端:         地址 -- 192.168.1.230          网关 -- 192.168.1.56 代理服务器: eth0 -- 192.168.1.56         ...

  4. Linux开启路由转发功能

    标记一下,今天想让一台Red Hat Enterprise Linux 7开通iptables的nat转发功能,找了半天. A服务器:192.168.30.20/24 B服务器:192.168.30. ...

  5. windows mysql端口_windows开启3306端口访问mysql

    开启 MySQL 的远程登陆帐号有两大步: 1.确定服务器上的防火墙没有阻止 3306 端口. MySQL 默认的端口是 3306 ,需要确定防火墙没有阻止 3306 端口,否则远程是无法通过 330 ...

  6. 使用ACE_SOCK_SEQPACK_Association获取socket连接的本地及远程IP端口信息

    int connect(const std::string& ip, int port) {     ACE_INET_Addr portAddr(port, ip.c_str());     ...

  7. 端口详解 | 开启端口 | 关闭端口

    在网络技术中,端口(Port)大致有两种意思: 一是物理意义上的端口,比如,ADSL Modem.集线器.交换机.路由器用于连接其他网络设备的接口,如RJ-45端口.SC端口等等. 二是逻辑意义上的端 ...

  8. Linux系统端口映射(路由转发)

    2019独角兽企业重金招聘Python工程师标准>>> Linux系统端口映射(路由转发),首先应该做的是/etc/sysctl.conf配置文件的 net.ipv4.ip_forw ...

  9. linux网络编程-----TCP连接及相关问题

    c/s模型在建立连接时的流程如下 //服务器端 int sockfd = socket(AF_INET, SOCK_STREAM, 0);struct sockaddr_in servaddr; bz ...

最新文章

  1. 完美数据迁移-MongoDB Stream的应用
  2. spark从入门到精通spark内存管理详解- 堆内堆外内存管理
  3. 三、HDFS中的Java和Python API接口连接
  4. 机器学习 处理不平衡数据_在机器学习中处理不平衡数据
  5. 晶科电力打造山东省最大物流港分布式光伏项目
  6. 简单实用的分页存储过程,支持多字段排序
  7. 少儿编程100讲轻松学python(六)-pycharm怎么汉化?
  8. 图像风格迁移cvpr2020_CVPR 2020 | 浙大李俊成:用无监督强化学习方法来获得迁移能力...
  9. ubuntu搭建php开发环境记录
  10. arrays合并两个数组_每天一道力扣题: 88. 合并两个有序数组
  11. try except python_Python的“异常”处理——try语句
  12. 移动端ajax分页,移动端分页加载 - 花乐天的个人空间 - OSCHINA - 中文开源技术交流社区...
  13. Orcad CIS本地库添加器件
  14. 经纬度度分秒转换小数.sql[原创]
  15. 基于Unity构建机器人的数字孪生平台系列2—四旋翼无人机三维模型
  16. QQ小程序激励广告接入与使用
  17. 路由器NAT 类型检测实现
  18. Netty源码解析(八)之Recycler
  19. H5表单validity各个属性对应
  20. 【工作感悟】老程序员总结的四条工作经验教训

热门文章

  1. android系统自带的Service原理与使用
  2. WinPhone 开发(1)-----在 XAML 页面之间浏览和数据的传递、保留以及恢复
  3. java查询数据库以后的对齐问题
  4. 中国九章量子计算机诞生!比最快的超算快一百万亿倍
  5. 英特尔更新人工智能产品线,新品性能达到竞品6倍
  6. 为什么有那么多的水,源源不断从山上流下来,到底是从哪里来的?
  7. 清华计算机知识工程怎么样,张民(muslv)清华大学计算机系知识工程组 硕士清华大学.ppt...
  8. js如何写html中的内容,javascript怎样获取某个标签的内容?
  9. 010_静态资源的配置和常用请求配置
  10. 065_html视频