建立端口转发
在Win设备上配置端口转发以访问远程设备的SSH和Git仓库服务?
前言
在本文中,我们将介绍如何在Windows设备上配置端口转发以访问远程设备的SSH和Git仓库服务。一次典型的场景是,我希望通过一台中间设备(例如笔记本电脑或台式机)访问远程设备的SSH和Git仓库服务。这在家庭网络、办公室或其他需要通过网络间接连接的设备时非常有用。
端口转发: 本质是将一个网络端口映射到另一个网络端口,使得在一个网络上可以访问另一个网络的资源。端口转发在日常生活中非常常见,例如,当你需要通过手机热点访问电脑时,就需要通过端口转发将手机的热点端口映射到电脑的LAN端口。端口转发在网络中非常常见,例如,当你需要通过防火墙访问内网资源时,就需要通过端口转发将防火墙的端口映射到内网的端口。 A设备->C设备开放端口2222 -> B设备:22
本文将介绍如何在Windows设备上配置端口转发以访问远程设备的SSH和Git仓库服务。
步骤1:配置端口转发规则
*** 下面是设置了两个端口,设置一个少输入一条命令就行了。
1. 在设备C上配置端口转发
使用netsh interface portproxy
命令分别将设备C的2222
端口转发到远程设备的22
端口和7777
端口。
1.1 打开命令提示符(CMD)或PowerShell
以管理员身份运行命令提示符或PowerShell。
1.2 添加端口转发规则
运行以下命令分别添加两条规则:
规则1:将2222
端口转发到远程设备的22
端口(SSH)
netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=2222 connectaddress=192.168.3.119 connectport=22
规则2:将3333
端口转发到远程设备的7777
端口(Git仓库)
netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=3333 connectaddress=192.168.3.119 connectport=7777
listenaddress=0.0.0.0
:表示监听所有接口(允许外部设备访问)。listenport=2222
:表示在设备C上监听2222
端口。connectaddress=192.168.3.119
:表示将流量转发到远程设备的IP地址。connectport=22
或7777
:表示将流量转发到远程设备的对应端口。
1.3 验证端口转发规则
运行以下命令查看已配置的端口转发规则:
netsh interface portproxy show all
您应该看到类似以下输出:
Listen on ipv4: Connect to ipv4:
Address Port Address Port
--------------- ---------- --------------- ----------
0.0.0.0 3333 192.168.3.119 22
0.0.0.0 2222 192.168.3.119 7777
2.检查Windows防火墙规则
确保Windows防火墙允许对2222
端口的访问。
必要步骤
2.1 打开Windows防火墙设置
- 打开“控制面板” > “系统和安全” > “Windows Defender 防火墙”。
- 点击“高级设置”。
2.2 添加入站规则
- 在左侧菜单中选择“入站规则”。
- 点击右侧的“新建规则”。
- 选择“端口”,点击“下一步”。
- 选择“TCP”,并在“特定本地端口”中输入
2222
,点击“下一步”。 - 选择“允许连接”,点击“下一步”。
- 根据需要选择适用的网络类型(域、专用、公用),点击“下一步”。
- 为规则命名(例如
Port Forwarding for SSH and Git
),点击“完成”。
3.在设备B上通过设备C访问服务
现在,您可以在设备B上通过设备C的端口转发访问远程设备的SSH服务和Git仓库。
3.1 访问SSH服务(22端口)
在设备B上运行以下命令通过SSH连接到远程设备:
ssh -p 2222 root@192.168.199.120
-p 2222
:表示连接到设备C的2222
端口。root@192.168.199.120
:表示使用root
用户登录到设备C。
3.2 访问Git仓库(7777端口)
在设备B上运行以下命令克隆远程Git仓库:
git clone http://192.168.199.120:2222/ldb/FH-GX2_ARM.git
192.168.199.120:2222
:表示通过设备C的2222
端口访问Git仓库。
3.3 访问Git仓库(7777端口)
在设备B上运行以下命令修改远程仓库地址:
git remote set-url origin http://192.168.199.120:2222/xxx/xxxx.git
# 3.2 拉取代码
运行以下命令从远程仓库拉取代码:
git pull origin master
# 如果您的默认分支是main,请使用以下命令:
git pull origin main
192.168.199.120:2222
:表示通过设备C的2222
端口访问Git仓库。
注意事项
1.端口冲突:
netsh interface portproxy
不支持将同一个本地端口(如2222
)同时转发到多个目标端口。如果您尝试这样做,后添加的规则会覆盖之前的规则。- 如果需要同时转发多个目标端口,必须为每个目标端口分配不同的本地端口。例如:
2222 -> 22
3333 -> 7777
然后分别使用不同的本地端口访问服务。
2.性能影响:
- 如果同时有大量流量通过设备C的端口转发,可能会对设备C的性能产生影响。建议根据实际需求合理配置。
3.其他:
- 暂时就遇到这两个需要,后续补充内网穿透。
总结
通过上述步骤,您可以在设备C上配置多个端口转发规则,实现通过单个本地端口访问多个远程服务。如果您需要进一步的帮助或优化建议,请随时告诉我!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具