我在使用 openssh(服务器)和 putty(客户端)组合来使用远程 webproxy 时遇到性能问题。我想禁用加密并测试结果以查看它是否有所作为。我怎样才能做到这一点?有什么我可以修改的sshd_config
。我对openssh很陌生。
任何其他想法将不胜感激。
我基本上将我的 IE 设置为使用 127.0.0.1 socks 作为代理。我将腻子连接到家里的 openssh 服务器,瞧——我可以通过它浏览互联网。然而,即使我知道我与我家的连接速度很快(例如 ftp 以高于 50Kbytes/sec 的速度工作,它仍然非常慢。
据我所知,如果不重新编译任何东西,就无法完成。但是,您可以切换到在现代硬件上速度快得离谱的 ARC4 或 Blowfish。
您可以获得的最佳性能(就时钟周期而言)增加是通过添加
您可以通过更改来做到这一点
至
如果你想在不兼容的风险下挤出一些额外的性能,你可以改变
至
如果您仍然认为这开销太大,您可以恢复到 v1 或只使用标准 VPN。
除非客户端或服务器功能严重不足,否则我高度怀疑是否是加密导致了您的性能问题。我经常使用“-D 8080” ssh socks 代理,除了非常轻微的减速之外,从未注意到任何事情。
要检查的一件事是查看客户端和服务器之间的延迟。如果它是一个非常隐蔽的连接,那么在使用 HTTP 时,您肯定会看到隧道的性能很差,而 FTP 不会出现性能问题。一旦进行 FTP 传输,延迟就不再重要了,但是使用 HTTP,您正在处理的网页可能需要进行 50 次或更多单独的 HTTP 握手。高延迟连接真的会减慢这个过程,并使浏览变得难以忍受。
所以无论如何,Zephyr Pellerin 提出的建议是合理的。如果您真的认为是加密导致了问题,请切换到不同的密码。不过,我建议先研究延迟,因为这似乎是一个更有可能的候选者。
这个线程让我做了自己的基准测试,我发现性能不仅因不同的密码/MAC而异,它还会影响您发送的数据、涉及的 CPU 以及网络的设置方式。
因此,IMO 正确的做法是运行您自己的测试并找到适合您情况的最佳设置。
如果有人感兴趣,这里是我比较英特尔 E5506 驱动服务器和树莓派的测试结果:
但是只有“前 10 名”,完整的结果可以在这里找到。
在这篇文章的帮助下,我能够使用密码“none”编译 sshd/ssh: https ://bugs.debian.org/cgi-bin/bugreport.cgi?bug=24559#58
这是一篇很老的帖子,但您必须对源代码文件 cipher.c 进行 3 处轻微修改。然后重新编译 sshd/ssh 代码。
此外,
none
密码需要添加到您的/etc/ssh/sshd_config
下面的链接将帮助您获得 Debian 和 Ubuntu 系统的 ssh 源代码:
感谢 Dean Gaudet 的出色表现
根据this very nice blog post
http://blog.famzah.net/2010/06/11/openssh-ciphers-performance-benchmark/
我建议设置以下密码。如果您想在 LAN 上获得最佳性能,还要确保关闭压缩。请注意,这可能存在安全风险,只能在安全的 LAN 上使用(例如在家等)。
修改第一行以列出您自己的 LAN 中的 IP。您还可以提供主机名(以空格分隔)。这为您提供了 LAN 上最好的 scp 性能。
如果您想尝试一个完全未加密和未压缩的隧道,您可以尝试使用类似
rinetd
转发数据而不是 SSH 的方式。这将消除 SSH 附加功能,同时仍为 TCP 连接提供简单的二进制安全隧道。当你说你在家里有一个快速的连接时,你确定它是双向的吗?许多家庭连接非常不对称(例如,我的家庭 ADSL 下游 ~11Mit 和上游 ~1.5Mbit 并且许多比这更糟糕,我可以从朋友/家人的连接中引用:7M/0.4M、19M/1.3M、20M/ 0.75M,...)。请记住,如果您使用家庭作为代理,则数据必须双向通过您的链接,因此充其量只能移动以最慢的下行和上行速度,你还有一大块额外的延迟需要考虑。此外,您的 ISP 可能会故意限制上游通信(无论是一揽子,还是有选择地使电子邮件和选定的流行网站等内容不受影响)作为阻止人们在其家庭链接之外运行服务器/代理的一种方式,尽管这种情况相对较少。
我刚刚对此进行了广泛的测试,产生最高吞吐量的密码套件是带有 umac64 MAC 的 aes-128-ctr。在一台 4 核 3.4GHz 机器上,我通过 localhost 看到几乎 900MBytes/sec(为了进行基准测试而消除网络瓶颈)
如果你真的需要这么高的性能,你需要最新的 SSH,可能还有HPN-SSH补丁。
这是我用于与低端设备进行 SSH 连接的客户端 SSH 选项:
最近的 OpenSSH 版本本身不支持任何密码。但是,从 7.6 开始,OpenSSH 删除了 SSHv1 支持,并标记为“无”密码供内部使用。
然后,您需要为服务器端和客户端打补丁和重新编译。