建立端口转发

在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=227777:表示将流量转发到远程设备的对应端口。

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防火墙设置

  1. 打开“控制面板” > “系统和安全” > “Windows Defender 防火墙”。
  2. 点击“高级设置”。

2.2 添加入站规则

  1. 在左侧菜单中选择“入站规则”。
  2. 点击右侧的“新建规则”。
  3. 选择“端口”,点击“下一步”。
  4. 选择“TCP”,并在“特定本地端口”中输入2222,点击“下一步”。
  5. 选择“允许连接”,点击“下一步”。
  6. 根据需要选择适用的网络类型(域、专用、公用),点击“下一步”。
  7. 为规则命名(例如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上配置多个端口转发规则,实现通过单个本地端口访问多个远程服务。如果您需要进一步的帮助或优化建议,请随时告诉我!

posted @   苏念雨  阅读(45)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示