恩山无线论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 39001|回复: 568

甜糖安卓upnp无效未配置网络之端口转发“救世”篇

    [复制链接]
发表于 2020-12-7 14:58 | 显示全部楼层 |阅读模式
本帖最后由 xjx03 于 2020-12-28 15:37 编辑

就我目前来看,端口转发比upnp,dmz什么的都有效的多。难点就是找到甜糖的监听端口,armbian或者docker已经有很多帖子了,我在这里只简单提一下


12.26更新一部分命令,主要是为了过滤和筛选以减少在大片输出里找答案的时间,但是由于设备的不同支持的命令也不一样,所以不一定通用,故而无法写成shell直接给大家一键执行。如果你能够正常执行自动或者半自动的命令,你可以直接跳过普通步骤,那将大大减少你的工作量和保护你的眼睛。
1.如果你是直接在armbian跑的糖,比如5.67版本的armbian因为内核太老不能安装docker,只能直接跑
那么在通过ssh连上设备以后输入
12.26一步到位版(直接显示你最终要转发的端口)
  1. netstat -nlp |grep ttnode|grep -Ev '127.0|tcp6|17331' |awk '!a[$4]++{print $4}' |sed 's/0.0.0.0://'
复制代码
11.PNG
12.26显示完全版(具体显示你最终要转发的端口和类型)

  1. netstat -nlp |grep ttnode|grep -Ev '127.0|tcp6|17331' |awk '{print $1,$4}' |sed 's/0.0.0.0://'
复制代码
12.PNG
以上虽然很方便,但是由于设备的不同,可能会出现部分命令不支持的情况,如果你执行出错,请按照下面的步骤一步步来
  1. netstat -nlp |grep ttnode
复制代码
你会看到这样的界面
捕获.PNG

这就是甜糖服务端在使用的端口。其中65432和17331是所有的服务端相同的不用做传输端口,抛开不管,剩下的必然有两对端口号一样的端口,这个端口每个人都不同,也是我们要进行端口转发的端口,为什么会出现一样的呢,因为后面带Listen的是tcp监听端口,不带的是Udp监听端口,填写端口转发的时候两种类型都要转发,剩下的就是分别是一个tcp独立的监听端口和一个udp独立的端口,不去深究做什么用,但是这两个端口在不同的设备上不一样我们还是要转发一下以防万一的。总结:转发四个端口,拿上图举例,两个成对的端口46444,63342,同时转发tcp和udp,两个独立的端口,38948,36392,38948带listen是tcp,另一个udp。端口转发在你设备连接的路由器里进行转发,不同的设备界面不同,我就不举例子了。

2.docker版你需要先进入容器再执行上面的指令。比如你的容器名叫做ttnode,那么
  1. docker exec -it ttnode /bin/bash
复制代码
再执行(可以参照第1步执行一步到位版)
  1. netstat -nlp |grep ttnode
复制代码
之后就和第一步一样了。
3.x86跑甜糖如果执行(可以参照第1步执行一步到位版)
  1. netstat -nlp |grep ttnode
复制代码
没有输出端口就执行(可以参照第1步执行一步到位版,替换ttnode为qemu即可)
  1. netstat -nlp |grep qemu    #因为x86要用qemu模拟arm环境跑arm版本的甜糖
复制代码
其他的也和上面一样

Tips:5.67线刷版的armbian如果出现时间不同步,网络ping不通的情况,请更改dns,即用编辑器更改/etc/resolv.conf文件,将里面的1.1.1.1改成阿里的dns或者114.


重头戏:安卓在upnp和dmz都失效的情况下怎么找端口

1.需要安卓ADB调试工具。adb功能强大,指令繁多,这里就只讲必须步骤。
   1)下载adb工具,网上都有打包好的,我就不说了,搜adb下载即可
   2)运行adb,解压以后基本就是这几个文件,其中只有箭头指的三个是我们需要的
               捕获3.PNG

             adb可以配置环境变量,这样在执行的时候就可以用adb代替长长的执行路径,但由于我们只是临时用用,省去这些繁琐的步骤。真正的步骤是在解压的文件夹空白处按住shift后右键选择打开powershell
             捕获4.PNG 捕获5.PNG

   3)连接安卓。像手机一样打开你的安卓设备的开发者模式-usb调试功能,有wifi调试选项的也打开。这个不细讲,太简单了,不会百度一下。如果你是手机,你可以直接用线连接电脑跳过接下来这条指令,如果安卓设备无法直接通过数据线直连使用adb的可以用wifi adb连接的方式。在刚刚的powershell输入(usb直连不需要输入)
  1. ./adb connect 安卓设备的ip
复制代码

      你会看到
             捕获6.PNG
     表示已经连接(connected)
  1. ./adb devices    #验证你的设备已经连接
复制代码
捕获.PNG
如果显示connected但返回的devices后面有offline,请重新关闭usb调试再开启,再重复上面的步骤,依然不行你就需要root然后以su的权限重启adbd服务(希望你们不要遇到这种情况).安卓有个很不错的adb管理应用叫做“ADB安装工具箱.apk”你们可以装进安卓里进行调试。
  4)进入shell,接下来都是命令比较繁杂的,解释起来麻烦,我就简要说了
安装甜糖服务端就不教了,用adb也可以安装,在进入shell之前用,
  1. ./adb install /路径/甜糖.apk        #windows路径用反斜杠"",已经安装了app的不需要执行这一条,这一条必须在./adb shell之前执行
复制代码
搞不定的你原来怎么装还是怎么装。装好以后打开app,启动甜糖,放置。回到Powershell
进入adb shell 执行
  1. ./adb shell
复制代码

12.27更新:有人反馈说复杂看不懂,那就讲点无脑的,但是准确性就不保证了,之前的照做一样,从这里开始你的步骤可以简化成:
依次尝试下面的半自动方案1/2/3(绿色字),哪个能用用哪个,只要找出两对重复的端口即可,假如重复端口是12345和54321,那么用win10自带计算器程序猿模式从10进制(DEC)转换成16进制(HEX)是3090和D431,通过以下两条命令找到uid
  1. cat /proc/net/tcp|grep 3090
  2. cat /proc/net/tcp|grep D431
复制代码
执行两条命令以后获得的uid如果是一样的,那么记录下这个uid,比如说uid是10017。那么你要转发的tcp端口是(注意命令替换10017为你自己的uid)
  1. cat /proc/net/tcp|grep -Ev 'A8C0:|007F:|43B3' |grep 10017
复制代码
你要转发的UDP端口是(注意命令替换10017为你自己的uid)
  1. cat /proc/net/udp|grep -Ev 'A8C0:|007F:|43B3' |grep 10017
复制代码
将得到的16进制端口用计算器转化为10进制即是你要转发的端口,16进制端口长这样



进入adb shell以后,老节奏,我们来找端口,列出所有在用的端口12.26更新
半自动方案1
  1. netstat -anp |grep -Ev '127.0|tcp6|17331|192.1|udp6' |awk '{print $1,$4}' |sed 's/0.0.0.0://’
复制代码
如果提示不支持awk请用
半自动方案2
  1. netstat -anp |grep -Ev '127.0|tcp6|17331|192.1|udp6' |sed 's/0.0.0.0://g;s/*//'
复制代码
13.PNG 1226重装过所以截图端口变了,请和之前的图做好区分
如果提示不支持sed请用
半自动方案3
  1. netstat -anp |grep -Ev '127.0|tcp6|17331|192.1|udp6'
复制代码
14.PNG 1226重装过所以截图端口变了,请和之前的图做好区分


到这里你如果已经完成了所有绿字部分内容就不需要往下看了,当然邀请码690424还是可以填的

如果上面的都不行请按照下面步骤老老实实做(看花眼睛也没办法)
  1. netstat -anp
复制代码

       如下
       捕获7.PNG

由于安卓的运行方式类似每个app都是一个独立的容器的方式,所以netstat不会显示具体占用端口的是哪个Activity。但是还是有迹可循的,还记得上面提到的两对相同的端口吗?大概率就是了,那么其他的端口呢?来进行下一步,通过端口找进程,把端口24825转换成16进制是60F9,43168是A8A0.转换这个可以用win10自带的计算器的程序员模式
捕获11.PNG
然后执行
12.26半自动版本
  1. cat /proc/net/tcp|grep -Ev 'A8C0:|007F:'       #“A8C0:|007F:”不用替换,这个只是筛去192和127开头的地址,直接复制黏贴执行
复制代码
15.PNG 这是12.26的图,期间我卸载重装了所以端口变了,步骤没变,请和之前的做好区分

脚踏实地的步骤看下面
  1. cat /proc/net/tcp
复制代码

         捕获8.PNG

这是tcp的连接情况,localaddress那一列是16进制的ip地址和端口,比如00000000 A8A0 就是0.0.0.0:43168,0100007F是127.0.0.1,A200A8C0则是192.168.0.162(我的安卓ip,这里等价于之前的127.0.0.1).找到60F9和A8A0两个端口对应的程序uid是10017,uid超过10000的就是app,uid-10000=appid。
  5)验证是否是甜糖的uid
我们再来查uid对应的程序包名
12.26一步到位版
  1. ps |grep tiantang     #对比UID(10017) - 10000 = USER(u0_a17)
复制代码
16.PNG

正常步骤
  1. ps         #输入ps命令回车查看对应的进程信息
复制代码

       捕获9.PNG
  1. 这行不是命令,只是解释:UID(10017) - 10000 = USER(u0_a17),对应PID为32402  可以看到后面确实是甜糖的进程
复制代码
6)反推端口
1226到位版
  1. cat /proc/net/tcp|grep -Ev 'A8C0:|007F:|43B3' |grep 10017   #这里的10017要替换成你自己的uid
复制代码
  1. cat /proc/net/udp|grep -Ev 'A8C0:|007F:|43B3' |grep 10017   #这里的10017要替换成你自己的uid
复制代码
17.PNG 1226重装过所以截图端口变了,请和之前的图做好区分
普通版
  1. cat /proc/net/tcp |grep 10017               #搜索过滤uid为10017的进程使用的tcp端口
复制代码
  1. cat /proc/net/udp |grep 10017              #搜索过滤uid为10017的进程使用的udp端口
复制代码


捕获10.PNG
去掉不是0.0.0.0的行,可得          TCP   A8A0      60F9     BCBA     UDP   A8A0    60F9    43B3
分别对应十进制的端口号             TCP   43168    24825    48314    UDP  43168   24825   17331
17331是每台设备相同的不需要映射。可以再结合第一张
捕获7.PNG

加上一个UDP 11021.可加可不加,因为在udp连接里没有

总结需要转发的端口是TCP 43168 24825 48314 UDP 43168 24825 11021。

一般转发好等待不超过15分钟即可优质网络,前提你本身就是公网或者NAT1.

好用请填写我的邀请码:690424










捕获7.PNG
17.PNG

评分

参与人数 4恩山币 +5 收起 理由
云帆 + 2 感谢你的分享,无论怎样,你都是最无私的人!来,说说,你E盘上还有啥一起给我吧!
hnxjc + 1 我碰到的问题是,成对的端口重启不会变,不成对的2个端口重启一次变一次,怎么办?难.
diehou + 1 感谢你的分享,无论怎样,你都是最无私的人!来,说说,你E盘上还有啥一起给我吧!
shinesky + 1 感谢你的分享,无论怎样,你都是最无私的人!来,说说,你E盘上还有啥一起给我吧!

查看全部评分

我的恩山、我的无线 The best wifi forum is right here.
发表于 2020-12-7 15:18 | 显示全部楼层
看看。。。。
我的恩山、我的无线 The best wifi forum is right here.
发表于 2020-12-7 15:19 | 显示全部楼层
感谢楼主的分享
我的恩山、我的无线 The best wifi forum is right here.
发表于 2020-12-7 16:47 | 显示全部楼层
谢谢
谢谢
谢谢
谢谢
我的恩山、我的无线 The best wifi forum is right here.
发表于 2020-12-7 17:05 | 显示全部楼层

谢谢
谢谢
谢谢
谢谢
我的恩山、我的无线 The best wifi forum is right here.
发表于 2020-12-7 21:45 | 显示全部楼层
非常感谢楼主
我的恩山、我的无线 The best wifi forum is right here.
发表于 2020-12-7 21:51 | 显示全部楼层
群晖docker运行是不是也可以啊,我试试
我的恩山、我的无线 The best wifi forum is right here.
发表于 2020-12-7 23:06 | 显示全部楼层
纳尼?貌似很给力的样子!!...
我的恩山、我的无线 The best wifi forum is right here.
发表于 2020-12-8 00:00 | 显示全部楼层
找安卓的找了好久了
我的恩山、我的无线 The best wifi forum is right here.
发表于 2020-12-8 00:08 | 显示全部楼层
必须顶一下
来自安卓客户端来自安卓客户端
我的恩山、我的无线 The best wifi forum is right here.
发表于 2020-12-8 00:25 | 显示全部楼层
最近就是这个问题
我的恩山、我的无线 The best wifi forum is right here.
发表于 2020-12-8 01:03 | 显示全部楼层
看一下怎么样
来自安卓客户端来自安卓客户端
我的恩山、我的无线 The best wifi forum is right here.
发表于 2020-12-8 09:19 | 显示全部楼层
帖隐藏内容请回复
我的恩山、我的无线 The best wifi forum is right here.
发表于 2020-12-8 10:45 | 显示全部楼层
RE: 甜糖安卓upnp无效未配置网络之端口转发“救世”篇 [修改]
我的恩山、我的无线 The best wifi forum is right here.
发表于 2020-12-8 11:39 | 显示全部楼层
学习一下
我的恩山、我的无线 The best wifi forum is right here.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )|网站地图

GMT+8, 2021-10-19 16:53

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表