逆X11転送

逆X11転送

昨晩、Linux/X スタックが動作する携帯電話で遊んでいたところ、デスクトップに SSH 接続してアプリケーションを実行し、携帯電話に表示させることができました。すばらしい体験でした。

今日はその逆をしたいと思います。携帯電話で実行しているアプリケーションをPCで表示したいのです。できた携帯電話に 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 プログラムであり、ターゲット デバイスでデバッグを有効にすることのみが必要です。IIRC はすべて ADB 経由で動作します (つまり、Android のみ???)。

Ubuntu 20.04 Lenovo <-> Android 10 Huaweii P20Pro をフル解像度、最大 FPS で USB 経由で実行した場合、目に見える遅延はありません。ワイヤレスでは 15 FPS までわずかに低下し、入力遅延は最小限です。ノートブックのマウスとキーボードを使用して、携帯電話でゲームをプレイすることに成功しました。

主な利点:

  • マルチプラットフォーム - scrcpyLinux、Windows、Macで動作
  • ホスト OS のみ - Android での最小限の設定が必要です (USB デバッグを許可)
  • すぐに使える
  • なんと素晴らしい品質でしょう!
  • オープンソース

公平に言えば、これは「電話から開始する」という条件を正確に満たしているわけではありませんが、の機能がscrcpy非常に強力であり、より多くの認識に値するため、とにかくこの回答を投稿します。

関連情報