IP가 10.0.0.1인 USB0 인터페이스가 있고 인터넷에 액세스할 수 없는 10.0.0.2에 라우터가 있습니다. 또한 wlan0에 192.168.0.3 Wi-Fi 어댑터가 있고 라우터 192.168.0.1(인터넷에 연결되어 있음)에 연결되어 있습니다. wlan0에서 usb0 인터페이스로 트래픽을 릴레이하는 방법은 무엇입니까? 두 인터페이스가 모두 동일한 장치에 존재합니다.
iptables를 사용하고 IP 전달을 활성화해 보았습니다.
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o usb0 -j MASQUERADE
iptables -A FORWARD -i usb0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i wlan0 -o usb0 -j ACCEPT
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
iptables -A FORWARD -i wlan0 -o usb0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i usb0 -o wlan0 -j ACCEPT
내가 시도하면
ping -I wlan0 google.com
그러면 응답을 받지만 시도하면
ping google.com
그랬더니 아무 대답도 못 받았어요.
wlan0
바람직하게는 트래픽이 으로 라우팅되기를 원 하지만 어떻게든 이를 기본 인터페이스로 usb0
설정할 수 있다면 ( 예: 이를 사용하여) 그것도 괜찮습니다.wlan0
pacman -Syu
어떤 도움이라도 대단히 감사하겠습니다!
답변1
예, wlan0의 WiFi 어댑터에서 USB0의 다른 네트워크가 있는 시스템으로 트래픽을 NAT하고 싶습니다.
일반적으로 이를 다른 방식으로 표현합니다. 즉, usb0
트래픽이 ("내부 인터페이스") wlan0
나머지 세계로 갈 때 NAT를 원합니다.
따라서 위장은 외부 인터페이스에서만 수행할 수 있습니다 wlan0
.
EXTIF=wlan0
INTIF=usb0
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -A FORWARD -i $EXTIF -o $INTIF -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $INTIF -o $EXTIF -j ACCEPT
iptables -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE
마지막 줄이 중요합니다. 실제 NAT를 수행합니다. 나머지는 필터링하고 흥미로운 내용이 내부 네트워크에 전달되지 않도록 하는 것입니다( usb0
).
(규칙이 여전히 유효한 경우 위 작업을 수행하기 전에 모든 규칙을 삭제해야 합니다.)