我有问题,我不能连接到我的家庭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上的垃圾邮件,那么您可能会被迫执行以下任一操作: