Ngã mạng (Máy chủ đích không thể truy cập được)


15

Tôi đang chạy Pi không ngừng, kết nối qua SSH qua mạng. Tôi đang có một vấn đề mà tôi có thể tái tạo một cách nhất quán. Tôi sẽ để một tập lệnh Python chạy trên Pi của mình và quay lại vài giờ sau đó và các kết nối SSH đến Pi sẽ hết thời gian.

Nếu tôi ping nó, tôi nhận được như sau:

C:\Users\andrew>ping 192.168.1.42

Pinging 192.168.1.42 with 32 bytes of data:
Reply from 192.168.1.46: Destination host unreachable.

Cách duy nhất tôi có thể lấy lại trên mạng là khởi động lại nó (rút điện).

Có ai có kinh nghiệm này? Có bất kỳ tệp nhật ký nào tôi có thể xem để chẩn đoán vấn đề không?


1
Trên một quả mâm xôi, tôi chỉ có một cronjob chạy tập lệnh python và nó cũng sẽ chết sau vài giờ cho đến 2 ngày. Tôi không thể SSH nó nữa, chỉ khởi động lại bằng cách cắt điện sẽ giúp.
k0pernikus

@ k0pernikus thú vị! Bây giờ tôi đang thử chạy nó với phần mềm được đính kèm, cho đến nay (4 giờ và đếm) và nó đã không thành công. Bạn có đang sử dụng màn hình không?
Andy Smith

những gì trong / etc / mạng / giao diện của bạn? Có gì đáng sợ trong dmesg? RPI được kết nối với mạng như thế nào? Thông qua một bộ định tuyến? Những gì trong bản ghi của bộ định tuyến? Nếu bạn cắm lại cáp ethernet vào RPI, nó có đưa nó trở lại mạng không?
abolotnov

@abolotnov Tôi thực sự tìm thấy điều này ngay bây giờ nếu tôi chạy RPI có gắn màn hình - có vẻ mất nhiều thời gian hơn, nhưng khi tôi quay lại sau 6 giờ hoặc lâu hơn thì nó sẽ không phản hồi. dmesg có vẻ rõ ràng.
Andy Smith

Câu trả lời:


9

Thiết bị không dây đi ngủ sau một thời gian không hoạt động. Đó là một kế hoạch tiết kiệm năng lượng.

Bạn cần tắt tính năng powersave của wlan0.

Tôi đang sử dụng một máy thu usb không dây edimax:

Bus 001 Device 005: ID 7392:7811 Edimax Technology Co., Ltd EW-7811Un 802.11n Wireless Adapter [Realtek RTL8188CUS]

Nó sử dụng mô-đun 8192cu trong kernel.

Để tắt powersave, hãy thêm đoạn sau vào / etc / mô-đun hoặc tạo tệp (8192cu.conf) trong /etc/modprobe.d/ bằng (các) dòng:

# prevent power down of wireless when idle
options 8192cu rtw_power_mgnt=0 rtw_enusbss=0

Lần khởi động lại tiếp theo (hoặc rmmod / insmod) nó sẽ vô hiệu hóa chế độ buồn ngủ và pi của bạn sẽ có thể truy cập mọi lúc.

Tôi tạo tệp cho /etc/modprobe.d và đó là một phần của tập lệnh tôi đã tạo để thực hiện cài đặt sơ bộ trên bản dựng mới.


1
Đây là trên một mạng có dây
Andy Smith

Thật không may, tôi có cùng một vấn đề với các tính năng này bị tắt. Bộ điều hợp không dây vẫn bị tắt sau một số giờ không hoạt động.
StasM

Tôi tò mò liệu họ có thực sự tắt không. Các tệp modprobe.d được đặt tên đặc biệt (x.conf) và số lượng chính tả (như mọi khi). Bộ điều hợp không dây của bạn có phải là đơn vị 8192cu không? có lẽ bạn cần một mô-đun khác nhau?
lornix

@lornix: Bạn đã sử dụng lệnh nào để in ra loại máy thu không dây bạn đang sử dụng?
David Norman

lsusblsusb -vrất hữu ích Tìm ra mô-đun nào không phải lúc nào cũng dễ dàng, Có nhiều cách để khớp với đầu ra của modinfo 8192cunhà cung cấp: số sản phẩm trong lsusbđầu ra.
lornix

2

Thông thường, một bộ định tuyến sẽ ngắt kết nối các máy khách không hoạt động để giải phóng tài nguyên bộ định tuyến. Điều này có thể xảy ra vào những thời điểm ngẫu nhiên nếu khách hàng không hoạt động.


1

Vấn đề đối với tôi là quản lý năng lượng trên wifi, nhưng tôi đã không sử dụng chipset 8192cu, vì vậy các hướng dẫn trong câu trả lời khác không phù hợp với tôi.

Chạy iwconfigvà tìm dòng bắt đầu bằngpower management

Nếu nó nói rằng quản lý năng lượng được bật, bạn có thể tắt nó bằng:

iwconfig wlan0 power off


0

Tôi phát hiện ra rằng việc mở rộng pingsẽ làm tăng kết nối wifi một lần nữa trong trường hợp của tôi. Tôi quan sát thấy rằng sau lần ping thứ 70-100, Pi bắt đầu phản hồi và sau đó, một sshkết nối có thể được bắt đầu thành công.

Chỉnh sửa Tắt nguồn tiết kiệm

iw wlan0 set power_save off

Nhấn vào đây để biết chi tiết .

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.