我在我的 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:我使用以下两个教程设置了我的邮件服务器:
后缀: 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 规则...再次感谢您的帮助,非常感谢。现在我也可以 telnet 到 110 和 143。
答案1
看起来你的邮件服务器只监听本地主机而不是你的公共 IP:tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN
更改配置,使其监听正确的 IP。确保正确地做这件事因为配置错误的邮件服务器是常态。