我正在开发需要支持 ssh 的自定义 Android 设备。我们实现了一个可处理传入 ssh 连接的工作服务,但我们目前必须根据 Linux 权限要求在端口 >1024 上运行它。
有没有办法在端口 22 上运行服务器?
当然,我们有系统级别的访问权限。出于安全原因,我们试图避免将 root 访问权限暴露到应用程序空间中。我们确实有办法执行 root 命令,但如果有必要的话。
最佳答案
在这个级别上,Android 基本上就是 Linux,因此有关 Linux 的任何信息都可能适用。看看Is there a way for non-root processes to bind to "privileged" ports on Linux? ,有一个公认的答案似乎适用于最新版本的 Android。
setcap(8) 只会进行系统调用,如果它在 Android 上不可用,您可以将其 bundle 或查看来源并进行相同的系统调用。
关于Android 绑定(bind)到特权端口 22,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18617739/