Недавно я перенес свой домен на NoIP, и мне пришлось создать почтовый сервер.
(Мне пришлось перейти на noip, потому что я не могу настроить статический/фиксированный IP-адрес, поскольку я не являюсь предпринимателем, и у меня нет корпоративного номера налогоплательщика, чтобы получить бизнес-линию у моего интернет-провайдера...)
Но я не могу подключиться к нему в своем почтовом клиенте.
Я следовал этому руководству:https://www.linode.com/docs/email/postfix/email-with-postfix-dovecot-and-mysql
Я назначил/перенаправил/открыл порты IMAP, SMTP, POP и LDAP для моей машины Ubuntu в моем маршрутизаторе:
И я создал mx-запись в cr7akg.com: 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 из Интернета в целом, всегда предполагая (как указывали другие), что вы не пытаетесь с конечной точки, которая не может связаться с портом SMTP по умолчанию ISP.
Редактировать: теперь вы удалили 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)
Итак, вы решили свою проблему.