SSH nếu đầu ra lệnh nhiều hơn khoảng 5 dòng


11

Tôi đã được khuyên nên hỏi câu hỏi này ở đây: Tôi đang gặp vấn đề sau đây tôi đang gặp phải.
Tôi có máy chủ Debian 5.0 Linux được kết nối qua cáp ethernet với bộ định tuyến DSL của tôi. Máy tính xách tay của tôi đang chạy Windows 7 và được kết nối không dây (802.11b / g) với cùng một bộ định tuyến DSL. Nếu tôi SSH vào máy chủ bằng cách sử dụng Putty và cố gắng thực thi một lệnh dẫn đến nhiều dòng đầu ra thì phiên SSH của tôi bị đóng băng. Ví dụ.

ls -al /             // Freezes
ls -al / > ~/boo.txt // OK
vi ~/boo.txt         // OK
top                  // Freezes

Tất cả các lệnh trên hoạt động nếu tôi thực thi chúng trực tiếp trên máy chủ hoặc nếu tôi thay đổi kết nối máy tính xách tay của mình thành kết nối có dây. Đưa cái gì? Vấn đề này thực sự gây trở ngại cho tôi! Cảm ơn


Có thể muốn hỏi điều này trên StackOverflow, nhưng có vẻ như đó có thể là vấn đề với các ký tự đặc biệt (có lẽ màu sắc) vì vi không thực hiện bất kỳ màu nào (trừ khi nó thực sự là vim).
Topher Fangio

Anh ấy đã hỏi nó trên StackOverflow, nhưng có lẽ sẽ tốt hơn khi chuyển nó sang ServerFault ... và tôi với Aidan: nghi phạm đầu tiên của tôi là MTU mạng.
dmckee --- ex-moderator mèo con

À ha ha, Yeah, ServerFault, không phải StackOverflow ... đó là thứ Hai = P
Topher Fangio

Câu trả lời:


9

Nghe có vẻ như một vấn đề MTU có dây. nhẹ nhàng...

bạn có thể kích hoạt jumboframes không? chắc là không. dù sao đi nữa - hãy thử thiết lập mtu thấp hơn trên debian và xem nó có giúp ích không.


Biệt phái; điều này có vẻ như một vấn đề MTU. Tôi khuyên bạn nên thử các gói lớn hơn và lớn hơn (dễ dàng thực hiện bằng cách sử dụng ping) cho đến khi bạn gặp lỗi / bỏ gói. Hoặc chỉ cần kiểm tra cài đặt MTU ở mọi nơi :)
MikeyB

Cảm ơn mọi người! Hạ MTU trên máy tính xách tay đã thực hiện thủ thuật. MTU có áp dụng cho người gửi / người nhận / cả hai không? Tôi có thể ping máy chủ từ máy tính xách tay với kích thước dữ liệu lớn hơn. Điều ngược lại là không đúng sự thật. Máy chủ Linux: ~ # ping -S 5000 athlon64-laptop.lan PING athlon64-laptop.lan 56 (84) byte dữ liệu 64 byte từ xxxx: icmp_seq = 1 ttl = 128 time = 2,71 ms Trên máy tính xách tay windows> ping -l 2048 athlon64x2-server.lan Pinging athlon64x2-server.lan với 2048 byte dữ liệu: Yêu cầu đã hết thời gian. > ping -l 1048 athlon64x2-server.lan Pinging athlon64x2-server.lan với 1048 byte dữ liệu: Trả lời từ xxxx: byte = 1048 time = 3ms TTL = 64

@leftbrainlogic - Vấn đề với mtu indcate rằng có một cái gì đó tanh trong mạng của bạn. có lẽ điểm truy cập không vượt qua các khung [1500B] được phép lớn nhất cho ethernet nhanh? Bạn đã cấu hình thủ công máy chủ để sử dụng jumboframes chưa?
pQd

@pQd - Không, máy chủ chỉ đang chạy bản cài đặt vanilla của Debian 5.0. Tôi đã chấp nhận tất cả các giá trị mặc định ngoại trừ phân vùng đĩa và tên máy chủ Đầu ra từ ifconfig -a ở đây: pastebin.com/f78fcbf3d

@leftbrainlogic - ok; hãy thử hạ mtu như được mô tả trong liên kết của tôi. 1500B của bạn có độ dài tiêu chuẩn helahtly, tôi nghĩ rằng điều này cho thấy một số vấn đề với chuyển đổi, điểm truy cập hoặc card mạng wifi.
pQd

3

Có thể có vấn đề với MTU của kết nối mạng của bạn - khi máy chủ Linux cố gửi quá nhiều byte dữ liệu trong một gói mạng, có lẽ bộ định tuyến đang từ chối chuyển tiếp nó đến hộp windows, vì nó cho rằng kích thước gói là quá lớn để gửi qua mạng không dây. Bạn sẽ có thể giảm MTU cho giao diện Ethernet trên hộp linux và điều này có thể sẽ giải quyết vấn đề của bạn.

Để chẩn đoán, hãy thử ping -s <packetsize> <windows-ip> từ hộp linux đến IP của máy windows của bạn và ping <linux-ip> <packetsize>từ hộp windows sang linux, với các giá trị khác nhau cho tham số gói, và xem kích thước tối đa có khác nhau theo hai hướng không.

Ngoài ra: man pingtrên linux sẽ hữu ích cho việc hiểu những gì đang diễn ra.


0

Điều đầu tiên cần làm là kích hoạt chế độ gỡ lỗi, cả trên máy khách và máy chủ.

PuTTY có tính năng gỡ lỗi tích hợp sẵn có trong Phiên -> Ghi nhật ký . Lưu ý rằng bạn cần tải phiên bạn sẽ sử dụng trước khi cài đặt Cài đặt ghi nhật ký. Cài đặt ghi nhật ký là một phần của cấu hình của phiên.

Trên máy chủ, bạn có thể để LogLevel thành INFO (in /etc/ssh/sshd_config) và thay đổi nó thành DEBUG chỉ khi bạn không thể thấy bất cứ điều gì liên quan đến vấn đề của mình. Hãy nhớ đăng xuất và khởi động lại máy chủ ssh để áp dụng các thay đổi ( /etc/init.d/ssh restart). Nếu DEBUG không cung cấp thông tin hữu ích, hãy thử DEBUG3, theo man sshd_config.

Vui lòng cập nhật câu hỏi của bạn với những phát hiện của bạn!

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.