iptables로 80번 포트에 도착한 그룹을 로컬 상급 포트로 전송합니다
2925 단어 iptables
지저분한 필기 수준이었지만 메모로 적어 놓았다.
간단한 예
80번으로 3000번 포트에서 이동하는 서비스를 공개한 예로 이런 지령을 내릴 수 있다.
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3000
프로필에 저장할 때 Filter 이외에nat표의 설정↓를 추가하여 이렇게 쓰면 됩니다./etc/sysconfig/iptables
*nat
:PREROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3000
COMMIT
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
# filter settings here...
COMMIT
그리고 service iptables restart
이렇게 하면 반영된다.여러 개의 IP를 할당한 서버가 수락한 IP를 통해 전송된 목적지의 로컬 포트를 바꾸는 예
예를 들어 10.0.0.80과 10.0.0.81의 IP가 있을 때 10.0.0.81의 패킷이 3001호 포트로 전달되고, 다른 IP로 받은 상태에서 3000호 포트로 전달될 때 ↓는 이렇게 쓰면 된다.
/etc/sysconfig/iptables
*nat
:PREROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A PREROUTING -p tcp -d 10.0.0.81 --dport 80 -j REDIRECT --to-port 3001
-A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3000
COMMIT
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
# filter settings here...
COMMIT
이렇게 하면 한 서버가 서로 다른 포트에서 개발 환경과 실제 환경을 구분할 수 있고 지정된 포트가 없는 URL을 통해 접근할 수 있다.로컬 프로세스로부터의 통신도 지원되는 경우 OUTPUT 체인으로 덮어쓰기
상기 설정이라면 밖에서 오는 그룹은 잘 작동하지만 로컬 프로세스에서 발생하는 그룹은 잘 작동하지 않습니다.로컬 프로세스에서 생성된 그룹은 PREROUTING 검사를 통과하지 않기 때문입니다.대신 OUTEPUT 검사를 통과합니다.그래서 바깥쪽과 지방의 두 가지 측면에서 대응한다면 ↓는 그렇다.
/etc/sysconfig/iptables
*nat
:PREROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A PREROUTING -p tcp -d 10.0.0.81 --dport 80 -j REDIRECT --to-port 3001
-A OUTPUT -p tcp -d 10.0.0.81 --dport 80 -j REDIRECT --to-port 3001
-A PREROUTING -p tcp -d 10.0.0.80 --dport 80 -j REDIRECT --to-port 3000
-A OUTPUT -p tcp -d 10.0.0.80 --dport 80 -j REDIRECT --to-port 3000
-A OUTPUT -p tcp -d 127.0.0.1 --dport 80 -j REDIRECT --to-port 3000
COMMIT
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
# filter settings here...
COMMIT
OUTPUT 체인점으로 80판을 모두 다시 쓰면 외부 http에 접근할 수 없기 때문에 번거롭지만-d
자신의 IP를 모두 열거해 고칠 필요가 있다.DCT를 사용할 수도 있습니다.
DNTAT의 경우는 다음과 같습니다↓.
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination :3000
또한 DNS의 경우 IP도 포트와 함께 다시 쓸 수 있다.iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 10.0.0.90:3000
참고 자료nat 테이블의 프리로우팅 검사가 어디서 유효한지↓ 이 그림 등은 쉽게 알 수 있다.
Reference
이 문제에 관하여(iptables로 80번 포트에 도착한 그룹을 로컬 상급 포트로 전송합니다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kawaz/items/ed0030cb29c7d0497b63텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)