heiher / natmap

TCP/UDP port mapping for full cone NAT
MIT License
1.37k stars 102 forks source link

在Android上执行时发生了错误 #47

Closed KonpakuSyl closed 8 months ago

KonpakuSyl commented 8 months ago

x1q:/data/local/tmp $ ./natmap-linux-arm64 -s stunserver.stunprotocol.org -h example.com -b 80 [E] get_addr src/hev-sock.c:40 [E] hev_sock_client_tcp src/hev-sock.c:125 [E] tnsk_run src/hev-tnsk.c:103 Start TCP keep-alive service failed. [E] get_addr src/hev-sock.c:40 [E] hev_sock_client_tcp src/hev-sock.c:125 [E] tnsk_run src/hev-tnsk.c:103 Start TCP keep-alive service failed. [E] get_addr src/hev-sock.c:40 [E] hev_sock_client_tcp src/hev-sock.c:125 [E] tnsk_run src/hev-tnsk.c:103 Start TCP keep-alive service failed. ^C

Android9 和13都是这样,adb shell中执行,没有root权限

heiher commented 8 months ago

adb shell没有权限访问网络解析域名?

KonpakuSyl commented 8 months ago

adb shell没有权限访问网络解析域名?

可以的 newton:/data/local/tmp $ wget www.baidu.com Connecting to www.baidu.com (183.2.172.185:80) index.html 100% |***| 2381 0:00:00 ETA newton:/data/local/tmp $

newton:/data/local/tmp $ nslookup baidu.com Server: 0.0.0.0 Address 1: 0.0.0.0

Name: baidu.com Address 1: 110.242.68.66 Address 2: 39.156.66.10

heiher commented 8 months ago

试试将wget或nslookup拷贝到/data/local/tmp目录看看还有没有权限。

KonpakuSyl commented 8 months ago

试试将wget或nslookup拷贝到/data/local/tmp目录看看还有没有权限。

在目录下的

1|newton:/data/local/tmp $ ./nslookup baidu.com Server: 0.0.0.0 Address 1: 0.0.0.0

Name: baidu.com Address 1: 39.156.66.10 Address 2: 110.242.68.66 newton:/data/local/tmp $ l nslookup -rwxr-xr-x 1 shell shell 676K 2024-02-25 13:46 nslookup

heiher commented 8 months ago

好的,我找个环境测试下。

heiher commented 8 months ago

确认了由CI构建出的静态链接了musl libc的版本无法直接在Android系统上使用。有两个解决方法:

  1. 安装Termux,在Android上原生编译。
  2. 使用Android NDK在开发环境上交叉编译。
KonpakuSyl commented 8 months ago

确认了由CI构建出的静态链接了musl libc的版本无法直接在Android系统上使用。有两个解决方法:

  1. 安装Termux,在Android上原生编译。
  2. 使用Android NDK在开发环境上交叉编译。

我手动ndk编译可以用了,感谢