服务器上的MTU不小心设置为0,不能ssh进入吗?

我的服务器与ssh有一些问题,我无法上传大于10 KB的文件,因为在复制过程中scp会挂起。 我在这里find了解决这个问题的一个解决scheme,而且我改变了MTU,当时我不小心做了sudo ip link set eth0 mtu 0

现在没有人能够进入服务器。 我该怎么办?

连接到控制台并将MTU更改回来。 如果您没有控制台访问权限,请重新启动服务器。

目前尚不清楚您正在使用哪个操作系统。 我已经在两个不同版本的Linux上testing了你的特定命令,并且每个都给了我一个错误信息:

 RTNETLINK answers: Invalid argument 

如果你发现一个实际上允许你设置MTU为0的系统,我会考虑一个内核错误。 然而,存在这样的系统似乎是合理的,其中将MTU设置为0具有其他含义,例如自动检测MTU。

IPv4要求所有节点的MTU至less为68.Linux知道这一点,并且如果MTU被设置为较低的值(例如67),则在接口上禁用IPv4。这样可以将自己locking在系统之外。 这是不方便的,如果内核拒绝MTU更改,只要接口有任何需要更高MTU的IP地址,我就会认为它是更好的devise。

如果不小心在networking接口上禁用IPv4和IPv6,则不太可能find任何方式通过该networking接口远程pipe理机器。 如果服务器有任何其他networking接口,您可以通过这种方式访问​​它。 即使其他networking接口尚未configuration,它仍然可能有一个IPv6链接本地地址,可以从同一个网段上的不同主机ssh到。 否则串行控制台仍然是一个选项,因为串行控制台完全独立于主机的networkingconfiguration。 最终,如果可以远程访问,则可以重新启动机器。 只要你没有把错误的改变写入任何configuration文件,重新启动应该修复它。