连接到mydomain.com …无法打开连接到主机,端口25:连接失败

我在/ etc / sysconfig / iptables中有这些设置

# Firewall configuration written by system-config-securitylevel # Manual customization of this file is not recommended. *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :RH-Firewall-1-INPUT - [0:0] -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT -A INPUT -p tcp -m tcp --dport 25 -j ACCEPT -A INPUT -p tcp -m tcp --dport 23 -j ACCEPT -A INPUT -j RH-Firewall-1-INPUT -A FORWARD -j RH-Firewall-1-INPUT -A RH-Firewall-1-INPUT -i lo -j ACCEPT -A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT -A RH-Firewall-1-INPUT -p 50 -j ACCEPT -A RH-Firewall-1-INPUT -p 51 -j ACCEPT -A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT -A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT -A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8000 -j ACCEPT -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited COMMIT 

我想我应该有25端口打开,我重新启动我的机器,但我得到错误“连接到mydomain.com …无法打开连接到主机,在端口25:连接失败”“telnet:无法连接到远程主机:连接拒绝“通过运行”telnet mail.mydomain.com 25“

我通过运行本地testing“telnet localhost 25”,它运行良好。 我得到了“220 mail.mydomain.com ESMTP Postfix”

还有什么我需要configuration打开端口25?

这是Centos 5.4

谢谢

你有没有检查,看看你是否有一个防火墙坐在这台主机前防止传入端口25? 你列出的规则一定要让你进来。实际上,你有25个端口允许两次。

请注意,你应该保持你的规则与Red Hat / CentOS的惯例保持一致。 这些规则:

 -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT -A INPUT -p tcp -m tcp --dport 25 -j ACCEPT -A INPUT -p tcp -m tcp --dport 23 -j ACCEPT 

应该看起来像这样,放置在ESTABLISHED,RELATED行之后ESTABLISHED,RELATED就像这样:

 -A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 23 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT 

另外,请确保在对此文件进行更改后运行/etc/init.d/iptables restart 。 要确认是否已经应用,请运行:

 # iptables -L -n | grep 25 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:25 

祝你好运。

正如Ignacio提到的,你可能想要确定Postfix实际上正在侦听那个端口,并且接受连接。 它可能只是它被configuration为通过端口25发送邮件,而不接受它。 一些命令: netstat -an查看正在监听的内容。 最好在端口25上列出telnet连接。 看看tcpdump实际上捕获服务器上的数据包,看看你的telnet是否通过。 同样,你可能想打开iptables日志logging,以确保真正是什么杀死你的数据包。

– 克里斯托弗·卡雷尔