V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
summer2019
V2EX  ›  分享创造

[Spark] 基于浏览器的开源跨平台远程控制

  •  2
     
  •   summer2019 · 2022-03-16 17:38:19 +08:00 · 3191 次点击
    这是一个创建于 1002 天前的主题,其中的信息可能已经有所发展或是发生改变。

    首先先贴一下链接:https://github.com/XZB-1248/Spark

    欢迎各位大佬的 star

    为什么要造轮子

    之所以重复造轮子,主要是为了方便自己的使用,传统的远控大都只能 C/S ,但是本人就稀罕浏览器,无奈支持浏览器的远程工具又太少,不符合自己的预期。 造轮子之前为了能够远程控制电脑,自己写了一个 server 版的远程工具,但是这么一来就必须依赖内网穿透,所以当时就一直想要做一个能够连接服务器,摆脱内网穿透的远程工具。

    有什么特性

    支持远程终端、设备快照截图、支持远程浏览、下载和删除设备中的文件,支持进程管理,支持常规的关机、重启、注销、锁屏、睡眠之类的功能。 此外,可以直接通过 API 来控制设备,获取设备基本信息,可以通过 API 来拓展一下用途。 最主要的是,可以随时通过浏览器来控制设备。

    截图

    总览 文件管理 进程管理 终端管理

    16 条回复    2022-03-21 09:06:23 +08:00
    gps949
        1
    gps949  
       2022-03-16 17:59:43 +08:00
    jumpserver 、next-terminal 、wgcloud……

    只能说 Guacamole 养活了一批 web 终端工具
    tyzrj766
        2
    tyzrj766  
       2022-03-16 18:07:02 +08:00
    撞头像了,我还以为我什么时候可以发技术贴子😂
    summer2019
        3
    summer2019  
    OP
       2022-03-16 18:08:53 +08:00
    @gps949 其实你看一下就会发现,我没有用这些家伙。
    这个远程终端,说实话就是远程让客户端调用 cmd 或者 sh ,所以不需要依赖这些。

    唯一用的烂大街的东西,大概就是 xterm.js 和 antdesign 了吧
    qwq11
        4
    qwq11  
       2022-03-16 19:20:42 +08:00
    我超!万叶!
    chunyu
        5
    chunyu  
       2022-03-16 22:24:17 +08:00
    添加一个 系统监控 可以用来云监控服务器群了
    summer2019
        6
    summer2019  
    OP
       2022-03-16 23:33:41 +08:00
    @qwq11
    @tyzrj766
    没看出来,这里还有这么多原神玩家ヾ(•ω•`)o😮
    summer2019
        7
    summer2019  
    OP
       2022-03-16 23:35:27 +08:00
    @chunyu
    确实可以,不过到时候得重新设计一下页面了,现在列表里已经放不下什么东西了
    3dwelcome
        8
    3dwelcome  
       2022-03-17 00:06:50 +08:00
    看了一眼代码。不需要分协议的,个人推荐用 gRPC ,把传统的 restful post/get api 和 term websocket 封装在一起处理。

    这样只需要一套逻辑代码,就可以同时对应短连接和长连接。

    代码里那么多 go ,本质上还算 C/S 架构,就多了一个 web 当成 UI ,还是没把浏览器全部潜能给挖出来。
    summer2019
        9
    summer2019  
    OP
       2022-03-17 10:14:02 +08:00
    @3dwelcome 当初立项的时候,考虑到既要长短连接,又要承载文件传输,首先就想到了 http+websocket ,然后就这么做下来了😂

    当初首先考虑是要把 UI 做成网页以支持浏览器,没想到其他的,就简单地做了一下,所以本质上确实还是 C/S
    MyFaith
        10
    MyFaith  
       2022-03-17 10:29:35 +08:00
    一如既往的没有天津广播
    MyFaith
        11
    MyFaith  
       2022-03-17 10:30:47 +08:00
    @MyFaith 回复错帖子了 :(
    ifwangs
        12
    ifwangs  
       2022-03-17 23:49:38 +08:00 via Android
    看到名字想起了大数据那个 spark
    weak
        13
    weak  
       2022-03-18 10:03:52 +08:00 via iPhone
    大佬 生成的客户端也需要配置文件吗? 客户端一直连不上
    summer2019
        14
    summer2019  
    OP
       2022-03-18 12:10:29 +08:00 via iPhone
    @weak 客户端自然是不用的,可以检查一下路径之类的配置?
    hbtech
        15
    hbtech  
       2022-03-20 01:51:39 +08:00
    很有意思啊,已 star

    尝试在 win 本和树莓派用了一下,win 下适配得还好,树莓派( Raspberry Pi OS )下的终端感觉有点问题,首先是不会在前面显示用户名和当前目录,还有就是中文显示会乱码



    另外终端不能输入中文,不知道是 bug 还是 feature 了
    summer2019
        16
    summer2019  
    OP
       2022-03-21 09:06:23 +08:00
    @hbtech 因为当初就是用 windows 编写的,所以对 windows 支持比较好😂。
    linux 系统下基于兼容性考虑,默认用的 /bin/sh ,所以不显示用户名和当前目录。
    至于中文乱码,这是当初用 windows 开发,windows 里面中文是 gbk 编码,终端在传输数据的时候直接进行了转码,所以可能在 linux 下中文出错。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   870 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 21:34 · PVG 05:34 · LAX 13:34 · JFK 16:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.