ls -al在ssh会话中停止

当我使用sshlogin到远程机器时,出现了一个非常奇怪的问题。 这是一个场景:

  1. 我使用sshlogin远程机器(本机不在本地局域网中)
  2. 我做ls (它有效)
  3. 我做ls -a (它有效)
  4. 我做ls -l (它有效)
  5. 我做ls -al .bash_profile (它的工作原理)
  6. 我做ls -al (列出2个目录后失败……第三个目录应该是.bash_profile)

当我使用本地networking中另一台机器的sshlogin到本机时,一切正常。

有人可以帮我debugging这个问题。

Update1:正如Dan所build议的那样,我试着玩弄尺寸。 但是,只是为了消除任何问题,我试着做

 $ls -al >> ls_op.txt (this worked) 

然后我做了

 $ls >> ls.txt 

直到ls.txt的大小是1020字节,然后做
$cat lx.txt (这也工作)
我再次做'ls >> ls.txt'提示文件大小超过1024.文件大小现在是1360字节。 现在在做
$cat ls.txt (失败)

所以肯定有一些与包大小有关的问题。 这里有一些更多的信息。 有两个物理位置,比如说A和B.

当我在A机器上login到B机器时,我可以cat一个大于1024字节的文件。

但是,当某人坐在B中并且login到A处的一台机器上时,他们可以cat一个小于1024字节的文件,但是不能cat大于1024字节的文件。

有人可以帮我下一步。 我可以在任何机器上编辑configuration文件来实现这个function,还是需要在networking层面进行一些configuration?

再次感谢你的帮助。

UPDATE2:

 ifconfig eth0 mtu 512 

在networkingA中更改机器的MTU解决了这个问题。


谢谢
Parag

我会冒这个MTU /片段与工作站的本地或上游networking相关的东西。 由ls -al返回的数据量可能足以导致平衡,并导致它失速。 我想象你应该能够用大量的数据复制相同的行为,例如捕捉或者大文件的SCP。


更新:

从这个信息来看,这绝对是MTU相关的。 这是最有可能的,这将是一个问题在任何networking的边界,你将不得不弄脏你的手。 你可以尝试调整任何路由器的外部MTU / MSS。 但是保持个人机器设置尽可能标准,除非内部networking另有规定。

是否有任何特定的协议,会明确地进入数据报的最后几个字节,如PPP(oA或oE)和VPN封装? 你知道PMTU(ICMP目的地不可达)被阻止吗? 你能够执行和观察networking边界处的数据包捕获吗?