사용자 공간(apt, GNU 도구 및 chroot에서 실행되고 ssh를 통해 액세스할 수 있는 기타 소프트웨어)에서 Debian 시스템을 실행하는 Android 휴대폰에서는 라우팅 테이블이 불완전한 것 같습니다.
출력 ip route -all -details show
:
unicast 192.168.2.0/24 dev wlan0 proto kernel scope link src 192.168.2.108
unicast 192.168.43.0/24 dev p2p-p2p0-0 proto kernel scope link src 192.168.43.1
출력 ip route get 1.1.1.1
:
1.1.1.1 via 192.168.2.1 via ??? ??? dev wlan0 src 192.168.2.108
cache
그거 어디서 났어 192.168.2.1
? 이는 실제로 올바른 게이트웨이이지만 라우팅 테이블 출력에는 표시되지 않습니다. 외부 주소에도 연결할 수 있습니다.
내 정신 상태에 대해 의문을 품고 다른 도구를 사용해 보았고 동일한 결과가 나왔을 때 커널에 직접 물어볼 수 있는 방법을 찾았습니다.
$ route -v
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0
192.168.43.0 0.0.0.0 255.255.255.0 U 0 0 0 p2p-p2p0-0
$ cat /proc/net/route
Iface Destination Gateway Flags RefCnt Use Metric Mask MTU Window IRTT
wlan0 0002A8C0 00000000 0001 0 0 0 00FFFFFF 0 0 0
p2p-p2p0-0 002BA8C0 00000000 0001 0 0 0 00FFFFFF 0 0 0
장치는 "WiFi 브리지" 모드에서 실행 중이며 WiFi 네트워크에 연결하고 동시에 핫스팟을 제공하므로 두 개의 로컬 네트워크가 있습니다. 커널은 다음과 같습니다
$ uname -a
Linux localhost 4.1.18-g0fcbc9f #1 SMP PREEMPT Thu Dec 28 10:57:06 CST 2017 armv7l GNU/Linux
이 마법의 기본 경로는 어디서 오는 걸까요?
답변1
표준 ip route
프로그램은 옵션을 모르므 -all
로 -details
여기에 Android 전용 버전이 있을 수 있습니다.
테이블에는 기본 라우팅 항목 이외의 라우팅 항목이 있을 수 있습니다.
ip
명령이 표준을 준수한다고 가정하고 ip
다음을 실행하십시오.
ip rule
최소한 테이블 목록이 표시되어야 합니다.
0: from all lookup local
32766: from all lookup main
32767: from all lookup default
그럼 하나하나 확인해보실 수 있어요
ip route show table 32767
위 목록의 테이블 번호 등이 추론됩니다.