无法连接到exim4 SMTP服务器

我有问题,我不能连接到我的家庭networking的exim4 SMTP服务器:

$ telnet -4 example.com 25 Trying 1.2.3.4... telnet: connect to address 1.2.3.4: Connection refused telnet: Unable to connect to remote host 

服务器上的netstat告诉我,exim4正在侦听端口25,包括IPv4和IPv6。 我在我的服务器上启动tcpdump来检查请求是否到达服务器,它什么也没有显示。 我感到困惑,并作为最后一个testing,删除所有这些iptables规则。 不过,我得到了连接被拒绝的错误。

Wireshark告诉我,服务器响应我的telnet请求与RST / ACK,这意味着该端口被closures。 但是,如果我从家庭networking的任何地方连接到服务器,它的工作没有问题。

我检查了请求离开我的本地网关,它确实。

所以现在我没有想法了。 什么可能导致这个要求被拒绝? 由于tcpdump没有显示任何内容,我得到一个RST / ACK,它必须在一个非常低的水平,但我无法想象超越iptables可以阻止传入的请求 – 尤其是因为这似乎只发生在我家的IP包。

一定要检查另一边的主机是否可以ping通。 当你这样做,尝试平铺和设置

 tcpdump -ni any icmp 

在Exim服务器上。

您应该能够确认ping是否正确遍历,并且服务器端的iptables中的地址是正确的。

如果您在Exim服务器上有任何其他服务,请尝试telnet到这些服务器上,例如端口80上的示例HTTP,或类似的东西。 当成功的时候,你会知道你正在接近,如果没有,那么再检查一下防火墙的规则,并且在DROP (实际上这是telnet所说的REJECT规则)规则中插入它们,否则它们永远不会有机会工作。

要把规则放在iptables的0位置,使用

 iptables -I INPUT -p tcp --dport 25 -s 5.6.7.8 -j ACCEPT 

代替

 iptables -A INPUT -p tcp --dport 25 -s 5.6.7.8 -j ACCEPT 

5.6.7.8应该是你在tcpdump上用ICMP数据包或任何types的whatsmyip站点看到的地址。

如果其他服务正常工作,并且端口25仍然不知道某些ISP阻止了tcp端口25故意减lessnetworking上的垃圾邮件,那么您可能会被迫执行以下任一操作:

  • 联系您的ISP,并要求从您的IP端口取消该端口
  • configurationExim也可以在另一个端口上工作(我build议使用encryption的端口465,但未encryption的端口587通常用于规避这种防火墙)
  • 使用VPNbuild立到Exim服务器的隧道并通过它传送stream量