TCP 掉包怎么办?

57 天前
 tool2d
现在安卓手机的 adb wifi tcp 端口,每一次打开都会变。我网上搜了一圈,非 ROOT 的情况下,只能暴力搜索端口号。

于是,我就写了一个异步连接 TCP 的端口查询工具。但是,每次执行结果,总会有几个端口会遗漏。(比如 PC 或手机,开了 23 ~ 24 个 TCP 监听端口,每次扫描得到的是 22 个左右,总会漏几个,还不固定)

我就开始查原因,确认 TCP 端口打开似乎并没有太好的办法。如果对方响应 tcp connect ,那么程序就会收到确认包。如果不响应,过 5 秒超时,就假定端口是关闭的。

那么问题来了,假设我一瞬间发送了 1 万个 TCP 异步请求,那我怎么确认,网卡没有掉 TCP 包呢?
703 次点击
所在节点    问与答
4 条回复
ysc3839
57 天前
直接用 nmap 扫描不行吗?为何一定要自己实现?
ho121
57 天前
adb tcpip 5555
执行以后端口就不会变了
tool2d
57 天前
@ysc3839 我还以为程序会很简单,无非是发个包收个包的事情,没想到最后掉大坑里了。
tool2d
45 天前
@ho121 这个命令,在设备重启后,TCP 端口会关闭。

找到一个方法可以自动开启,用 ssh 辅助一下,adb connect 之前,先执行一下

sudo setprop service.adb.tcp.port 5555;sudo stop adbd;sudo start adbd

就可以了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1024060

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX