Linux 서버를 사용하지 않을 때 LAN에서 절전 모드로 전환하고 절전 모드로 전환하려면 어떻게 해야 합니까?

Linux 서버를 사용하지 않을 때 LAN에서 절전 모드로 전환하고 절전 모드로 전환하려면 어떻게 해야 합니까?

최근 개인 파일 서버로 사용하기 위해 HP 랙 서버를 구입했습니다. 서버는 현재 내 침대 밑에 놓여 있습니다. 왜냐하면 서버를 둘 곳이 없기 때문입니다. (저는 정확히 모르기 때문에) 이 서버를 모르시는 분들을 위해 말씀드리자면매우 큰 소리로.

나는 하루 중 여러 시간 동안 내 파일에 액세스할 수 있어야 하며 내 서버의 상황으로 인해 매일 밤 벽에서 서버를 종료하는 것(명백한 이유 없이 갑자기 시작되는 것을 좋아함)은 실제로는 옵션. 저 할 수 있어요진짜서버를 항상 켜둘 수 있지만 사용하지 않을 때는 절전 모드로 전환하여 다른 조치가 없으면 LAN을 통해 팬을 끌 수도 있습니다. 서버는 데비안도 실행합니다.

어떤 이유로 이 설정이 가능하지 않은 경우, 하루 중 특정 시간(또는 밤)에 컴퓨터를 종료하고 아침에 다시 시작하거나 그에 상응하는 조치를 취하는 것으로 만족할 수 있습니다.

나는 LAN 깨우기/절전을 사용하는 것 외에는 그러한 작업을 수행하는 방법에 대해 거의 알지 못합니다.

답변1

또한 서버에 관리 프로세서가 있는지 확인합니다(예: HP의 브랜드 이름은 iLO, Sun/Oracle의 브랜드 이름은 ILOM, Fujitsu의 브랜드 이름은 IRMC).

관리 프로세서는 시스템 전원이 켜질 때마다 전원이 계속 켜져 있는 작은 독립 프로세서이자 네트워크 인터페이스입니다. 서버의 주요 부분에 원격으로 액세스하고 원하는 대로 서버 전원을 끄고 켜는 데 사용할 수 있습니다. 서버에 이 기능이 있고 이를 작동시킬 수 있는 경우 Wake on LAN이 필요하지 않습니다. 간단히 관리 프로세서(일반적으로 웹 브라우저 사용)에 연결하고 서버의 주요 부분에 전원을 공급하도록 지시하면 됩니다. 섬기는 사람.

답변2

네트워크 카드와 마더보드가 WOL(Wake on LAN) 사용을 지원하는지 확인하세요 ethtool <interface>.

매일 오후 5시에 컴퓨터를 종료하는 크론 생성

17을 끄고 싶은 시간으로 변경하세요.

/etc/crontab에 다음을 추가합니다.

0 17 * * * root shutdown -h now

다음으로 "마법 패킷"을 보내려면 네트워크에 두 번째 컴퓨터가 필요합니다.

두 번째 컴퓨터에서는 wakeonlan <mac address>이를 사용하여 첫 번째 컴퓨터를 깨울 수 있습니다.

위에 나열된 것과 동일한 방법을 사용하여 wakeonlan을 cron에 넣습니다. 이 예에서는 오전 9시를 사용하겠습니다. /etc/crontab에 다음을 추가합니다.

0 9 * * * root wakeonlan `<mac address of your other server>`

또한 라우터를 확인하세요. Wake-on-LAN 패킷 전송을 지원할 수도 있습니다.

답변3

내 서버가 지시된 대로 작동하도록 하기 위해 수많은 시련과 고난을 겪은 후, 시끄러운 소리 문제를 해결하는 가장 좋은 방법은 서버를 차고에 두고 추운 밤에 물 손상이 발생하지 않기를 바라는 것입니다. 서버는 연중무휴로 운영됩니다.)

실제 기술적인 도움을 주신 모든 분들께 감사드립니다만, 제가 원하는 이상적인 상황은 이루어지지 않는 것 같습니다.

답변4

나는 똑같은 문제가 있었고 몇 가지 작업 후에 해결책을 얻었습니다.

Wake on LAN의 경우 OpenWRT 라우터를 사용합니다.에테르 깨우기 대기열. 새 연결 패킷을 netfilter 대기열로 보내는 방화벽 규칙이 있습니다. 이 대기열은 etherwake-nfqueue에 연결되어 있습니다. 이 사용자 공간 도구는 WoL 패킷을 서버에 보내고 다시 연결할 수 있게 되면 패킷을 해제합니다. 이를 달성하는 방법에 대한 좋은 튜토리얼은 다음과 같습니다.https://github.com/mister-benjamin/etherwake-nfqueue-openwrt

정지의 경우, 제가 원하는 것을 수행하는 프로그램, 즉 내 서버의 특정 포트에 대한 네트워크 연결이 없을 때 정지되는 프로그램을 찾을 수 없습니다. 예를 들어 Nextcloud 인스턴스에 중단 없이 액세스하고 싶지만 다른 연결은 신경 쓰지 않습니다. 나는 계약 도구를 사용한 활성 네트워크 연결 확인, fcntl을 사용한 활성 잠금 및 프로세스 실행을 지원하는 작은 Python 스크립트를 작성하기로 결정했습니다. 누구든지 관심이 있다면 GitHub에 스크립트를 업로드했습니다.https://github.com/7ritn/suspens_watch

22, 80 또는 443과 같은 표준 포트에서 트래픽이 감지될 때 서버를 깨우게 하는 경우 기본 취약점을 테스트하는 공격자들에 의해 서버가 자주 깨어날 것으로 예상해야 합니다.

관련 정보