Ssh
使用 FreeBSD/pf 根據主機名路由 ssh 流量?
我有一台執行 FreeBSD 9 的代理/防火牆機器,使用 PF 根據需要路由和過濾流量。
現在我正在設置一個 git 伺服器,它通過 ssh 執行,但我已經將埠 22 用於 ssh。如果他們用來訪問伺服器的主機名是子域(git.mydomain.com),我想將流量從任何 IP 路由到埠 22 到另一台機器。一種虛擬主機,但對於 ssh ……
這可能與 pf 嗎?有什麼建議麼?
抱歉,您要求的是不可能的——IP 流量(和 IP 防火牆)只知道 IP 地址——它對主機名一無所知。
您只能讓一個程序監聽特定 IP 地址上的特定埠。網站的虛擬主機可以工作,因為 Web 伺服器在 HTTP 標頭中接收主機名(請參閱http://en.wikipedia.org/wiki/Virtual_hosting),而 SSH 中沒有類似的機制。
您的選擇非常有限:
- 配置您的正常 SSH 伺服器以處理 git 流量(可能是最佳選擇)。
- 獲取另一個 IP 地址。
- 在備用埠上為 git 執行 SSH 伺服器。
在備用埠上擁有 git 的 SSH 伺服器後,您可以通過將以下內容添加到您的 git 來自動使用它
~/.ssh/config
:Host git.mydomain.com HostName router.mydomain.com Port 2222