간단한 포트 포워딩


19

리버스 프록시와 두 번째 서버를 설정하려고하는데 약간의 문제가 있습니다. 내 생각은 방화벽이 https를 리버스 프록시로, 포트 29418 (gerrit ssh)을 두 번째 서버로 전달하도록하는 것이었다. 이제 내 협력 IT 담당자의 말 : CAN NOT! 두 포트 모두 서버 1로 이동하거나 두 포트 모두 서버 2로 이동합니다.

좋아, 해결 방법으로 포트 29418의 리버스 프록시에서 포트 전달을 설정하려고했습니다-> server2 : 29418

세부:

  • 서버 1 IP : Ubuntu 12.04.2 LTS의 10.0.0.132 및 192.168.10.2
  • Ubuntu 12.04.2 LTS의 Server2 IP : 10.0.0.133 및 192.168.10.3

이제 https와 포트 29418이 모두 방화벽에서 10.0.0.132로 이동했으며, 이것이 유일한 방법이라고 IT는 말합니다. :(

따라서 10.0.0.132:29418-> 192.168.10.3:29418 또는 10.0.0.133:29418에서 전달하는 방법을 알려주십시오.

10.0.0.132에서 작업 할 때 10.0.0.133:29418 및 192.168.10.3:29418에 모두 연결할 수 있으므로 포트가 열려 있습니다.

-업데이트-

내 iptables -t nat -L은 다음과 같습니다.

root @ dev : / root # iptables -t nat -L
체인 PREROUTING (정책 수락)
대상 단백질 소스 대상 선택
DNAT tcp-어디서나 dev.example.com tcp dpt : 29418 to : 10.0.0.133

체인 입력 (정책 수락)
대상 단백질 소스 대상 선택

체인 출력 (정책 수락)
대상 단백질 소스 대상 선택

체인 POSTROUTING (정책 수락)
대상 단백질 소스 대상 선택
root @ dev : / root # cat / proc / sys / net / ipv4 / ip_forward
1

답변:


32

다른 사람이 실제로 작동하는 방법을 찾고있는 경우. @HorsePunchKid가 그의 제안에 옳았지만 누락 된 단계를 채우는이 연습을 발견했습니다.

http://www.debuntu.org/how-to-redirecting-network-traffic-to-a-new-ip-using-iptables/

본질적으로:

IP 전달 활성화 :

sysctl net.ipv4.ip_forward=1

전달 규칙을 추가하십시오 (nnnn : port 사용).

iptables -t nat -A PREROUTING -p tcp -d 10.0.0.132 --dport 29418 -j DNAT --to-destination 10.0.0.133:29418

가장 무도회에 IPtables를 요청하십시오 :

iptables -t nat -A POSTROUTING -j MASQUERADE

그리고 그게 다야! 그것은 어쨌든 나를 위해 일했습니다 :)


1
이것이 내가이 주제에서 찾은 최고의 답변입니다.
Victor Piousbox

이 솔루션을 사용한 후 Docker 컨테이너에서 연결이 끊어졌습니다. 규칙을 삭제해야했습니다. 규칙이 작동했지만 다른 모든 트래픽이 손실되었습니다. 나는 이것을 권장하지 않습니다.
다이 인

iptables -t nat -A POSTROUTING -j MASQUERADE오 와우 ... 그게 다야, 고마워! 웹을 검색하고 알아내는 데 몇 시간을 소비했습니다. 이것은 너무 간단하고 작동합니다.
shrimpwagon

7

iptables가 10.0.0.132에 설치되어 있다면 이것이 매우 간단하다고 생각합니다.

iptables -t nat -A PREROUTING -j DNAT -d 10.0.0.132 -p tcp --dport 29418 --to 10.0.0.133

이것은 10.0.0.132가 시도하는 다른 라우팅 이전에 포트 29418에서 10.0.0.132로 들어오는 트래픽을 동일한 포트에서 대신 10.0.0.133으로 보내는 것을 말합니다. 이 명령을 실행하여 문제가 발생하면 -A 플래그를 -D로 바꾸어 제거하십시오.

10.0.0.132를 시작할 때이 규칙을 자동으로 실행하려면 / etc / network / interfaces에서 "post-up"규칙으로 위 명령을 추가하십시오.


정확히 내가 한 일이지만 작동하지 않았습니다. /etc/sysctl.conf에서 net.ipv4.ip_forward = 1의 주석 처리를 제거했지만 10.0.0.132:29418
uncletall

6

누군가 임시 방법을 검색하는 경우 아래 해결책을 시도하십시오.

    ssh -L 192.168.0.10:8080:10.0.0.10:80 root@10.0.0.10

위의 명령은 기본 컴퓨터의 포트 8080에 대한 모든 연결을 가상 컴퓨터의 80 포트로 리디렉션합니다. 웹 페이지 http://192.168.0.10:8080 에 액세스하여 작업을 테스트 할 수 있으며 게스트 머신의 웹 페이지가 표시됩니다.

이것은 모든 포트에 적용됩니다 :)


0

결국 우분투에서 작동하지 못하도록 트래픽을 다른 VM으로 라우팅하기 위해 ESXi 서버 내부에 라우터로 pfSense를 설치해야했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.