以下を使ってSSH経由でFirefoxを起動してみました。
ssh -X user@hostname
それから
firefox -no-remote
しかし、非常に遅いです。
この問題をどのように解決できますか?接続の問題ですか?
答え1
一部のXクライアントをリモートで起動する際の最大の問題の1つは、SSHオーバーヘッドではなくXプロトコルです。 X プロトコルにはクライアントとサーバーの間に多くのピンポンが必要であるため、リモートアプリケーションのパフォーマンスが確実に低下します。
「x2go」(デフォルト設定ではsshでも動作します)のようなものを試してみると、Firefoxが比較的速く飛ぶことがわかります。
一部のディストリビューションでは、Debian-testやStable-Backportsなど、すぐに利用可能なx2goパッケージを提供しています。しかし、そうでない場合は参照してください。http://wiki.x2go.org/doku.php/download:スタート、彼らは多くのディストリビューションのために事前に構築されたバイナリパッケージ/ストアを提供しています。 x2goclient(firefoxと対話するシステム)とx2goserver(firefoxを実行する必要があるシステム)をインストールしてから、単一のXアプリケーションまたはデスクトップ全体の表示などのセッションを設定できます。接続自体はSSHを介して行われます。本当に良いツールです:)
これを使用するには、「x2goclient」を実行して新しいセッションを作成できるGUIを起動します。サーバーのDNS名、ポート、SSHデータなどを指定し、「セッションタイプ」を選択します。 、リモートKDEまたはGNOMEデスクトップ全体を希望するか、「シングルアプリケーション」を希望し、「firefox」と入力します。
答え2
デフォルトのSSH設定により、接続速度がやや遅くなります。以下を試してください。
ssh -YC4c arcfour,blowfish-cbc user@hostname firefox -no-remote
使用されるオプションは次のとおりです。
-Y Enables trusted X11 forwarding. Trusted X11 forwardings are not
subjected to the X11 SECURITY extension controls.
-C Requests compression of all data (including stdin, stdout,
stderr, and data for forwarded X11 and TCP connections). The
compression algorithm is the same used by gzip(1), and the
“level” can be controlled by the CompressionLevel option for pro‐
tocol version 1. Compression is desirable on modem lines and
other slow connections, but will only slow down things on fast
networks. The default value can be set on a host-by-host basis
in the configuration files; see the Compression option.
-4 Forces ssh to use IPv4 addresses only.
-c cipher_spec
Selects the cipher specification for encrypting the session.
For protocol version 2, cipher_spec is a comma-separated list of
ciphers listed in order of preference. See the Ciphers keyword
in ssh_config(5) for more information.
ここで重要なのは、別の暗号化パスワード(この場合はデフォルトよりも速いarcfour)を使用して送信されるデータを圧縮することです。
注:私はこのトピックに関する専門家からは遠いです。上記のコマンドは、どこかのブログ投稿で見つけて使用していましたが、速度が大幅に向上したことを感じました。以下のさまざまなコメント作成者は自分の言うことを知っており、これらの暗号化パスワードは最高ではないかもしれません。この答えで唯一実際に関連するのは、スイッチを使用して-C
送信されるデータを圧縮することです。
答え3
ssh
他のシステムを介してトラフィックをルーティングするためにトンネルを使用する方が良い経験をしました。とにかくSSHアクセスがあるので、設定は非常に簡単です。コンピュータの端末に次のように入力します。
ssh -vv -ND 8080 user@yourserver
このウィンドウを開いたままにして、トンネルを通過するデータフローに関する詳細なメッセージが配信されることを確認します。
で、firefox
基本設定->詳細->ネットワーク->接続:設定に移動します。
選ぶ手動プロキシの設定プロキシを追加しますSOCKS v5
。
SOCKS Host: localhost Port 8080
たとえば、次に移動して新しいIPを確認します。http://whatismyipaddress.com/。
次の Firefox プラグインを使用できます。狡猾な代理人エージェントを動的に切り替えます。
答え4
X11 は廃止予定のプロトコルです。たとえば、ソフトウェアが同じ場所に文字「A」を書き続けると、それを再送信します。多くの最新のGUIは変更されていないコンテンツを再描画する傾向がありますが、X11はすべてのアトミック画面出力を喜んで再送信します。つまり、ピクセルではなくコマンドを送信します。これは、基本的にピクセルを転送するVNCとTeamviewerの動作方法とは反対です。また、これにより、あるコマンドが別のコマンドが完了するのを待つ必要がある部分的に同期操作が発生します。
SSHはCPUのパフォーマンスを大量に使用し、マルチスレッドをサポートしません。たとえば、私のサーバーはシングルコアでSSHを100%実行しますが、これは非圧縮データの場合は約20 MByte / s、X11の場合は圧縮データの場合は約5 MByte / sに対応します。
FirefoxはX11にとって非常に非友好的です。 X11が効率的に処理できるコマンドはほとんどありませんが、ほとんど小さくて圧縮しにくいビットマップを使用してX11ビットプレーン操作に圧縮します。とにかく、お互いに近づいてはいけない二つを一つにまとめることです。最悪の場合:小さなアニメーション。 64x64ピクセルのアニメーションGIFでもFirefox接続が停止することがあります。
つまり、もう少し詳しく見てみましょう。
高速回線(例えば100Mbit以上)では、圧縮が骨よりも大きな負担になることが多いです。お客様のマイルが異なる場合があります。 SSHに「-C」を使用してみてください。 SSH2を使用すると、圧縮レベルを手動で選択する必要がなくなり、「gzip -3」のようなもののみを使用したり、欺瞞的なトンネリングを実行したりする必要があります。より速く圧縮するにはかなり高速な「lzop -1」を使用し、より圧縮するには「xz -9e」を使用します。約10年前に私は「lzop -1」を試しましたが、結果は印象的ではありませんでした。
暗号通貨の速度はCPUによって大きく異なります。バラよりhttps://possiblelossofcision.net/?p=2255システムで最も速く動作するパスワードを確認する簡単な方法です。最も速いものと最も遅いものの間の速度は2倍速いと予想されます。過去20年間で低速なパスワードが標準であることを見たことはありませんが、パスワードは最も早いパスワードに近いデフォルト値に設定されることがよくあります。
今これが最善の選択です。 Firefoxでハードウェアアクセラレーションを無効にすることです。 Firefoxはとにかくネットワークを介して無効にするため、これはほとんど必要ありませんが、そうすることはできません。この場合、Firefoxは非常に遅くなります。
Firefox、SSH、X11に関するすべてです。それでも問題が解決しない場合は、別の方法を試してください。
X11-Serverで同様の操作を実行して、SSHなしでX11を実行します。
startx -- -listen tcp &
sleep 5
export DISPLAY=:0
xhost +yourx11client +yourx11client.local
X11クライアントから:
export DISPLAY=yourx11server:0
ヒント、X11 サーバー、およびクライアントの命名は「反転」されます。サーバーはモニターで、クライアントは実行中のアプリケーションです。
これにより、Firefoxの速度が簡単に10倍向上します。しかし、ビデオなどの一部のページはまだ非常に遅く、応答しない可能性があります。
より過激なステップ:X11をネットワークプロトコルとして使用せずにVNCを使用します。リモート画面または完全に仮想化されたVNCセッションを使用して:
vncserver :1 -name VNC1 -geometry 1024x768 -depth 15
$HOME/.vnc/xstartupでも同様です。
#!/bin/sh
# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
exec /etc/X11/xinit/xinitrc
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
xterm -geometry 80x30
デフォルトのX11背景はビューには良くなく圧縮するのが難しいため、xsetrootコマンドを使用することをお勧めします。
目的のVNCクライアントを接続します。
このVNC接続を介してテレビを視聴してゲームをプレイできました。複数のユーザーに対して同時に複数のvncserverを実行することもできます。
これはこれまでで最も反応の速いリモートシステムです。