2014-01-06 98 views
1

一個Git服務器,我有以下設置:運行使用ssh和NAT

  • 標準家庭寬帶連接
  • 使用動態DNS,myserver.example.com映射到我的家庭網絡
  • 我的家庭網絡防火牆轉發ssh來192.168.1.140的端口22,這樣我就可以ssh到我的家庭服務器
  • 家中的服務器上運行,其運行gitlab一個虛擬機,主機名爲阿什蘭和靜態IP 192.168.1.150

我想要做的就是從外部世界訪問我的gitlab虛擬機。我需要做什麼才能讓git相關的ssh流量轉發到我的虛擬機(192.168.1.150),但正常的ssh流量到達(192.168.1.140)。這可能嗎?

編輯:

我想要做的就是確保我的家庭網絡上的其他客戶以同樣的方式混帳交互。例如,我想使用stevejb-gitlab.example.com作爲我的git服務器,無論我是否在家庭網絡上。

回答

1

向前添加第二個端口。

例如,將端口22上的所有流量轉發到常規服務器,但將端口2222上的所有流量(或任何您選擇的)轉發給您的GitLab VM。然後確保包括2222端口使用Git的請求,你應該是好去:

git remote add home ssh://[email protected]:2222/project/repo.git 

順便說一句,你可能要更改兩個端口從22默認SSH端口離開這不增加大量安全性,但以我的經驗,它對我的​​服務器上的強力密碼攻擊有明顯的影響。

+0

謝謝克里斯。我會嘗試一下。並感謝您對改變港口的建議。我一直有這樣做的意思。謝謝! – stevejb

+0

@stevejb,我剛剛注意到我的命令是錯誤的。它是'git remote add ...',而不是'git add remote ...'。我已經相應地更新了我的答案。 – Chris