Ls

ls -al 在 ssh 會話中停止

  • October 6, 2009

當我使用 ssh 登錄到遠端機器時,我遇到了一個非常奇怪的問題。這是場景:

  1. 我使用 ssh 登錄到遠端機器(這台機器不在本地區域網路中)
  2. 我願意ls(有效)
  3. 我願意ls -a(有效)
  4. 我願意ls -l(有效)
  5. 我願意ls -al .bash_profile(有效)
  6. 我願意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 目標無法訪問)被阻止?您是否能夠在網路邊界執行和觀察數據包擷取?

引用自:https://serverfault.com/questions/71677