Postfix가 다른 IP 주소를 사용하게하는 방법?


21

Postfix 메일 서버를 사용하고 있으며 6 개의 IP를 사용할 수 있습니다. 웹 서버가 사용하는 것보다 Postfix 메일 서버에 다른 IP를 사용하여 메일을 보내려고합니다.

어떻게해야합니까? 내 접미사 버전은 2.3.3입니다.

예 : 기본 IP : 66.66.66.66 기타 IP : 66.66.66.67

답변:


25

당신이 원하는 smtp_bind_address=66.66.66.67inet_interfaces=all또는 inet_interfaces=eth(whatever)66.66.66.67가 켜져 있는지.

변경 후 postfix를 중지 / 시작하십시오. 변경중인 경우 다시로드 할 수 없습니다inet_interfaces


smtp_bind_address 옵션을 시도했지만 메일 서버가 더 이상 메일을 보내지 않습니다. 그리고 그 서버에서 메일을 받고 싶지 않기 때문에 inet_interfaces를 변경해야한다고 생각하지 않습니다. 이 IP는 메일 전송에만 사용됩니다.
EarthMind 2009

postconf -n우리가 당신이 말하는 것을 볼 수 있도록 게시하십시오 . 필요에 따라 IP를 개인 IP (10.xxx 등) 및 도메인으로 익명화하십시오 (com | net | org | 무엇이든).
Bill Weiss

2
smtp_bind_address가 올바른 방법이었으며 사용중인 새 IP에 rDNS 레코드가 없기 때문에 이메일 전송이 지연되었습니다. 도와 주셔서 감사합니다.
EarthMind 2009

3
smtp_bind_addressIPv4 주소를 설정, IPv6에 해당smtp_bind_address6
Paul Tobias

16

"smtp_bind_address"솔루션을 사용하는 경우 메일 서버는 지정된 IP 주소에서만 수신 메일을 수신합니다. "inet_interfaces"솔루션에도 동일하게 적용됩니다. 여러 IP 주소 / 인터페이스에서 들어오는 메일을 수신하려는 경우에는 원하는 해결 방법이 아닐 수 있습니다.

기본 "smtp_bind_address"및 "inet_interfaces"설정을 변경하지 말 것을 권장하므로 메일 서버는 모든 IP 주소에서 들어오는 메일을 계속 수신합니다.

/etc/postfix/master.cf 파일을 약간만 변경하면됩니다.

이 부분을 변경하십시오.

smtp 유닉스-----smtp
# 메일을 백업 MX로 릴레이 할 때 MX 루프를 피하기 위해 fallback_relay를 비활성화하십시오
릴레이 유닉스-----SMTP
        -o smtp_fallback_relay =

이에:

smtp 유닉스-----smtp
        -o smtp_bind_address = 192.168.0.1
# 메일을 백업 MX로 릴레이 할 때 MX 루프를 피하기 위해 fallback_relay를 비활성화하십시오
릴레이 유닉스-----SMTP
        -o smtp_bind_address = 192.168.0.1
        -o smtp_fallback_relay =

물론 192.168.0.1 대신 메일을 보내려는 IP 주소 중 하나를 사용해야합니다.

졸탄


필자는 메일 서버가 들어오고 나가는 전자 메일에 대해 하나의 IP 주소 만 수신하기를 원했다고 생각합니다. 그럼에도 불구하고 추가 정보에 감사드립니다. 감사.
EarthMind

1
이것은 ipv6에서 작동합니까? 그렇다면 두 개의 주소를 포함하고 각 주소 중 하나에 바인딩 할 수 있습니까? 이 솔루션으로 나는 아직도 내가 지정한 ipv4 주소가 아니라 ipv6을 통해 나가는 메일을 받고있다
billynoah

나는 추가 -o smtp_bind_address6=1:2:3:4:5:6:7:8하고 작동하는 것 같습니다.
billynoah

1
정확하지 않습니다. 이다 에 모두 추가를 통해 후위 여러 인터페이스에서 수신하는 것이 가능 inet_interfaces하거나로 설정 - all(기본값) 구성 smtp_bind_address. 그런 다음 smtp_bind_address (또는 smtp_bind_address6)을 통해 지정된 하나의 주소 가 Postfix smtp 전송 프로세스에 독립적으로 사용됩니다.
maxschlepzig

master.cf에 -o smtp_bind_address를 추가했는데 작동하지 않았습니다. 나는 main.cf에서 그것을 사용했고 작동했다.
Areeb Soo Yasir

10

master.cf

다른 인터페이스를 만듭니다. 각 도메인 당 하나씩 :

rotate1  unix -       -       n       -       -       smtp
          -o syslog_name=postfix-rotate1
          -o smtp_helo_name=domainone.com.br
          -o smtp_bind_address=173.111.111.1

rotate2  unix -       -       n       -       -       smtp
          -o syslog_name=postfix-rotate2
          -o smtp_helo_name=domaintwo.com.br
          -o smtp_bind_address=173.111.111.2

main.cf

  1. 다른 모든 전송 맵을 비활성화하십시오. 예 : # transport_maps = xxxxx

  2. 종속 전송 맵 사용 (접미사 2.7.x 이상 필요)

sender_dependent_default_transport_maps = mysql : /etc/postfix/config/transport_random_dependent.cf

transport_random_dependent.cf

예:

user = postfix
password = mypassword
dbname = postfixdb
hosts = localhost
query = SELECT transport FROM transport_random WHERE domain = '%d' AND status='1' ORDER BY RAND() LIMIT 1

테이블 transport_random

Column "transport" = rotate1, rotate2, rotate3, rotate4 (etc)
Column "domain" = sender domains (replaced by %d)
Column "status" = boolean (0 or 1) if is enabled the transport.

"RAND () LIMIT 1"명령은 동일한 도메인에 대해 임의의 전송을 사용하려는 경우에만 필요합니다.

예를 들어, mydomain.com에서 3 개의 다른 IP를 보내려고합니다.

그런 다음 3 개의 다른 IP로 3 개의 전송 (rotate1, rotate2 및 rotate3)을 만든 다음 mysql 줄을 설정하십시오.

transport = rotate1 | domain = mydomain.com
transport = rotate2 | domain = mydomain.com
transport = rotate3 | domain = mydomain.com

그런 다음 postfix가이 이메일을 보내기 위해 3 개의 다른 전송 (1 ~ 3 개 회전)을 무작위로 지정할 때.


3

/etc/postfix/main.cf를 편집하고 다음 줄이 있는지 확인하십시오

inet_interfaces = 66.66.66.67, localhost

그런 다음 "postfix reload"를 실행하십시오.


2
이것은 보내는 메일을 보내는 데 사용되는 IP 주소가 아니라 SMTP 연결을 수신 대기 할 IP 주소 만 설정합니다.
ub3rst4r
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.