昨晚我在玩我的手机(运行 Linux/X 堆栈),我设法通过 ssh 进入我的桌面并运行一个应用程序,然后让它显示在手机上。这太棒了。
今天我想做点相反的事情。我想在电脑上查看手机上运行的应用程序。我可以在我的手机上安装 SSH 服务器,但坦白说,出于安全原因,我并不喜欢这样做。我希望从我的手机启动它。
有没有办法从我的手机连接并将 PC 的 X 连接隧道传输回手机,然后在手机上运行在 PC 上显示的应用程序?
答案1
“反向 ssh 隧道”或“远程端口转发”是您的朋友。
在电话里发这个
ssh -f -N -X -R 5555:localhost:22 desktop_user@desktop
然后,在桌面上
ssh -X -p 5555 phone_user@localhost
答案2
如果我理解正确的话,您只需要使用手机上的 DISPLAY 变量将应用程序显示重定向到您的桌面。
在您的桌面上:
xhost +phone_ip
在手机上:
export DISPLAY=desktop_ip:0
启动应用程序
答案3
重新讨论这个旧话题只是为了为旧问题提供现代解决方案:
我不知道乱码工作,但它肯定是值得一试的 - 它是一个开源项目,可以为您的 Android 设备提供显示和控制。
除了基本的“显示手机屏幕”功能外,它还支持许多其他功能,如手势、热键、录音、通过 adb 无线控制 Android 等。此外,另一个项目(链接在 github 页面上 - sndcpy
)允许音频转发。这纯粹是一个主机 PC 程序,只需要在目标设备上启用调试。如果我没记错的话,一切都可以通过 ADB 运行(所以只适用于 Android???)。
在我的 Ubuntu 20.04 Lenovo <-> Android 10 Huaweii P20Pro 上以全分辨率和最大 FPS 通过 USB 运行时没有明显的延迟,而在无线模式下,FPS 略有下降至 15 FPS,输入延迟最小。我成功地通过笔记本电脑的鼠标和键盘在手机上玩游戏。
主要优点:
- 多平台-
scrcpy
适用于 Linux、Windows 和 Mac - 仅限主机操作系统 - 需要在 Android 上进行最少的设置(允许 USB 调试)
- 开箱即用
- 多好的品质啊!
- 开源
公平地说,这并不完全满足“从手机发起”的条件,但我还是会发布这个答案,只是因为它的scrcpy
功能非常强大,值得得到更多的认可。