You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过互联网使用Wake-On-Lan唤醒办公室电脑?

问题

我想在家中移动设备的应用里,向办公室的电脑发送Wake-On-Lan数据包。以下代码在连接办公室网络时能正常运行:

procedure WakeOnLan(const AMacAddress: string); 
type
  TMacAddress = array [1..6] of Byte;  
  TWakeRecord = packed record
    Waker : TMACAddress;
    MAC   : array [0..15] of TMacAddress;
  end;

var
  I          : Integer;
  WR         : TWakeRecord;
  MacAddress : TMacAddress;
  UDPClient  : TIdUDPClient;
  sData      : string;  
begin
  FillChar(MacAddress, SizeOf(TMacAddress), 0);

  sData := Trim(AMacAddress);

  if Length(sData) = 17 then begin

    for I := 1 to 6 do begin
      MacAddress[I] := StrToIntDef('$' + Copy(sData, 1, 2), 0);
      sData := Copy(sData, 4, 17);
    end;

  end;

  for I := 1 to 6  do WR.Waker[I] := $FF;
  for I := 0 to 15 do WR.MAC[I]   := MacAddress;

  UDPClient := TIdUDPClient.Create(nil);
  try
    UDPClient.Host := '255.255.255.255';
    UDPClient.Port := 32767;
    UDPClient.BroadCastEnabled := True;
    UDPClient.Broadcast(RawToBytes(WR, SizeOf(TWakeRecord)), 7);
    UDPClient.SendBuffer(RawToBytes(WR, SizeOf(TWakeRecord)));
    UDPClient.BroadcastEnabled := False;
  finally
    UDPClient.Free;
  end;
end;

但在家中网络环境下无法正常工作,请问我该如何在发送魔术包前连接办公室调制解调器/电脑?是否需要使用TSocket替代TIdUDPClient?

解决方案

不需要替换成TSocket,TIdUDPClient完全满足需求,问题核心是跨网络WOL的实现逻辑,而非组件选择:

  • 配置办公室路由器端口转发
    家中网络无法直接向办公室局域网发送广播包,必须在办公室路由器/调制解调器上设置端口转发:

    • 将外部UDP端口(与代码中一致的32767)转发至办公室局域网的广播地址(通常为192.168.x.255,需根据实际网段调整)
    • 确保路由器UPnP功能不会干扰自定义的转发规则
  • 修改代码中的目标地址
    把代码里的广播地址255.255.255.255替换为办公室路由器的公网IP地址或绑定了公网IP的动态域名(DDNS),同时关闭广播模式(跨网无需广播,直接发送至公网地址即可)。修改后的核心代码片段:

    UDPClient := TIdUDPClient.Create(nil);
    try
      UDPClient.Host := '办公室公网IP/DDNS域名'; // 替换为实际地址
      UDPClient.Port := 32767;
      // 无需开启BroadcastEnabled,直接发送魔术包
      UDPClient.SendBuffer(RawToBytes(WR, SizeOf(TWakeRecord)));
    finally
      UDPClient.Free;
    end;
    
  • 额外检查项

    • 确认办公室电脑的BIOS/UEFI已开启Wake-On-Lan功能,且系统网卡属性中启用了“允许此设备唤醒计算机”选项
    • 办公室防火墙需允许UDP端口32767的入站流量
    • 若办公室使用动态公网IP,建议配置DDNS服务自动更新域名对应IP

内容的提问来源于stack exchange,提问作者Ghost_Dz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 02:45:36