基於 DNS 名稱的 NAT 路由(反向 TCP 代理程式?)

基於 DNS 名稱的 NAT 路由(反向 TCP 代理程式?)

介紹

我有一台運行pfSense 的路由器(可以是任何東西,因為它是VMware 上的虛擬機,所以如果解決方案需要其他任何東西,對我來說沒問題),在它後面我有多個虛擬機(NAT )。

我想完成什麼

我想使用某種代理來使用具有 1 個 IP 的多個服務,最好是基於 DNS。例如;在 mail.domain.com 上執行郵件伺服器(以及用於 Web 存取的網站),在 www.domain.com 上運行網站,在 ftp.domain.com 上執行 FTP 伺服器,但都是不同的虛擬機器。

所以基本上:

Hostname          Internal NAT IP     Port

www.domain.com    192.168.1.10        80
mail.domain.com   192.168.1.11        25
mail.domain.com   192.168.1.11        80
mail.domain.com   192.168.1.11        443
ftp.domain.com    192.168.1.12        21

所以我想到使用 HAProxy,但 HAProxy 只允許對 HTTP 流量使用此方法,而不允許對「常規」TCP 流量(基於 DNS 名稱)使用。我想要全部連接埠(TCP 和 UDP,但如果只能使用 TCP,那麼也可以)重新導向到對應的虛擬機器。

答案1

基於所使用的 DNS 主機名稱進行任何類型的代理程式也要求應用程式協定以某種方式攜帶主機標頭。

據我所知,FTP 中不涉及此類標頭,因此我不知道這是如何實現的。也許使用自訂 FTP 代理,可以根據使用者名稱或類似內容將您傳送到不同的伺服器。

TLDR:我認為你的最終目標是不可能的。您需要多個外部 IP 位址。

相關內容