我似乎无法在我的 CentOS 6.3 专用服务器上打开端口 25。
telnet localhost 25
工作正常,但是当尝试远程
telnet mydomain.com 25
Connecting To mydomain.com...Could not open connection to the host, on port 25: Connect failed
我的 /etc/sysconfig/iptables 如下所示:
# Generated by iptables-save v1.4.7 on Tue Dec 11 20:24:48 2012
*raw
:PREROUTING ACCEPT [1239:156878]
:OUTPUT ACCEPT [1017:172599]
COMMIT
# Completed on Tue Dec 11 20:24:48 2012
# Generated by iptables-save v1.4.7 on Tue Dec 11 20:24:48 2012
*nat
:PREROUTING ACCEPT [139:41210]
:INPUT ACCEPT [12:976]
:OUTPUT ACCEPT [91:14636]
:POSTROUTING ACCEPT [91:14636]
COMMIT
# Completed on Tue Dec 11 20:24:48 2012
# Generated by iptables-save v1.4.7 on Tue Dec 11 20:24:48 2012
*mangle
:PREROUTING ACCEPT [1239:156878]
:INPUT ACCEPT [1239:156878]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1017:172599]
:POSTROUTING ACCEPT [1017:172599]
COMMIT
# Completed on Tue Dec 11 20:24:48 2012
# Generated by iptables-save v1.4.7 on Tue Dec 11 20:24:48 2012
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [107:13896]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 587 -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
# Completed on Tue Dec 11 20:24:48 2012
我以为这意味着我的 25 端口已打开,但它仍然不起作用。有人有什么想法吗?顺便说一句,/etc/postfix/main.cf 说
inet_interfaces = all
更新:
我按照建议切换了 iptables 中的两行,所以现在:
netstat -tnlp | grep 25
tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN 2581/dovecot
tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN 2581/dovecot
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 2521/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 6754/master
tcp 0 0 123.123.123.123:25 0.0.0.0:* LISTEN 6754/master
tcp 0 0 0.0.0.0:4190 0.0.0.0:* LISTEN 2581/dovecot
tcp 0 0 0.0.0.0:993 0.0.0.0:* LISTEN 2581/dovecot
tcp 0 0 0.0.0.0:995 0.0.0.0:* LISTEN 2581/dovecot
tcp 0 0 :::110 :::* LISTEN 2581/dovecot
tcp 0 0 :::143 :::* LISTEN 2581/dovecot
tcp 0 0 :::22 :::* LISTEN 2521/sshd
tcp 0 0 :::4190 :::* LISTEN 2581/dovecot
tcp 0 0 :::993 :::* LISTEN 2581/dovecot
tcp 0 0 :::995 :::* LISTEN 2581/dovecot
我认为这意味着端口 25 已打开并且 Postfix 正在监听它?
我的专用服务器提供商是 OVH,他们声称不会阻止端口 25: http://help.ovh.com/FireWall
这看起来像是一条死路……
更新 2:已解决,我的 ISP 没有阻止端口 25,但我的 VPN 提供商阻止了。该死的他们。感谢大家的帮助。
答案1
端口 25 的 accept 行
-A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
在全面拒绝之后
-A INPUT -j REJECT --reject-with icmp-host-prohibited
切换它们并重新加载。Iptables 在第一次匹配获胜时起作用,因此 ACCEPT 永远不会被执行。您可以连接到本地主机的原因是存在一个全面接受
-A INPUT -i lo -j ACCEPT
在被拒绝之前。
如果不起作用,则检查 postfix 是否正在监听相关的 IP 地址,检查输出
netstat -tnlp | grep 25
并采取适当的措施。如果不是这样,那么很可能是其他人阻塞了您上游的 25 端口。