SSH连接服务器延迟太高,应如何解决?

  • 回答 (6)
  • 关注 (1)
  • 查看 (756)

连接服务器的时候,发现总要等个10秒或更久的时间,经常以为链接不上。该怎么解决?

qzuserqzuser提问于
帅的惊动我国计算机大神回答于

建议使用mosh。

安装

需在客户端和服务器上安装Mosh。

Ubuntu上:

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:keithw/mosh
sudo apt-get update
sudo apt-get install mosh

Debian上:

sudo apt-get install mosh

Arch Linux上:

pacman -S mosh

Fedora上:

sudo yum install mosh

对于任何其他操作系统,如OSX或Windows,请参阅Mosh文档

防火墙配置

如果CVM上配置了防火墙(推荐),需要打开Mosh所需的额外端口。可以使用腾讯云的安全组进行配置,也可以使用下面的方法进行配置。

如果你直接使用iptables,以下命令将打开Mosh所需的端口:

sudo iptables -I INPUT 1 -p udp --dport 60000:61000 -j ACCEPT

在默认情况下,系统重新引导后不会保留此防火墙设置。

如果你使用的是UFW,则可以使用以下命令打开端口:

sudo ufw allow 60000:61000/udp

如果你使用任何其他程序来管理防火墙,则需要手动确保打开从60000到61000的UDP端口。

最爱开车啦互联网的敏感者回答于

首先,检查是否配置了错误的dns,有则删除。使用vi /etc/sysconfig/network-scripts/ifcfg-em0命令进入em0的配置文件。并将包含了DSN的内容删除。运行重新启动网络连接的命令:service network restart

其次,就将配置项UseDNS的值改为no:执行vim /etc/ssh/sshd_config命令。将第5行的UseDNS值改为no,且要记得去掉注释。

最后,执行:sshd restart,重启ssh服务,再执行以下命令service network restart

ByChenMan回答于

这是因为ssh连接的时候会查询DNS服务器,查询超时后才继续。

解决办法:执行vi /etc/ssh/sshd_config。把#UseDNS yes改成 UseDNS no。然后重启服务或者 reboot 即可。

叶叶程序猿,码农回答于

我觉得mosh不能解决延迟问题。要么换一条从本地到服务器的路由(如VPN),要么让本地离服务器近一些。

叼根棒棒糖Gaming Ape Man回答于

两个方法:

1.修改/etc/ssh/sshd_config配置文件

2.安装mosh替代ssh

真假二十一很喜欢腾讯云!回答于

试试mosh!mosh是基于新的State Synchronization Protocol(SSP)协议,运行在UDP上,能同步不同主机对象的状态,加密和认证使用AES-128。在高延迟的网络下,mosh比ssh流畅很多。且在3G网络下,丢失网络变更IP后,终端连接不会中断。另外,其在对编码的转换上,比其他终端有不少优势。

所属标签

可能回答问题的人

  • 腾讯云计算产品团队

    腾讯云 · 产品团队 (已认证)

    137 粉丝0 提问0 回答
  • CVM 产品团队

    28 粉丝0 提问7 回答
  • 小仙女和科学家

    9 粉丝0 提问0 回答
  • 怕冷的阳阳

    腾讯云 · 高级工程师 (已认证)

    19 粉丝1 提问0 回答
  • DRRR

    腾讯云 · 产品经理 (已认证)

    7 粉丝0 提问4 回答
  • candyxiao

    腾讯 · 高级产品经理 (已认证)

    13 粉丝0 提问7 回答

扫码关注云+社区

领取腾讯云代金券