我在家里运行一个小型 (centOS 7) 邮件服务器,我想将端口附加到域名,而不是为服务器 IP 的每个传入连接打开端口。目前,当我在 FirewallD 中打开端口 25/993/587 时,它会向所有人开放。因此,当我将域名指向我的服务器 IP 时,所有端口都将打开。我目前使用 mail.example.com,但我想实现的是:
smtp.mail.example.com -> 25
imaps.mail.example.com -> 993
... 等等。我不知道这是否可能或如何可能,我知道这对于我的邮件服务器的运行来说不是必需的,但从理智的角度来看这很有趣,并且当您在同一台服务器上结合网络托管和邮件托管时,这对其他情况很有用,因为邮件服务器不需要端口 80/443,而网络服务器不需要 25/993 等等。
我知道 SRV 记录,但是当您使用相同的 IP 时,所有端口仍保持打开状态。
答案1
这是不可能的,接收连接的机器不知道*远程机器将哪个主机名解析为其 IP 地址以便访问它。
它适用于 HTTP/HTTPS,因为 HTTP 协议将主机名作为请求的一部分。SMTP 或 IMAP 均不会在请求中包含该信息。
*唯一的例外是,如果连接使用 TLS 并包含 SNI 标头,该标头将包含远程计算机要连接的主机名。因此,imaps