Ssh

使用 FreeBSD/pf 根據主機名路由 ssh 流量?

  • July 27, 2012

我有一台執行 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 中沒有類似的機制。

您的選擇非常有限:

  1. 配置您的正常 SSH 伺服器以處理 git 流量(可能是最佳選擇)。
  2. 獲取另一個 IP 地址。
  3. 在備用埠上為 git 執行 SSH 伺服器。

在備用埠上擁有 git 的 SSH 伺服器後,您可以通過將以下內容添加到您的 git 來自動使用它~/.ssh/config

Host git.mydomain.com
   HostName router.mydomain.com
   Port 2222

引用自:https://serverfault.com/questions/411697