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

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

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

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



답변

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

  • 개방 /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 체인을 사용하는 대신 어떤 인터페이스가 들어오고 나가는지를 지정하는 규칙을 해당 체인에 만들어야합니다.


답변