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

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

eth1두 개의 인터페이스 가 있고 모든 트래픽이 다음과 같이 전달되기를 eth0원합니다 .eth0eth1

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

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

답변1

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

  • 열고 /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 체인을 사용하는 대신 수신/발신 인터페이스를 지정하여 이 체인에 규칙을 생성해야 합니다.

관련 정보