![Linux 서버에 두 개의 IP 주소가 있는 경우 포트를 리디렉션하도록 ipable을 설정하는 방법 [닫기]](https://linux55.com/image/132123/Linux%20%EC%84%9C%EB%B2%84%EC%97%90%20%EB%91%90%20%EA%B0%9C%EC%9D%98%20IP%20%EC%A3%BC%EC%86%8C%EA%B0%80%20%EC%9E%88%EB%8A%94%20%EA%B2%BD%EC%9A%B0%20%ED%8F%AC%ED%8A%B8%EB%A5%BC%20%EB%A6%AC%EB%94%94%EB%A0%89%EC%85%98%ED%95%98%EB%8F%84%EB%A1%9D%20ipable%EC%9D%84%20%EC%84%A4%EC%A0%95%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%20%5B%EB%8B%AB%EA%B8%B0%5D.png)
내 Glassfish 웹 서버가 두 개의 서로 다른 IP 주소에 웹 페이지를 제공하기를 원합니다. 내가 원하는 것은 포트를 변환하기 위해 iptable 규칙을 설정하는 것입니다.
IP#1의 경우
198.xxx.xxx.14:80 <-- redirected to --> port 8080
198.xxx.xxx.14:443 <-- redirected to --> port 8181
IP #2의 경우
199.xxx.xxx.185:80 <-- redirected to --> port 9090
199.xxx.xxx.185:443 <-- redirected to --> port 9191
그런 다음 Glassfish 서버에는 두 개의 가상 서버가 있습니다.
- 하나는 모든 호스트의 포트 8080 및 8181에서 수신 대기합니다.
- 다른 하나는 모든 호스트의 포트 9090 및 9191을 수신합니다.
IP 주소가 하나만 있는 Debian 서버에서 작동하는 iptables 규칙은 다음과 같습니다.
iptables -t nat -A OUTPUT -o lo -p tcp --dport 80 -j REDIRECT --to-port 8080
iptables -t nat -A OUTPUT -o lo -p tcp --dport 443 -j REDIRECT --to-port 8181
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 8181
내 /etc/hosts
파일에는 두 개의 IP 주소가 포함되어 있습니다.
...
198.xxx.xxx.14 subdomain.mydomain1.com myservername1
127.0.0.1 localhost.localdomain localhost
# Auto-generated hostname. Please do not remove this comment.
199.xxx.xxx.185 mydomain2.org myservername2
그리고 /etc/network/interfaces
아래와 같이 네트워크 어댑터 바인딩이 이미 포함되어 있습니다.
...
auto venet0:0
iface venet0:0 inet static
address 199.xxx.xxx.185
netmask 255.255.255.255
auto venet0:6
iface venet0:6 inet static
address 198.xxx.xxx.14
netmask 255.255.255.255
...
답변1
iptables -t nat -A PREROUTING -p tcp -m tcp -d 198.xxx.xxx.14 --dport 80 -j REDIRECT --to-ports 8080
iptables -t nat -A PREROUTING -p tcp -m tcp -d 198.xxx.xxx.14 --dport 443 -j REDIRECT --to-ports 8181
iptables -t nat -A PREROUTING -p tcp -m tcp -d 198.xxx.xxx.185 --dport 80 -j REDIRECT --to-ports 9090
iptables -t nat -A PREROUTING -p tcp -m tcp -d 198.xxx.xxx.185 --dport 443 -j REDIRECT --to-ports 9191
이는 다른 호스트로부터 들어오는 트래픽을 처리합니다. 로컬 액세스의 경우 모호함을 피하기 위해 OUTPUT 규칙을 완전히 제거하고 실제 포트 번호를 사용하는 것이 좋습니다. 또는 127.0.0.1:80 또는 127.0.0.1:443에 연결할 때 액세스하려는 두 개의 포트를 선택하고 해당 포트에 대한 두 개의 출력 규칙을 설정하면 됩니다.