最近我将我的域名转移到 NoIP,并且我必须创建一个邮件服务器。
(我不得不转到 noip,因为我无法设置静态/固定 IP,因为我不是企业,而且我没有企业纳税人编号来在我的 ISP 中获取商业线路...)
但我无法通过我的电子邮件客户端连接到它。
我遵循了本教程:https://www.linode.com/docs/email/postfix/email-with-postfix-dovecot-and-mysql
我在路由器中为 Ubuntu 机器分配/转发/打开了 IMAP、SMTP、POP 和 LDAP 端口:
我在 cr7akg.com 创建了一条 mx 记录cr7akg.com 10
::
telnet cr7akg.com 25
和的输出telnet cr7akg.com smtp
为:
Trying 85.245.177.97...
telnet: connect to address 85.245.177.97: Connection refused
telnet: Unable to connect to remote host
我遗漏了什么?为什么我无法使用电子邮件客户端连接到电子邮件服务器?
输出sudo netstat -panet
Ligações de Internet Activas (servidores e estabelecidos)
Proto Recv-Q Send-Q Endereço Local Endereço Remoto Estado User Inode PID/Program name
tcp 0 0 0.0.0.0:7300 0.0.0.0:* ESCUTA 1001 12435 1231/perl
tcp 0 0 127.0.0.1:3306 0.0.0.0:* ESCUTA 117 95382 7965/mysqld
tcp 0 0 192.168.1.104:27754 0.0.0.0:* ESCUTA 1001 12434 1231/perl
tcp 0 0 127.0.0.1:587 0.0.0.0:* ESCUTA 0 138499 18957/sendmail: MTA
tcp 0 0 0.0.0.0:21 0.0.0.0:* ESCUTA 0 103425 9641/vsftpd
tcp 0 0 127.0.1.1:53 0.0.0.0:* ESCUTA 0 11938 1480/dnsmasq
tcp 0 0 0.0.0.0:22 0.0.0.0:* ESCUTA 0 10481 940/sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* ESCUTA 0 205310 9231/cupsd
tcp 0 0 127.0.0.1:25 0.0.0.0:* ESCUTA 0 138498 18957/sendmail: MTA
tcp 0 0 127.0.0.1:6010 0.0.0.0:* ESCUTA 1000 212857 10119/4
tcp 0 264 192.168.1.104:22 192.168.1.90:62312 ESTABELECIDO 0 213850 10052/sshd: diogosa
tcp 0 0 192.168.1.104:48086 88.81.132.153:7301 ESTABELECIDO 1001 166071 1231/perl
tcp6 0 0 :::80 :::* ESCUTA 0 123277 7474/apache2
tcp6 0 0 :::22 :::* ESCUTA 0 10483 940/sshd
tcp6 0 0 ::1:631 :::* ESCUTA 0 205309 9231/cupsd
tcp6 0 0 ::1:6010 :::* ESCUTA 1000 212856 10119/4
更新:
我删除了 sendmail:
Ligações de Internet Activas (servidores e estabelecidos)
Proto Recv-Q Send-Q Endereço Local Endereço Remoto Estado User Inode PID/Program name
tcp 0 0 0.0.0.0:7300 0.0.0.0:* ESCUTA 1001 11794 1373/perl
tcp 0 0 192.168.1.104:27754 0.0.0.0:* ESCUTA 1001 11793 1373/perl
tcp 0 0 127.0.0.1:3306 0.0.0.0:* ESCUTA 117 11580 1227/mysqld
tcp 0 0 0.0.0.0:587 0.0.0.0:* ESCUTA 0 9180 1137/master
tcp 0 0 127.0.1.1:53 0.0.0.0:* ESCUTA 0 11664 1550/dnsmasq
tcp 0 0 0.0.0.0:21 0.0.0.0:* ESCUTA 0 8827 887/vsftpd
tcp 0 0 0.0.0.0:22 0.0.0.0:* ESCUTA 0 8843 876/sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* ESCUTA 0 15897 2344/cupsd
tcp 0 0 0.0.0.0:25 0.0.0.0:* ESCUTA 0 9174 1137/master
tcp 0 0 127.0.0.1:6010 0.0.0.0:* ESCUTA 1000 15993 2387/4
tcp 0 264 192.168.1.104:22 192.168.1.90:62541 ESTABELECIDO 0 15931 2351/sshd: diogosar
tcp6 0 0 :::587 :::* ESCUTA 0 9181 1137/master
tcp6 0 0 :::80 :::* ESCUTA 0 11125 1330/apache2
tcp6 0 0 :::22 :::* ESCUTA 0 8845 876/sshd
tcp6 0 0 ::1:631 :::* ESCUTA 0 15896 2344/cupsd
tcp6 0 0 :::25 :::* ESCUTA 0 9175 1137/master
tcp6 0 0 ::1:6010 :::* ESCUTA 1000 15992 2387/4
tcp6 0 0 ::1:56645 ::1:631 ESTABELECIDO 0 15325 1110/cups-browsed
tcp6 0 0 ::1:631 ::1:56645 ESTABELECIDO 0 15909 2344/cupsd
输出sudo iptables -L -vnx:
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
答案1
我认为问题在于您仅在环回接口上运行邮件服务器(我假设上面的 netstat 输出中没有其他 :25 条目)
tcp 0 0 127.0.0.1:25 0.0.0.0:* ESCUTA 0 138498 18957/sendmail: MTA
主机外部的任何东西都无法访问它。它应该在路由器转发到的物理接口上运行。
答案2
我认为您不可能遵循您链接的教程,因为 (a) sendmail 作为您的 MTA 运行,并且 (b) 它只在监听127.0.0.1
。后者就是您无法从其他任何地方连接到端口 25 的原因。
要更改此设置,请查找以下行
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
将/etc/mail/sendmail.mc
其更改为
dnlDAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')
或者直接删除它。使用 重新创建配置文件,make sendmail.cf
然后使用 重启服务service sendmail restart
。使用 确认 MTA 现在正在监听所有地址netstat -apn|grep -w 25
;您希望看到类似
tcp 0 0 :::25 :::* LISTEN 8525/sendmail
注意第四列的变化(所有这些命令都需要权限)。然后,您应该能够从整个互联网联系您的 MTA,始终假设(正如其他人指出的那样)您没有从 ISP 默认无法与 SMTP 端口通信的端点尝试。
编辑:您现在已经删除了 sendmail 并安装了 postfix,并且您的服务器现在正在监听所有端口(参见netstat
上面的输出)。您的服务器可以从整个互联网访问:
[me@risby ~]$ telnet cr7akg.com 25
Trying 85.245.177.97...
Connected to cr7akg.com.
Escape character is '^]'.
220 Ubuntu ESMTP Postfix (Ubuntu)
因此你的问题已经解决了。