將連接埠附加到網域名稱

將連接埠附加到網域名稱

我在家中運行一個小型(centOS 7)郵件伺服器,我想將連接埠附加到域名,而不是為伺服器 IP 的每個傳入連線開啟。目前,當我在 FirewallD 中開啟連接埠 25/993/587 時,它向所有人開放。所以當我將網域指向我的伺服器IP時,所有連接埠都會開放。我目前使用 mail.example.com,但我想實現的是:

smtp.mail.example.com -> 25
imaps.mail.example.com -> 993

.... 等等。我不知道這是否或如何可能,而且我知道這對於我的郵件伺服器的功能來說不是必需的,但從理智的角度來看,它很有趣,並且當您將網站寄存和郵件託管結合在同一台伺服器上時,對於其他情況可能很有用伺服器,因為郵件伺服器不需要連接埠 80/443,Web 伺服器不需要連接埠 25/993 等等。

我知道 SRV 記錄,但是當您使用相同的 IP 時,所有連接埠仍然保持開啟。

答案1

這是不可能的,接收連線的機器不知道*遠端機器為了到達它而解析到它的 IP 位址的主機名稱。

它適用於 HTTP/HTTPS,因為 HTTP 協定將主機名稱作為請求的一部分。 SMTP 或 IMAP 都不在請求中包含該資訊。

*唯一的例外是連接使用 TLS 並包含 SNI 標頭,該標頭將包含遠端電腦想要連接的主機名稱。所以有可能imaps

相關內容