web-dev-qa-db-ja.com

sshアプリケーションを介したX11転送の開始が非常に遅い

転送されたX11リンクを介してX11アプリケーションを起動するのが非常に遅い(3〜5分かかる)サーバーがあります。オペレーティングシステムが異なる2〜3台のマシンで接続してみました。アプリケーションの起動後、すべてが正常に見えます。信頼できるX11転送(ssh -Y)と証明書ベースの認証を使用して接続しています(それは問題ではありません)。

オペレーティングシステムは、AMD64上のGentooLinuxです。 X環境に関連するメッセージを表示するアプリケーションはありません(1つは何も表示せず、もう1つは標準のウェルカムメッセージで、最後は使用中のリソースに関するエラーメッセージです(最終的にポップアップしたウィンドウでも通知されます)。

Berteraの提案に従って、-vオプションを指定して実行しました。印刷時にウィンドウが表示されるまで、何も印刷されません。

debug1: client_input_channel_open: ctype x11 rchan 3 win 87380 max 16384
debug1: client_request_x11: request from 127.0.0.1 43716
debug1: channel 1: new [x11]
debug1: confirm x11

また、私はsshポート転送をテストしましたが、それも非常に遅いです(そして、これはX11転送の問題である可能性があると思います)。

1
CrazyCasta

問題は、sshがipv6を使用してループバックで処理を実行し、すべてのトラフィックをドロップするようにip6tablesを設定したことです。以下を実行しただけで、現在は機能しています。

ip6tables -A INPUT -i lo -j ACCEPT
ip6tables -A OUTPUT -o lo -j ACCEPT
ip6tables -A FORWARD -i lo -o lo -j ACCEPT

Ipv6の角度を指摘してくれた#gentooのezakimakに感謝します。

0
CrazyCasta

サーバーへの遅延/ RTTはどれくらいですか(単純なpingで十分です)?どのアプリケーションを起動しようとしていますか?

X11は、シリアル化された描画呼び出しを備えた同期プロトコルです。待ち時間が長い場合またはアプリケーションが多くの描画呼び出しを実行すると、ロード時間が長くなります。

可能であれば、サーバーにfreenxをインストールし、nxクライアント(例:remminaまたはnomachine.comクライアント)を使用する必要があります。これらはX11描画呼び出しを逆シリアル化することで機能し、パフォーマンスが大幅に向上します。

4
shodanshok