安卓监听端口能让局域网的其他设备实时访问吗?

2021-01-07 17:43:02 +08:00
 zictos
试过用 SSHDroid 把 Android 当成 SSH 服务,但电脑有时候能通过 ssh 访问安卓,有时候不能访问。
安卓有休眠机制,但网络会休眠吗? 22 端口有访问的时候不能唤醒设备吗?

或者自己在安卓上弄一个 ftp 服务器监听 21 端口,能让 21 端口实时访问吗?同时又希望在长期没有其他设备访问的时候又基本不增加耗电。
9587 次点击
所在节点    Android
10 条回复
linhua
2021-01-07 17:54:31 +08:00
国产安卓系统会限制后台程序的运行,在应用程序设置里 设置成 不限制 就可以了。
小米的是在 应用设置--省点策略 里,如果设置成 智能限制后台运行,则不接电源,过一会就不能访问,如果接通电源,则一直可访问。 设置成 无限制,不管是否接通电源,始终可访问。
zictos
2021-01-07 17:58:41 +08:00
@linhua #1
我是三星的,已经把 SSHDroid 设为自动运行,取消电池优化以及取消手机自带的省电。
我其他需要保持后台运行的软件都是这么设置的,像 tasker 都可以保持长期后台运行。

但我发现 SSHDroid 其实并不需要后台,他运行的时候在进程看到实际是运行了一个 shell 脚本,即便把 SSHDroid 的后台关掉或者强制结束,但 ssh 服务依然可用,只是屏幕关掉一段时间后就很可能无法连接了,屏幕开启后不需要再次启动又能直接连接。
zictos
2021-01-07 18:00:19 +08:00
@linhua #1 很多后台运行的程序也会休眠的,需要自己定时唤醒,所以做不到实时
tanranran
2021-01-07 18:03:07 +08:00
root 后把应用转为系统应用
Jirajine
2021-01-07 19:25:42 +08:00
和应用后台没关系吧。adbd 是系统进程,我用 adb shell,手机息屏以后反应也非常慢,亮屏才能恢复正常。应该与 Android 内核专门的调度有关。
zictos
2021-01-08 00:52:23 +08:00
@tanranran #4 如果是自己运行 shell 脚本是只需要把 shell 脚本移到 /system/bin 目录下吗?
试了用幸运破解器把 SSHDroid 移到系统目录,实际只是把 apk 移到了 /system/priv-app 下,但 data/data 下的数据还在原来的地方,而 SSHDroid 默认是会启动 data/data 下的 shell 脚本,即便程序退出了脚本还会运行
zictos
2021-01-08 00:54:20 +08:00
@Jirajine #5 我倒不是慢,而是有时候根本连不上。
linhua
2021-01-08 08:11:55 +08:00
我用的 SSHelper
zictos
2021-01-08 08:24:06 +08:00
@linhua #8 其实仔细想了想也没什么远程需求,用 adb 网络调试也行。
我现在好像可以后台运行 shell 脚本和 python 脚本了,也没必要用 SSHDroid 了。像下面这样就行:
setsid ./test.sh &

试着用 python 开了一个 tcp 长连接,每隔几秒就向服务器发一条消息,这样手机居然不会休眠,没有获取唤醒锁,服务器一直可以收到消息。
还有一个 ftp 服务器监听 21 端口,不知道会不会增加耗电,不知道会不会影响手机休眠
systemcall
2021-01-09 00:30:06 +08:00
@zictos /system 默认情况下是只读的,所以即便是系统应用,数据也在 /data 下。但是系统应用在早期版本的安卓有很高的权限,最近的几个大版本虽然没那么高的权限了但还是有些地方比用户应用权限高
脚本放在 /data 没问题,/system/bin 里面不应该放自己的脚本吧,虽然放进去好像也没多大问题
要开机启动,直接改 Linux 层的启动脚本就行了

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

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

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

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

© 2021 V2EX