
내 임베디드 Linux 장치에는 두 개의 인터페이스가 있습니다 uap0
. 다른 장치가 Linux 장치에 연결하기 위한 액세스 포인트 역할을 합니다. 내 라우터에 대한 인터페이스입니다. 내 라우터가 인터넷에 연결되어 있습니다.eth0
uap0
eth0
인터페이스에 대한 세부정보:
uap0
- 172.24.100.1/24AP에 연결된 장치의 DHCP 범위: 172.24.100.50 - 172.24.100.100
eth0
- 192.168.1.26/24라우터 IP(예: 게이트웨이): 192.168.1.253
route add default gw 192.68.1.253
이것이 라우터의 IP이기 때문입니다. 172.24.100.1도 시도해봤습니다. 하지만 그것도 작동하지 않습니다.
sysctl.conf
파일에서 IPv4 전달을 허용했습니다 . 또한 iptables에 다음 항목을 추가했습니다.
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i eth0 -o uap0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i uap0 -o eth0 -j ACCEPT
평탄한 결과:
ping 172.24.100.50 -I uap0
---> 성공(.50은 AP에 연결된 장치 중 하나입니다)ping 8.8.8.8 -I uap0
---> 실패ping 192.168.1.26 -I uap0
---> 실패ping 172.24.100.1 -I eth0
---> 실패
AP에 장치를 연결할 때마다 장치가 인터넷에 액세스할 수 없습니다. 내가 온라인에서 접한 거의 모든 솔루션은 내가 이미 수행한 iptables에 항목을 추가하는 것을 제안합니다.
이전에 Raspberry Pi에서 AP+STA 모드를 구현한 적이 있습니다. RPi에서 dnsmasq와 Hostapd를 구성해야 합니다. 하지만 이것은 최소 Linux 시스템이므로 dnsmasq가 사전 설치되어 있지 않습니다. 또한 패키지 관리자가 예상대로 작동하지 않습니다.
녹색 부분은 리눅스 장치입니다.
sysctl의 출력: