远程打开我的 Ubuntu 服务器?

Jon*_*han 6 ubuntu wake-on-lan

我在家里有一台 Ubuntu 服务器 (16.10),想知道当我不在家时是否可以远程打开它?

我设置了 Wake-On-LAN,但这似乎只在我使用另一台与我的 Ubuntu 服务器连接到同一网络的计算机时才有效。

关于让 WOL 远程工作的任何想法?

use*_*ser 10

首先,您的计算机在开机时运行 Ubuntu 这一事实与局域网唤醒 (WOL) 功能无关。

其次,WOL 使用具有特定格式的以太网帧。

第三,以太网帧不会被路由到本地网段之外。在互联网的情况下,中间网络甚至可能根本不使用以太网。

第二点和第三点的结果是,为了向网络上的计算机发送 WOL 请求,您需要从本地网段上的另一个系统执行此操作。无法通过 Internet 直接发出 WOL 请求。

当然,您可以执行Cyber​​Fonic 建议的操作,并在本地网段上安装一个小型、低功耗的系统,您可以使用它来发出 WOL 请求。但在那种情况下,WOL请求确实是由本地网段上的另一个系统发出的;您只是碰巧通过 Internet访问系统。

  • 一些家用路由器具有 WOL 功能,如果向特定机器发出请求,则通过添加 WOL 或以其他方式(API 或路由器的 Web 界面,注意:独立于管理界面) (2认同)

小智 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 或类似的内容以及您的域地址。

  • 还有`apt-get install wakeonlan` (3认同)