
CentOS 7을 설치할 때 서버에 Gmail 별칭으로 만든 이메일 계정 중 하나에 연결할 수 없습니다.
다음 명령을 실행했습니다.
firewall-cmd --permanent --zone=public --add-service=smtp
firewall-cmd --permanent --zone=public --add-port=25/tcp
내가 만들 때
firewall-cmd --permanent --zone=public --query-port=25/tcp
"예"를 반환합니다.
하지만 Gmail과 다양한 이메일 테스트 사이트에서는 여전히 "서버에 연결할 수 없음" 오류가 발생합니다.
그런 다음 나는
nmap -sT -O localhost
내 포트가 거기에 나열되지 않은 것을 보았습니다. 어떤 아이디어가 있나요?
답변1
두가지. 먼저, 방화벽을 사용하면 firewall-cmd --reload
영구 규칙을 사용하거나 적용한 후에 다시 로드 해야 합니다 --complete-reload
. 쿼리를 다시 검증하거나 firewall-cmd --list-all
.
둘째, 위의 작업을 이미 수행했다면 ss -tuna | grep 25
듣고 있는지 확인하십시오 *:25
. "127.0.0.1:25"를 수신하는 경우 다른 인터페이스를 수신하도록 postfix를 재구성해야 합니다. 예.
inet_interfaces = $myhostname
# or...
inet_interfaces = all
답변2
lo, LAN 및 WAN의 세 가지 장치 인터페이스가 있다고 가정합니다.
- 보라, localhost 127.0.0.1
- LAN, 근거리통신망 192.168.1.2
- WAN, 월드 에어리어 네트워크 169.254.8.8
게시물의 영역이 공개라고 가정하고 WAN에서 트래픽을 열면 해당 트래픽이 전달되어야 합니다. 이를 소스 및 대상이라고 합니다.
외부적으로는 WAN에서 나오므로 소스를 알 수 없으므로 모두 허용할 수 있습니다: 0.0.0.0
우리의 메일 서버는 LAN에서 실행되므로 더 많은 서버가 로컬에서 쉽게 사용할 수 있습니다. (방화벽에서 허용하는 경우) 외부에서 도달하려면 목적지를 정의해야 합니다.
소스 = 0.0.0.0, 대상 = 포트 25의 192.168.1.2. 포트에는 소스 포트와 대상 포트도 있습니다.
0.0.0.0:25 -> 192.168.1.2:25
외부인이 보기에는 이렇습니다.
my.ip.address -> 169.254.8.8:25
이제 문제는 터널 끝에 누군가가 있는가 하는 것입니다. 아마도 메일 서버가 lo(127.0.0.1)에 설정되어 있을 것입니다.
포트를 확인하려면 다음을 실행할 수 있습니다 netstat -al
.
- -a 또는 --all 현재 사용 중인 모든 소켓을 표시합니다.
- -l 또는 --listening은 현재 들어오는 연결을 수신하고 있는 소켓만 표시합니다.
내 생각에 plesk는 일반적으로 인스턴스 위에 방화벽 계층이 있는 가상 호스팅 제공업체인 것 같습니다. 그런 다음 인스턴스 자체에 방화벽을 구성하지 말고 상단에 방화벽을 구성하세요.
나는 plesk에 대한 경험이 없지만 FAQ를 확인하십시오.