Openssh(サーバー)とPuTTY(クライアント)の組み合わせを使用してリモートwebproxyを使用すると、パフォーマンスの問題が発生します。暗号化を無効にして結果をテストし、違いがあるかどうかを確認したいと思います。どうやってやるの? sshd_config
で変更できるものはありますか?私はopensshに非常に慣れていません。
他のアイデアはいただければ幸いです。
私は基本的に自分のIEを127.0.0.1のソックスをプロキシとして使用するように設定しています。私はPuTTYを自宅のopensshサーバーに接続し、出来上がりです。それを介してインターネットを閲覧できます。ただし、自宅への接続が高速であることを知っていても、信じられないほど低速です(たとえば、ftpは50Kバイト/秒以上で動作します)。
何も再コンパイルしないと、私の知る限り、それを行うことはできません。ただし、最新のハードウェアでは非常に高速なARC4またはBlowfishに切り替えることができます。
あなたが得ることができる最高のパフォーマンス(クロックサイクルに関する限り)の増加は追加することです
compression no
これを行うには、
ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,
aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,
aes256-cbc,arcfour
に
ciphers arcfour,blowfish-cbc
非互換性のリスクがあるいくつかの余分なパフォーマンスを絞りたい場合は、変更できます
macs hmac-md5,hmac-sha1,[email protected],
hmac-ripemd160,hmac-sha1-96,hmac-md5-96
に
macs hmac-md5-96
それでもオーバーヘッドが大きすぎると思われる場合は、v1に戻すか、標準のVPNを実行します。
クライアントやサーバーの能力が大幅に低下していない限り、パフォーマンスの問題を引き起こしているのが暗号化であるとは私は非常に疑っています。私は "-D 8080" sshソックスプロキシを定期的に使用しており、veryのわずかな速度低下以外は何も認識していません。
確認することの1つは、クライアントとサーバーの間の待ち時間を確認することです。それが非常に潜在的な接続である場合、HTTPを使用すると、FTPでのパフォーマンスの問題は見られず、トンネルでのパフォーマンスが確実に低下します。 FTP転送が進行中であれば、レイテンシはそれほど重要ではありませんが、HTTPを使用すると、発生する必要のある50以上の個別のHTTPハンドシェイクがある可能性のあるWebページを処理します。待ち時間の長い接続では、このプロセスが実際に遅くなり、ブラウジングが耐えられなくなります。
とにかく、ゼファーペレリンが行った推奨事項は妥当です。暗号化が本当に問題の原因だと本当に思っている場合は、別の暗号に切り替えてください。ただし、最初にレイテンシを検討することをお勧めします。
このスレッドは私に独自のベンチマークを実行させ、パフォーマンスは暗号/ MACの違いだけでなく、送信するデータ、関与するCPU、ネットワークの設定方法にも影響を与えることがわかりました。
したがって、IMOが正しいことは、独自のテストを実行して、状況に最適な設定を見つけることです。
誰かが興味を持っている場合、これはIntel E5506駆動サーバーとRaspberry Piを比較した私のテスト結果です。
--
-- Intel Xeon E5506(4 x 2.13 GHz), 50MB Random binary Data over localhost
--
cipher mac speed
---------------------------------------------------------------
aes192-cbc hmac-sha1 50MB/s
arcfour256 hmac-sha2-512 49.9MB/s
arcfour hmac-ripemd160 49.8MB/s
aes256-cbc hmac-sha1-96 49.7MB/s
aes128-cbc hmac-sha1-96 49.7MB/s
aes192-cbc hmac-sha1 48.9MB/s
arcfour [email protected] 48.8MB/s
aes256-cbc hmac-sha1-96 48.8MB/s
arcfour [email protected] 48.7MB/s
aes128-cbc hmac-sha1 48.4MB/s
--
-- Raspberry Pi B+, 10MB Random binary over localhost
--
cipher mac speed
---------------------------------------------------------------
arcfour256 [email protected] 2.75MB/s
arcfour128 [email protected] 2.74MB/s
arcfour [email protected] 2.63MB/s
arcfour [email protected] 2.54MB/s
arcfour hmac-md5-96 2.36MB/s
arcfour128 hmac-md5 2.34MB/s
arcfour256 hmac-md5 2.34MB/s
arcfour256 [email protected] 2.33MB/s
arcfour256 hmac-md5-96 2.28MB/s
arcfour256 hmac-md5-96 2.22MB/s
しかし、「トップ10」だけでは、完全な結果 ここにあります です。
私はこの投稿の助けを借りて、暗号 'none'でsshd/sshをコンパイルすることができました: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=24559#58
非常に古い投稿ですが、ソースコードファイルcipher.cに3つのわずかな変更を加える必要があります。次に、sshd/sshコードを再コンパイルします。
@@ -175,7 +175,7 @@
for ((p = strsep(&cp, CIPHER_SEP)); p && *p != '\0';
(p = strsep(&cp, CIPHER_SEP))) {
c = cipher_by_name(p);
- if (c == NULL || c->number != SSH_CIPHER_SSH2) {
+ if (c == NULL || (c->number != SSH_CIPHER_SSH2 && c->number != SSH_CIPHER_NONE)) {
debug("bad cipher %s [%s]", p, names);
xfree(ciphers);
return 0;
@@ -343,6 +343,7 @@
int evplen;
switch (c->number) {
+ case SSH_CIPHER_NONE:
case SSH_CIPHER_SSH2:
case SSH_CIPHER_DES:
case SSH_CIPHER_BLOWFISH:
@@ -377,6 +378,7 @@
int evplen = 0;
switch (c->number) {
+ case SSH_CIPHER_NONE:
case SSH_CIPHER_SSH2:
case SSH_CIPHER_DES:
case SSH_CIPHER_BLOWFISH:
また、none
暗号を/etc/ssh/sshd_config
に追加する必要があります
Ciphers aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour,aes192-cbc,aes256-cbc,[email protected],aes128-ctr,aes192-ctr,aes256-ctr,none
以下のリンクは、DebianおよびUbuntuシステムのsshソースを取得するのに役立ちます。
素晴らしいことに対するDean Gaudetの功績
この非常に素晴らしいブログ投稿によると
http://blog.famzah.net/2010/06/11/openssh-ciphers-performance-benchmark/
以下の暗号を設定することをお勧めします。また、LANで最高のパフォーマンスが必要な場合は、圧縮がオフであることを確認してください。これはセキュリティリスクの可能性があることに注意してください。安全なLANでのみ使用してください(例:自宅など)。
# cat ~/.ssh/config
Host 192.168.1.*
Compression no
Ciphers arcfour256,arcfour128,arcfour,blowfish-cbc,aes128-cbc,aes192-cbc,cast128-cbc,aes256-cbc
最初の行を変更して、LAN内の独自のIPをリストします。ホスト名を入力することもできます(スペースで区切る)。これにより、LANで最高のscpパフォーマンスが得られます。
完全に暗号化されておらず、圧縮されていないトンネルを試したい場合は、SSHの代わりにrinetd
のようなものを使用してデータを転送してみることができます。 TCP接続にプレーンバイナリセーフトンネルを提供する間、これはSSHエキストラを排除します。
自宅での接続が速いと言ったとき、双方向で速いと確信していますか?多くのホーム接続は非常に非対称です(たとえば、私のホームADSLはダウンストリームが約11Mit、アップストリームが約1.5Mbitであり、それよりも悪い場合があります。友人/家族の接続から引用できるものもあります:7M/0.4M、19M/1.3M、20M/0.75M、...)。ホームをプロキシとして使用している場合、データはリンクを両方の方向に通過する必要があるため、ダウンストリームとアップストリームの速度が最も遅くても最高移動し、追加のレイテンシが発生することに注意してください。も考慮に入れます。また、ISPは、ホームリンクからサーバー/プロキシを実行している人々を思いとどまらせる方法として、故意に上流の通信を(包括的に、または選択的に電子メールや選択した人気のあるWebサイトに影響を及ぼさないように)調整することがありますが、これは比較的まれです。
私はこれについて広範なテストを行ったところ、最高のスループットを実現した暗号スイートは、umac64 MACを使用したaes-128-ctrでした。 4コアの3.4GHzマシンで、ローカルホストを介してほぼ900MBytes/secを確認しました(ベンチマークのためにネットワークのボトルネックを排除するため)。
本当にそれほど多くのパフォーマンスが必要な場合は、最新のSSHと、おそらく HPN-SSH パッチが必要です。
これは、ローエンドデバイスへのSSH接続に使用したクライアント側のSSHオプションの1つです。
ssh -c none -m hmac-md5-96 [email protected] ....
最近のOpenSSHバージョンでは、暗号はネイティブでサポートされていません。ただし、7.6以降、OpenSSHはSSHv1サポートを削除し、内部で使用するために「なし」の暗号をラベル付けしました。
#define CFLAG_NONE (1<<3)
#define CFLAG_INTERNAL CFLAG_NONE /* Don't use "none" for packets */
次に、サーバー側とクライアント側の両方にパッチを適用して再コンパイルする必要があります。
#define CFLAG_INTERNAL 0