iptables는 모든 트래픽을 인터페이스로 전달


14

두 개의 인터페이스 eth1가 eth0있습니다. 에 대한 모든 트래픽 eth0을 (으)로 전달 하고 싶습니다 eth1. 다음과 같이 iptable 규칙을 만들었습니다.

iptables -A FORWARD -s 0/0 -i eth0 -p tcp -o eth1 -j ACCEPT

그러나 이것은 작동하지 않습니다. 이것이 올바른 방법입니까?

답변:


22

커널에서 포워딩을 아직 활성화하지 않았다면 그렇게하십시오.

  • 개방 /etc/sysctl.conf및 주석 해제net.ipv4.ip_forward = 1

  • 그런 다음 실행 $ sudo sysctl -p

다음 규칙을 추가하십시오. iptables

sudo iptables -t nat -A POSTROUTING --out-interface eth1 -j MASQUERADE  
sudo iptables -A FORWARD --in-interface eth0 -j ACCEPT

전달 된 모든 트래픽은 FORWARD 체인을 통과합니다. 패킷을 필터링하려면 INPUT / OUTPUT 체인을 사용하는 대신 어떤 인터페이스가 들어오고 나가는지를 지정하는 규칙을 해당 체인에 만들어야합니다.

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