¿Hay alguna manera de saber si una máquina Linux fue despertada por un paquete Wake-on-Lan?

2

Estoy buscando una manera (programática o de otro tipo) para determinar si WOL despertó mi máquina o no (digamos, un cuadro de Ubuntu Server).

Esta es una especie de pregunta doble, donde quiero saber si puedo:

a) Enganche algo que escuche acerca de ser despertado cuando la máquina salga del sueño y

b) Entonces puede determinar de alguna manera si la estela se debió a WOL o no

No me preocupa demasiado qué mecanismo (si lo hay) se logra, pero estoy realmente interesado en si es posible.

Tal vez si hubiera algún archivo que registrara tiempos de activación / suspensión, podría escribir un pequeño programa que hiciera un bucle y ocasionalmente verificara el archivo en busca de cambios, pero no sé qué necesitaría hacer para descubrir que era WOL o no (o si tal archivo existe).

Gracias

Rhys
fuente
¿Cuál es su caso de uso? ¿Qué otros eventos hacen que su computadora se despierte?
depquid
1
@depquid imagina un escenario en el que alguien físicamente podría activar la máquina, en cuyo caso quieres dejar que continúen, pero alguien en la red podría activar la máquina, en cuyo caso deseas seguir ciertos procedimientos para verificar la intención del despierte, y en caso de que no duerma, la máquina nuevamente.
Rhys
No estoy seguro de lo que quieres decir con "intención". La intención implícita de un paquete WOL es reactivar la computadora. ¿O es un problema de seguridad cuando le preocupa que otros usuarios de la red emitan WOL a su computadora? Tal vez podría esperar 5 minutos después del inicio para que un usuario inicie sesión, local o remotamente, y luego volver a dormir si nadie lo hace.
depquid
Si no me equivoco, WOL es proporcionado por el BIOS. Entonces, a menos que el BIOS exponga algo sobre cómo se encendió la PC, no creo que pueda obtener esa información.
Bobby
¿Qué hay de los interruptores físicos? ¿Hay algún evento registrable en esos? (En mi caso, me importa discernir WOL vs interruptor físico para regresar después de haber suspendido - en el caso de WOL, y sólo entonces, quiero ejecutar un guión y luego suspender.)
unhammer

Respuestas:

1

Para determinar si su máquina se ha despertado, puede probar si puede alcanzarla, como lo haría con cualquier otra máquina para ver si está allí:

  • silbido
  • telnet algún puerto de un servicio vinculado al inicio de la máquina
  • use snmp si está configurado

Si no puede saber si WOL ha iniciado su máquina o no, eso no es posible, ya que toda la comunicación entre los elementos involucrados en WOL. es decir, el paquete mágico, la tarjeta de ethernet y el BIOS, se produce incluso antes de que se inicie el sistema operativo.

Dawud
fuente
0

Necesitaría otro dispositivo siempre encendido para monitorear constantemente el cable para el paquete WOL. Tal dispositivo tendría que ser relativamente inteligente. Otra computadora que ejecuta una herramienta en modo promiscuo para buscar el paquete WOL debería, en teoría, poder atraparlo.

El dispositivo debería estar siempre encendido y escaneando la conexión de red. Existe la posibilidad de que el sensor lo pierda, pero debería funcionar. En resumen, básicamente otra PC. Si bien puede haber algún dispositivo de red que pueda funcionar, no lo sé. Nunca he usado uno, pero existe al menos la posibilidad de que un interruptor cargado con un firmware de Linux pueda hacerlo.

página de soporte del dispositivo del producto del firmware del enrutador / conmutador Linux

cybernard
fuente