Ubuntu의 iptables에서 포트 전달을 설정하는 방법은 무엇입니까?

Ubuntu의 iptables에서 포트 전달을 설정하는 방법은 무엇입니까?

이 인용문에서 이를 수행하는 방법을 설명해야 하지만 이해가 되지 않습니다.

다음으로 모든 http 요청(포트 80으로 오는)을 Squid 서버 포트 3128로 전달하기 위해 다음 규칙을 추가했습니다.

iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j DNAT --to 192.168.1.1:3128
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128

~와 함께

iptables -t nat -A PREROUTING -i venet0 -p tcp --dport 80 -j DNAT --to 127.0.0.1:3128
iptables -t nat -A PREROUTING -i venet0:0 -p tcp --dport 80 -j REDIRECT --to-port 3128

이것은 작동해야 하지만 작동하지 않습니다. 내 iptables내용은 비어 있으며 /etc/network/interface다음과 같습니다.

auto lo
iface lo inet loopback
    address 127.0.0.1
    netmask 255.0.0.0
    broadcast 127.255.255.255
    up ip route replace 127.0.0.0/8 dev lo
# Auto generated venet0 interfaces
auto venet0
iface venet0 inet static
    address 127.0.0.1
    netmask 255.255.255.255
    broadcast 0.0.0.0
    up route add default dev venet0
iface venet0 inet6 static
    address ::2
    netmask 128
    up ip -6 r a default dev venet0
    up ip addr add {...externalIPv6...} dev venet0
auto venet0:0
iface venet0:0 inet static
    address {...externalIP...}
    netmask 255.255.255.255

답변1

(아직 희망적으로는) 그렇지는 않지만 답변, 이벤트로 이것을 시작하겠습니다. 내가 이렇게 하는 이유는 이 문제를 해결하려면 여러 번의 반복이 필요하다고 믿기 때문입니다.

iptables 규칙은 괜찮아 보이지만 /etc/network/interfaces 파일에는 몇 가지 문제가 있다고 생각합니다. 어딘가에서 복사했습니까, 아니면 필요에 맞게 조정했습니까?

내가 본 문제는 다음과 같습니다.

  1. 루프백 인터페이스를 지정하는 이유는 무엇입니까? 일반적으로 스탠자의 처음 두 줄은 괜찮습니다.
  2. 동일한 인터페이스인 venet0에 두 개의 주소를 할당합니다.
  3. 첫 번째 venet0 스탠자의 넷마스크는 너무 제한적이며 브로드캐스트 주소와 일치하지 않습니다.
  4. venet0의 두 번째 스탠자에는 외부 IPv6 주소와 ::2라는 두 개의 주소가 할당되어 있습니다.
  5. venet0의 스탠자에서 넷마스크는 너무 제한적입니다.
  6. 동일한 인터페이스인 venet0/venet0:0에는 루프백 주소와 외부 주소가 모두 할당되어 있습니다. 요점은 무엇입니까?

VMWare로 무엇을 하려는지 알려주시면 도움이 될 것입니다. 지금은 헤매고 있습니다.

관련 정보