두 인터페이스 간에 패킷을 전달하는 방법은 무엇입니까?

두 인터페이스 간에 패킷을 전달하는 방법은 무엇입니까?

내 노트북(Ubuntu 13.10 사용)은 eth0IP를 통해 유선 연결을 사용하여 인터넷에 연결되어 있으며 IP를 통해 AT 192.168.42.13역할도 합니다 (AP를 설정하기 위해 airbase-ng를 사용했습니다). 이제 해당 Wi-Fi에 연결해야 하는 Android 장치가 있습니다. 내 안드로이드가 내가 설정한 서버 에 연결하여 다음 네트워크 설정을 수신할 수 있는 것을 확인했습니다 . (저는 도구 호출을 사용했습니다.wifi hotspotwlan0192.168.1.1hotspotdhcp순 정보 IIPlayStore에서 내 Android에 대한 아래 세부정보를 확인하세요.

# My android network settings (connected to the wlan0 of my laptop):
ip address: 192.168.1.10
subnetmask: 255.255.255.0
gateway   : 192.168.1.254
ap-mac    : xx:xx:xx:xx:xx:xx

# My pc's eth0 configuration
ip address: 192.168.42.13
submetmask: 255.255.255.0
gateway   : 192.168.42.129
iface mac : yy:yy:yy:yy:yy:yy

# My pc's wlan0 (hotspot interface) configuration
ip address: 192.168.1.1
subnetmask: 255.255.255.0
gateway   : 192.168.1.1
iface mac : zz:zz:zz:zz:zz:zz

이 스레드여기비슷한 문제에 대해 이야기합니다. 무선 AP 장치를 인터넷에 연결하려면 네트워크 eth0간에 패킷을 전달해야 한다는 것을 알았습니다 . wlan0지금수신한 패킷을 어떻게 전달 wlan0 to eth0하고 eth0 to wlan0장치를 인터넷에 연결합니까?

답변1

먼저 시스템에서 IP 전달을 활성화해야 합니다. 이번 한 번만 수행하려면 다음을 사용하세요.

sysctl -w net.ipv4.ip_forward=1

또는

echo 1 > /proc/sys/net/ipv4/ip_forward

루트로. 영구적으로 만들고 싶다면 편집하세요.

/etc/sysctl.conf

다음을 포함하는 줄을 추가합니다.

net.ipv4.ip_forward = 1

재부팅하거나 실행할 때 적용됩니다.

sysctl -p /etc/sysctl.conf

이 작업이 완료되면 NAT 연결이 필요할 수 있습니다. 라우터가 192.168.1.0/24 네트워크가 192.168.42.13을 통해 액세스할 수 있다는 사실을 알 가능성이 거의 없기 때문입니다. 192.168.42.13이 정적이면 다음을 사용할 수 있습니다.

iptables -t nat -A POSTROUTING -i wlan0 -s 192.168.1.0/24 -j SNAT --to-source 192.168.42.13

그렇지 않으면 사용

iptables -t nat -A POSTROUTING -i wlan0 -s 192.168.1.0/24 -j MASQUERADE

을 체크 해봐우분투 Iptables방법재부팅할 때 해당 규칙을 저장하는 방법에 대해 알아보세요.

관련 정보