建立端口轉發
在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 -> 223333 -> 7777
然后分別使用不同的本地端口訪問服務。
2.性能影響:
- 如果同時有大量流量通過設備C的端口轉發,可能會對設備C的性能產生影響。建議根據實際需求合理配置。
3.其他:
- 暫時就遇到這兩個需要,后續補充內網穿透。
總結
通過上述步驟,您可以在設備C上配置多個端口轉發規則,實現通過單個本地端口訪問多個遠程服務。如果您需要進一步的幫助或優化建議,請隨時告訴我!
浙公網安備 33010602011771號