Git Product home page Git Product logo

wolgoweb's Introduction

WolGoWeb

WolGoWeb是一款远程唤醒WebAPI工具,主要用于搭建在局域网服务器或NAS中,实现WebAPI唤醒局域网内主机。

在使用该工具前,首先要确认需要唤醒的主机支持WOL功能并且已经开启。

开发状态

build docker image

WolGoWeb 经历了五年的测试已经在诸多测试、生产环境得以稳定运行。

  • master 分支用于发布开发版本(稳定性需要进一步测试)
  • release 版本为经测试稳定发布的版本(建议下载最新的 release 版本部署)

在生产环境中建议使用Docker或release版本来部署WolGoWeb。

部署说明

1、服务器直接部署

无论是Windows还是Linux系统都可以直接下载对应的 release 编译版本直接运行即可,无需安装任何依赖。

WolGoWeb_linux_amd64 -port 9090

其中参数 -port 表示服务端口号,默认是 9090 也可以不填。

需要注意的是指定端口必须可以访问,可能需要额外配置防火墙。

运行参数说明:

参数名称 描述 备注
-c 设置配置源 default命令行、env环境变量,默认:default
-port 开放服务端口 默认:9090
-web 是否启用Web页面 默认:true
-username 设置Web页面登陆账号 仅在启用Web页面时,且-username-password都不为空时有效
-password 设置Web页面登陆密码 仅在启用Web页面时,且-username-password都不为空时有效
-key API权限验证KEY 默认:false不进行权限验证,详见API权限验证说明

2、服务器Docker-compose部署(推荐)

使用 Docker-compose 可以十分便捷的部署 WolGoWeb 工具,首先要确保服务器中已经安装了 Docker 和 Docker-compose。

创建一个 docker-compose.yml 文件:

version: '3'
services:
  wol-go-web:
    image: chishin/wol-go-web:latest
    container_name: WolGoWeb
    restart: unless-stopped
    network_mode: host
    environment:
      - PORT=9090
      - KEY=false

启动容器:

docker-compose pull
docker-compose up -d

到此部署已经完成,如果需要升级到最新版本,可直接执行以下命令:

docker-compose down
docker-compose pull
docker-compose up -d

3、服务器Docker部署

使用 Docker 部署 WolGoWeb 工具:

docker run -d --net=host chishin/wol-go-web

如果需要指定端口可以使用下面的命令:

docker run -d --net=host --env PORT=端口号 chishin/wol-go-web

环境说明:

参数名称 描述 备注
PORT 开放服务端口 默认:9090
WEB 是否启用Web页面 默认:true
USERNAME 设置Web页面登陆账号 仅在启用Web页面时,且USERNAMEPASSWORD都不为空时有效
PASSWORD 设置Web页面登陆密码 仅在启用Web页面时,且USERNAMEPASSWORD都不为空时有效
KEY API权限验证KEY 默认:false不进行权限验证,详见 API权限验证说明

4、群晖Docker部署

群晖系统可以在Docker应用的 注册表 中搜索 wol-go-web,即可下载和部署项目。

更多图文教程可以参考 https://github.com/xiaoxinpro/WolGoWeb/blob/master/docker/README.md

使用方法

1、验证部署成功

完成部署工作即可开始使用,首先使用浏览器访问 http://服务器IP或域名:9090,如果修改了端口号请访问对应的端口。

访问服务地址

看到以上界面表示服务部署成功。

2、发送唤醒请求

可以直接使用浏览器访问 http://服务器IP或域名:9090/wol?mac=需要唤醒主机的MAC地址 当出现以下界面表示唤醒命令发送成功。

发送唤醒请求

3、唤醒请求参数

参数名称 描述 备注
mac 唤醒主机的MAC地址 必填
ip 唤醒主机的IP地址 默认:255.255.255.255
port 唤醒命令发送的端口 默认:9

4、API权限验证

API权限验证用于防止他人触发唤醒指令的发送,是一种唤醒指令安全措施,默认处于关闭状态。

开启API权限验证

在启动项目时传入 -key 参数或者Docker增加环境变量 KEY,此参数的长度必须大于等于6个字符,否则API权限验证将处于关闭状态。

权限验证请求参数

开启API权限验证后,在发送WOL唤醒请求时必须和唤醒请求一起发送一下参数。

参数名称 描述 备注
time 发送请求时的时间戳 单位:秒
token 经过加密后得到的权限Token token=MD5(key+mac+time)

例如:设定的key=123456,发送请求时的 time=1594452205, mac=00-00-00-00-00-00,计算token的公式为MD5("12345600-00-00-00-00-001594452205"),结果为token=eb3515003672b3e0324196ecd78438a2

特别注意

  • 对于参数time必须不能小于接收时刻30秒以上,同时也不能大于接收时刻的时间戳。
  • 对于多次发送相同mac的唤醒请求time值不允许相同。
  • 对于token参数长度必须为32,并且英文字符必须是小写的。
  • 对于key长度必须大于6个字符,否则不会进行权限验证。

应用实例

1、使用iOS快捷指令唤醒(Siri唤醒)

可以自己创建一个快捷指令访问唤醒的URL即可,也可以直接在iOS浏览器中打开下面的链接修改成你的服务器地址和需要唤醒的MAC地址。

https://www.icloud.com/shortcuts/0931d2a9d4e84984b8d85e977aff8ef9

快捷指令

创建完成快捷指令后可以在快捷指令主页用点击 唤醒电脑 ,或者语音唤醒Siri说出 唤醒电脑 即可完成电脑唤醒。

2、群晖定时唤醒主机

首先要确保在群晖中已经部署了WolGoWeb,可以访问群晖的IP地址:9090查看是否部署完成。

接下来在群晖里找到控制面板中的任务计划,新增一个计划任务用户定义脚本

常规界面中随意填写一个任务名称,在计划界面中设定好时间;

任务设置界面输入以下唤醒命令,其中00-00-00-00-00-00为你要唤醒的主机MAC地址。

curl http://127.0.0.1:9090/wol?mac=00-00-00-00-00-00

如果你的WolGoWeb不是部署在群晖中,需要将上面命令中的127.0.0.1:9090替换成你部署的IP和端口。

1653360092485.png

最后点击确定按钮保存任务。

在任务列表里找到刚刚创建的任务,右击运行可以立即唤醒主机。

3、浏览器收藏夹快捷唤醒

可以在电脑或手机等任意浏览器中创建一个收藏夹或书签,名称随意填写,地址填入:

http://192.168.10.10:9090/wol?mac=00-00-00-00-00-00

其中192.168.10.10:9090是你部署的WolGoWeb,00-00-00-00-00-00为你要唤醒的主机MAC地址。

需要唤醒时,直接在收藏夹或书签中点击即可执行唤醒动作。

wolgoweb's People

Contributors

dependabot[bot] avatar xiaoxinpro avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

wolgoweb's Issues

如何关闭默认显示的页面,在**,这违反了法律,会被认为是开启了web服务

即下面的页面如何修改或者关闭,我是通过群晖docker布置的。

WOL唤醒工具

API: 192.168.1.202:9090/wol

Params:
mac : 需要唤醒的MAC地址(必须),
ip : 指定IP地址(默认:255.255.255.255),
port : 唤醒端口(默认:9),
time : 请求时间戳(配合授权验证使用),
token: 授权Token = MD5(key + mac + time)(必须存在key的情况下才有效,否则忽略。),

Version: 0.0.4

我只在目录下看到了完整的wolgoweb文件,没有可供修改或者删除的地方。

程序端口只映射到了ipv6地址

不管是二进制文件还是docker-compose运行,9090端口都只被映射到了ipv6,没有映射到ipv4

netstat -ntlp

tcp6       0      0 :::9090                 :::*                    LISTEN      19009/./WolGoWeb_1.

使API提供一个时间戳?

在iOS捷径中,访问启用了Token验证的实例时,需要一个时间戳,但捷径本身并未提供这个功能。如果能够添加一个API,通过WEB向客户端提供一个时间戳,将会非常有帮助。

默认的9090端口被扫描

群晖安装docker部署后,默认9090端口运行,docker日志里面能看见有很多外国ip在扫描,但是群晖系统日志里面什么都没有提醒,麻烦看看有没有什么问题,我已经把端口修改了
Uploading 微信截图_20230816113915.png…
Uploading 微信截图_20230816113943.png…

关于istoeros的唤醒

istoreos主路由,下面分别是群晖和电脑。
在istores和群晖都安装了此项目,群晖能唤醒电脑,而istoresos无法唤醒电脑,这可能是什么问题呢?

在我这里无法唤醒

我的电脑使用etherwake 是可以唤醒的,不知道这是为什么。
您需要我提供一些信息来帮助解决问题吗?

能否支持下ARM架构

N1 arm架构,DOCKER部署成功,自动停止报错standard_init_linux.go:211: exec user process caused "exec format error"

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.