我在我的 Centos 邮件服务器上运行 postfix 和 dovecot。
现在我可以从服务器向外部发送邮件,但我无法接收来自外部的邮件。
TELNET:当我 telnet 到我的 ip 地址到端口 21 时,它可以连接,但是当对端口 25 和 110 执行此操作时,它无法连接,因此有些东西阻止了它。
现在,在 IPTABLES 中,我启用了以下所有端口以允许流量:80,21,25,110,143。请参阅下面的我的 iptables 配置:
# Generated by iptables-save v1.4.7 on Fri Jul 5 22:08:10 2013
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [30:3200]
-A INPUT -p tcp -m tcp --dport 5252 -j ACCEPT -m comment --comment "SSH"
-A INPUT -p tcp -m tcp --dport 48001 -m comment --comment "SSH was 5252" -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
-A INPUT -m tcp -p tcp --dport 25 -j ACCEPT
-A INPUT -m tcp -p tcp --dport 110 -j ACCEPT
-A INPUT -m tcp -p tcp --dport 143 -j ACCEPT
-A OUTPUT -p icmp -m icmp --icmp-type 0 -m state --state RELATED,ESTABLISHED -j ACCEPT
COMMIT
# Completed on Fri Jul 5 22:08:10 2013
~
问题: 1、为什么我不能从外面telnet到25端口?(我相信这就是为什么我无法接收来自外部的邮件的原因。
注意:我的 MX 记录和反向 DNS 都可以正常工作,我相信如果我可以 telnet 到端口 25 和 110,我将能够接收来自外部的邮件,还是我错了?
PS:我使用以下 2 个教程设置了我的邮件服务器:
后缀: http ://centoshelp.org/servers/mail/postfix-mail-server-on-centos/
编辑:netstat -tlnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 1284/mysqld
tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN 1313/dovecot
tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN 1313/dovecot
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 1146/vsftpd
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1008/cupsd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2573/master
tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN 1802/sshd
tcp 0 0 127.0.0.1:6011 0.0.0.0:* LISTEN 2038/sshd
tcp 0 0 127.0.0.1:6012 0.0.0.0:* LISTEN 2357/sshd
tcp 0 0 127.0.0.1:6013 0.0.0.0:* LISTEN 2583/sshd
tcp 0 0 0.0.0.0:48001 0.0.0.0:* LISTEN 1767/sshd
tcp 0 0 0.0.0.0:993 0.0.0.0:* LISTEN 1313/dovecot
tcp 0 0 0.0.0.0:995 0.0.0.0:* LISTEN 1313/dovecot
tcp 0 0 :::110 :::* LISTEN 1313/dovecot
tcp 0 0 :::143 :::* LISTEN 1313/dovecot
tcp 0 0 :::80 :::* LISTEN 1415/httpd
tcp 0 0 ::1:631 :::* LISTEN 1008/cupsd
tcp 0 0 ::1:25 :::* LISTEN 2573/master
tcp 0 0 ::1:6010 :::* LISTEN 1802/sshd
tcp 0 0 ::1:6011 :::* LISTEN 2038/sshd
tcp 0 0 ::1:6012 :::* LISTEN 2357/sshd
tcp 0 0 ::1:6013 :::* LISTEN 2583/sshd
tcp 0 0 :::48001 :::* LISTEN 1767/sshd
tcp 0 0 :::993 :::* LISTEN 1313/dovecot
tcp 0 0 :::995 :::* LISTEN 1313/dovecot
解决方案- 仔细阅读您的 POSTFIX main.cf 文件!
我在 /etc/postfix/main.cf 文件上犯了一个小错误 - 由于某种原因,inet_interfaces = localhost 行没有被注释掉,它推翻了 inet_interfaces = all 规则......再次感谢您的帮助,非常感谢。现在我也可以远程登录到 110 和 143。
看起来您的邮件服务器只在 localhost 而不是您的公共 IP 上侦听:
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN
更改配置,使其侦听正确的 IP。请务必正确执行此操作,因为错误配置的邮件服务器是常态。