一、简介
官方文档:
netsh interface portproxy 命令作为 IPv4 和 IPv6 网络与应用程序之间的代理 。 可以通过以下方式使用这些命令建立代理服务:
- 发送到 IPv4 配置的其他计算机和应用程序的 IPv4 配置的计算机和应用程序消息。
- 发送到 IPv6 配置的计算机和应用程序的 IPv4 配置的计算机和应用程序消息。
- 发送到 IPv4 配置的计算机和应用程序的 IPv6 配置的计算机和应用程序消息。
- 发送到 IPv6 配置的其他计算机和应用程序的 IPv6 配置的计算机和应用程序消息。
使用场景:
- 让同事访问你物理机上WSL中的服务,比如Mysql,Redis,MongoDB等数据库服务,也包括Apache Atlas或者自己启动的任意类型的Web服务等。(前提条件:同事和自己的本机在同一局域网内)
- 让同事访问你物理机上Docker中的服务,比如Mysql,Redis,MongoDB等数据库服务,也包括Apache Atlas或者自己启动的任意类型的Web服务等。(前提条件:同事和自己的本机在同一局域网内)
二、基本操作
1 创建映射
物理机的ip=192.168.50.88
物理机的port=3306
WSL的ip=192.168.50.16
WSL的port=3306
Mysql 装在WSL上,想让同事访问我的WSL中的服务,可以运行如下命令
netsh interface portproxy add v4tov4 listenaddress=192.168.50.88 listenport=3306 connectaddress=192.168.50.16 connectport=3306
关键词解释:
- v4tov4
Portproxy服务器侦听发送到特定端口和 IPv4 地址的消息,并映射端口和 IPv4 地址以发送在建立单独的 TCP 连接后收到的消息。 - listenaddress
指定要侦听的 IPv4 地址。 可接受的值为 IP 地址、计算机 NetBIOS 名称或计算机 DNS 名称。 如果未指定地址,则默认值为本地计算机。 - listenport
按端口号或服务名称指定要对其进行侦听的 IPv4 端口。 - connectaddress
指定要连接的 IPv4 地址。 可接受的值为 IP 地址、计算机 NetBIOS 名称或计算机 DNS 名称。 如果未指定地址,则默认值为本地计算机。 - connectport
按端口号或服务名称指定要连接的 IPv4 端口。 如果未指定 connectport,则默认值为本地计算机上 listenport 的值 。
创建映射没有返回值
注意:防火墙必须开放对应的端口
2 查看所有映射
netsh interface portproxy show all
3 删除映射
netsh interface portproxy delete v4tov4 listenaddress=192.168.50.88 listenport=3306
删除映射没有返回值