Jon*_*han 6 ubuntu wake-on-lan
我在家里有一台 Ubuntu 服务器 (16.10),想知道当我不在家时是否可以远程打开它?
我设置了 Wake-On-LAN,但这似乎只在我使用另一台与我的 Ubuntu 服务器连接到同一网络的计算机时才有效。
关于让 WOL 远程工作的任何想法?
use*_*ser 10
首先,您的计算机在开机时运行 Ubuntu 这一事实与局域网唤醒 (WOL) 功能无关。
其次,WOL 使用具有特定格式的以太网帧。
第三,以太网帧不会被路由到本地网段之外。在互联网的情况下,中间网络甚至可能根本不使用以太网。
第二点和第三点的结果是,为了向网络上的计算机发送 WOL 请求,您需要从本地网段上的另一个系统执行此操作。无法通过 Internet 直接发出 WOL 请求。
当然,您可以执行CyberFonic 建议的操作,并在本地网段上安装一个小型、低功耗的系统,您可以使用它来发出 WOL 请求。但在那种情况下,WOL请求确实是由本地网段上的另一个系统发出的;您只是碰巧通过 Internet访问该系统。
小智 8
我和你的情况类似。使用 Ubuntu 16.04 LTS 作为 Web 服务器。
服务器和 Raspberry Pi 都通过以太网电缆连接到路由器。
RPi 持续运行。我已经安装并配置了 fail2ban 以获得额外的安全性。路由器配置为允许从互联网到 RPi 的 SSH 访问。当我想启动耗电的 IBM 服务器时。我通过 SSH 连接(实际上是 mosh)到 RPi 并运行以下 Python 程序:
""" Send a WoL packet to the specified MAC address
NB: Won't work on OS/X. The AF_PACKET is specific to Linux.
Needs to be run with sudo.
"""
import socket
PREAMBLE = bytearray((0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF))
# Need to configure the following for the correct MAC of the target
MAC = bytearray((0x00, 0x14, 0x85, 0xa1, 0x43, 0xde))
pkt = PREAMBLE + 16*MAC
sock = socket.socket(socket.AF_PACKET, socket.SOCK_RAW)
# Configure the correct interface name
sock.bind(('enp2s1', 0))
sock.sendall(pkt)
sock.close()
Run Code Online (Sandbox Code Playgroud)
如果您没有静态 IP 地址,那么您可能需要配置 dynDNS 或类似的内容以及您的域地址。