최근에 도메인을 NoIP로 이전하여 메일 서버를 만들어야 했습니다.
(저는 사업자가 아니기 때문에 고정/고정 IP를 설정할 수 없고, ISP에서 사업 라인을 얻을 수 있는 사업자 납세자 번호가 없기 때문에 noip로 전환해야 했습니다...)
하지만 내 이메일 클라이언트에서는 연결할 수 없습니다.
나는 이 튜토리얼을 따랐다: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
4열의 변경 사항에 유의하세요(이러한 모든 명령에는 권한이 필요함). 그런 다음 ISP 기본적으로 SMTP 포트와 통신할 수 없는 끝점에서 시도하고 있지 않다고 항상 가정하고(다른 사람들이 지적했듯이) 대규모 인터넷에서 MTA에 연결할 수 있어야 합니다.
편집하다: 이제 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)
그래서 문제를 해결했습니다.