![排除家庭邮件服务器设置故障](https://linux22.com/image/1348309/%E6%8E%92%E9%99%A4%E5%AE%B6%E5%BA%AD%E9%82%AE%E4%BB%B6%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%AE%BE%E7%BD%AE%E6%95%85%E9%9A%9C.png)
我的家庭服务器上托管了一些小域名,我想为这些域名获取一些基本的电子邮件地址。我设置了一个 Ubuntu 12.04 服务器,并按照此处的说明使用 Postfix 和 Courier 设置邮件服务器:
https://askubuntu.com/questions/54960...n-email-server(最高评分答案)
做完这些之后,我尝试设置我的[电子邮件保护]Thunderbird 中输入电子邮件地址,但找不到服务器。
我可以在本地远程登录到端口 25(即telnet 127.0.0.1 25
)并手动向自己发送测试消息,但我无法从另一台计算机远程登录到端口 25。我的 ISP 通知我他们没有阻止任何端口。
Pingability.com 返回有关我的邮件服务器的以下信息:与邮件服务器通信时出现问题。收到“ConnectException:连接被拒绝”
nmap -p 25 example.com 产生以下结果:
PORT STATE SERVICE 25/tcp filtered smtp
我接下来该怎么做才能排除故障/解决这个问题?我走投无路了。
编辑:这是我的 /etc/postfix/main.cf:http://pastebin.com/82TbdyjH
答案1
您的邮件服务器很可能只监听localhost
(127.0.0.1) 港口二十五。您需要让它绑定到您的所有网络接口(0.0.0.0)或系统在 LAN 上使用的实际 IP 地址(可能192.168.xx) 类型的地址。
此外,这台计算机是否可以从互联网访问?如果可以,您还需要让邮件服务器监听该 IP 的端口 - 或者 - 使用iptables
您的家庭路由器/交换机将进入端口 25 的所有 WAN 流量转发到邮件服务器的内部 IP。
您可以使用它netstat
来确定您的进程正在监听哪些 IP /端口组合,如下所示:
% netstat -anpt|egrep ":25|Ac|Pro"
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 13649/sendmail: acc
在这种情况下,我正在运行sendmail
并且它正在监听我的所有网络接口(0.0.0.0)。
调试邮件问题可能很棘手。我写了一篇博客文章,介绍如何设置各种组件,例如sendmail
、、spamassassin
(dovecot
信息访问协议)等。它面向CentOS 5.x但在底部的评论中有一些调试邮件服务器问题的技巧。
更新 #1
尝试一下这里的一些建议:http://forum.slicehost.com/index.php?p=/discussion/1651/postfix-only-listening-on-localhost/p1
具体确保以下内容:
-确保靠近顶部的这一行/etc/postfix/master.cf
没有被注释掉:
smtp inet n - - - - smtpd
-如果您还想监听端口 587,请取消注释下一行:
submission inet n - - - - smtpd
-如果您在此处进行更改,请不要忘记重新加载 Postfix:
$ sudo postfix reload