我有一台运行 CentOS 的机器。我无法从那台机器远程登录到邮件服务器。
我可以从本地机器执行以下命令:
telnet mailserver.com 25
我无法从那里发送电子邮件就像在本教程中一样。
但从运行 CentOS 的特定机器上我只看到:
trying xxx.xxx.xxx.xxx
直到我得到暂停。
可能发生了什么?可能是防火墙阻止了连接?
答案1
可能是目标邮件服务器阻止了与端口的连接,或者邮件服务器上的端口本身未打开。
首先,可以尝试 ping 邮件服务器以确保它正在解析。
ping mailserver.tld
如果主机名解析,那么您可以尝试使用 nmap 扫描端口(应该在您的 CentOS 安装上可用)
nmap -p port_number mailserver.tld
如果端口未打开,则可能是他们正在使用另一个端口来发送邮件。您可以尝试扫描服务器上的所有端口
nmap -sT remote_host
但请小心,因为某些服务器可能不接受这种扫描并因此阻止您的 IP 地址。
答案2
如果你能从某些系统(但不是 CentOS 系统)建立到端口 25 的连接,我会假设邮件服务器没有阻止到端口 25 的传入连接。对于邮件服务器,该端口通常向全世界开放,因为 TCP 端口 25 是默认端口简单邮件传输协议 (SMTP)邮件服务器使用该端口向其他邮件服务器发送电子邮件,如果您希望世界上任何人都能向您的用户发送电子邮件,则通常不会对该端口的传入连接施加任何 IP 地址限制,因为您不知道世界上每个其他邮件服务器的 IP 地址。
另一方面,互联网服务提供商通常会阻止到该端口的传出连接,因为他们不希望家庭用户运行自己的邮件服务器,并且希望阻止受感染的用户系统分发垃圾邮件或恶意软件 -“骚扰者”经常将他们控制的系统作为垃圾邮件分发点出售他们可能希望家庭用户通过 ISP 的邮件服务器发送邮件,因为 ISP 的邮件服务器会采用反垃圾邮件措施。
不过,ISP 可能会允许通过端口 587 发送电子邮件,因为当电子邮件客户端发送电子邮件到电子邮件服务器,则使用身份验证。即,用户提供凭证来验证自己的身份,这大大降低了电子邮件来自被恶意软件感染的系统的可能性,该恶意软件被用作垃圾邮件分发代理或通过电子邮件进一步分发恶意软件。
您会发现,出于同样的原因,许多企业的网络支持人员部署了类似的拦截。如果他们只允许向企业自己的电子邮件服务器发送连接,那么他们就可以确保企业内部的某些受感染系统局域网不会向世界散播垃圾邮件,这可能会导致企业的 IP 地址被添加到基于 DNS 的黑洞列表由反垃圾邮件组织维护,例如索尔布斯,垃圾邮件屋, ETC。
您可以使用 Microsoft 提供的可公开访问的 SMTP 服务器查看是否遇到同样的问题。如果没有传出阻止,则可能是 CentOS 系统本身的问题(如果您自行配置并控制系统,则不太可能出现这种情况,但可能是其他人设置了它并使用系统上的基于主机的防火墙软件阻止了到端口 25 的传出连接),或者是网络提供商尝试阻止了到端口 25 的传出连接telnet mx1.hotmail.com 25
。您应该看到以下内容:
$ telnet mx1.hotmail.com 25
Trying 207.46.8.167...
Connected to mx1.hotmail.com.
Escape character is '^]'.
220 BAY004-MC5F22.hotmail.com Sending unsolicited commercial or bulk...
答案3
对我来说,我的 ISP(Bell.ca)阻止了端口 25。因此,诀窍是通过 SSH(端口 22)连接到我的服务器。
然后我就可以从我的服务器连接到端口 25:
telnet localhost 25
附言:Telnet 很可能未安装。因此,如果您收到命令未找到错误,请尝试安装 telnet。在 Linux 上:
sudo yum install telnet
或者,取决于你的服务器使用 yum 还是 apt:
sudo apt-get install telnet