![iptables 원격 PC를 게이트웨이로 사용(모든 트래픽 전달)](https://linux55.com/image/126087/iptables%20%EC%9B%90%EA%B2%A9%20PC%EB%A5%BC%20%EA%B2%8C%EC%9D%B4%ED%8A%B8%EC%9B%A8%EC%9D%B4%EB%A1%9C%20%EC%82%AC%EC%9A%A9(%EB%AA%A8%EB%93%A0%20%ED%8A%B8%EB%9E%98%ED%94%BD%20%EC%A0%84%EB%8B%AC).png)
문제는 다음과 같습니다. ssh
로컬 인트라넷의 두 컴퓨터에 모두 액세스할 수 있습니다.
두 컴퓨터 모두에서 빠르고 안정적인 인터넷 액세스를 얻으세요.
인터넷 연결 속도를 높이기 위해 컴퓨터 PC1에서 PC2로 나가는 모든 트래픽을 전달하고 싶습니다.
다음은 이 상황에 대한 몇 가지 사실입니다.
- PC1은 네트워크의 다른 컴퓨터나 인트라넷의 이벤트에 전혀 액세스할 필요가 없습니다.
- PC1과 PC2는 제한 없이 쉽게 서로 통신할 수 있습니다(ping, ssh, tcp, udp).
- gw2는 다른 네트워크에 있고 액세스할 수 없기 때문에 PC1 게이트웨이로 사용할 수 없습니다.
- 필요에 따라 PC1과 PC2를 설정할 수 있습니다.
답변1
PC1에서 PC2까지 기본 라우팅을 수행합니다.
ip route add default via <PC2-IP>
PC2에서는
IPv4 패킷 전달을 허용합니다.
sysctl net.ipv4.ip_forward = 1
그런 다음 전달 및 가장을 위한 IPv4 IPtables 규칙을 설정합니다.
iptables -A FORWARD -4 -j ACCEPT
이는 FORWARD 체인의 기본 정책이 이미 삭제된 경우에만 필요합니다. 이전에 IPtables 구성을 수행한 적이 없다면 아마도 그렇지 않을 것입니다.
iptables -t nat -A POSTROUTING -4 -s <PC1-IP> -j MASQUERADE
PC2에 충돌하는 IPv4 IPtables 규칙이 없다면 이 정도면 충분합니다.
다음 명령을 사용하여 현재 IPv4 IPtables 규칙을 확인할 수 있습니다.
iptables -vnL
iptables -t nat -vnL
답변2
라우팅에 관한 내용입니다. PC2를 PC1의 기본 게이트웨이로 설정하기만 하면 됩니다. 또한 gw2가 응답 패킷을 PC2로 보내도록 PC2에서 iptables
구성 해야 할 수도 있습니다.SNAT
빠른 네트워크 연결 외에 느린 네트워크 연결을 사용하려는 경우 상황이 더 복잡해집니다.