ls -al 在 ssh 會話中停止
當我使用 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 目標無法訪問)被阻止?您是否能夠在網路邊界執行和觀察數據包擷取?