当我使用 ssh 登录到远程机器时,我遇到了一个非常奇怪的问题。这是场景:
- 我使用 ssh 登录到远程机器(这台机器不在本地局域网中)
- 我愿意
ls
(有效) - 我愿意
ls -a
(有效) - 我愿意
ls -l
(有效) - 我愿意
ls -al .bash_profile
(有效) - 我愿意
ls -al
(列出 2 个目录后失败……第三个目录是 .bash_profile)
当我从本地网络中的另一台机器上使用 ssh 登录这台机器时,一切正常。
有人可以帮我调试这个问题。
更新1:
正如丹建议的那样,我试着玩弄这个尺寸。但是只是为了消除ls
我尝试做 的任何问题
$ls -al >> ls_op.txt (this worked)
然后我做了
$ls >> ls.txt
直到 ls.txt 的大小为 1020 字节,然后执行
$cat lx.txt
(这也有效)
我再次执行“ls >> ls.txt”以将文件大小提示超过 1024。文件大小现在为 1360 字节。现在做
$cat ls.txt
(失败)
所以肯定有一些与数据包大小有关的问题。这里有更多信息。有 2 个物理位置,比如说 A 和 B。
当我在 A 的机器上并登录到 B 的机器时,我可以处理cat
大于 1024 字节的文件。
但是,当有人坐在 B 并登录到 A 的机器时,他们可以访问cat
小于 1024 字节的文件,但不能访问cat
大于 1024 字节的文件。
有人可以帮助我进行下一步。我可以在任何机器上编辑配置文件以使其正常工作,还是需要在网络级别进行一些配置?
再次感谢你的帮助。
更新2:
ifconfig eth0 mtu 512
更改网络 A 中机器的 mtu 解决了该问题。
--
谢谢帕拉格
_
我会冒险认为它是与工作站的本地或上游网络相关的 MTU/片段。返回的数据量
ls -al
可能刚好足以使天平倾斜并导致其停止。我想您应该能够使用任何大量数据复制相同的行为,例如cat
“ing或SCP”大文件。更新:
从该信息来看,它肯定与 MTU 相关。这很可能会成为任一网络边界的问题,您必须亲自动手。您可以尝试调整任何路由器的外部 MTU/MSS。但是,除非内部网络另有规定,否则请尽可能将单个机器设置保留为标准。
是否有任何特定的协议会故意吞噬数据报的最后几个字节,例如 PPP(oA 或 oE)和 VPN 封装?您是否知道 PMTU(ICMP 目标无法访问)被阻止?您是否能够在网络边界执行和观察数据包捕获?