두 개의 인터페이스 eth1
가 eth0
있습니다. 에 대한 모든 트래픽 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 체인을 사용하는 대신 어떤 인터페이스가 들어오고 나가는지를 지정하는 규칙을 해당 체인에 만들어야합니다.