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

闲置笔记本改造成服务器

  •  
  •   leviathan0992 · 2022-01-13 07:58:41 +08:00 · 5917 次点击
    这是一个创建于 1080 天前的主题,其中的信息可能已经有所发展或是发生改变。

    接上条 2022 年,现在的黑苹果解决方案是什么? .

    分析了一波后, 自己在淘宝花了 2000 买了一个 mini 主机 i7-8750H 不带内存和硬盘, 在 JD 买了两条威刚的 8G 内存条(500) 和一个 500G 的三星 Nvme 硬盘(500), 合计 3000 元左右配了一台黑苹果, 本来想自己装系统,结果教程第一步就失败, 后来索性又花 120 在淘宝找了店家远程安装的黑苹果, 目前使用一切正常.

    旧笔记本就闲置下来, 想把它改造成一个家用小服务器. 比起目前云厂商买的小服务器, 笔记本的配置还算可以. 云厂商买的低配轻量服务器, 除了部署博客以外别的什么也干不了, 加之前两天自己根据 huggingface 上机器学习的模型写了一个英汉互译的 RESTful 服务, 本来打算部署在公网上直接通过 alfred workflow 来使用结果发现连安装 pytorch 都会 OOM. 索性尝试把闲置的笔记本利用起来.

    我的需求就是在笔记本部署一些简单的 TCP 服务可以直接暴露在公网使用, 或者能 SSH 上去编译 kernel 模块, 找了一圈内网穿透的工具, 配置使用都略带繁琐, 所以自己写了一个轻量级的内网穿透工具: spleen.

    通过在一台具有公网 IP 的小型服务器(阿里云轻量)部署 spleen 进行转发, 可以随时随地访问(闲置笔记本)的 TCP 服务, 例如 SSH, HTTP/S 等.

    公网服务器部署 spleen-server

    # 配置端口转发规则
    > vim .server.json
    
    {
      "ServerIP"   : "0.0.0.0",  # 公网服务器监听地址
      "ServerPort"   : 1234,  # 公网服务器监听端口, 该端口用来与家庭服务器 /内网主机建立通信隧道
      "MappingPort" : [ # 端口映射规则
    	"5000:22",  # 即访问公网服务器的 5000 端口就等于访问家庭服务器 /内网主机的 22 端口
    	"5001:3306"
    	...
      ]
    }
    
    # 启动
    > ./spleen-server -c .server.json
    
    

    家庭服务器 /内网主机部署 spleen-client

    ./spleen-client -c .client.json
    

    例如 SSH 服务, 在顺利部署 spleen 的客户端和服务端后, 通过公网服务器(假定 IP 为 1.1.1.1), 可以直接通过端口映射来连接闲置笔记本:

    执行 ssh -p 5000 [email protected] # 即可直接连接到家庭服务器 /内网主机
    

    TODO

    目前仅支持 TCP 服务转发, 下一步重点是安全性的提升, 后面会根据自己的需求考虑加入 UDP 服务转发.

    URL

    感兴趣的朋友可以点击了解: https://github.com/Leviathan1995/spleen

    15 条回复    2022-01-18 10:52:13 +08:00
    yaoyao1128
        1
    yaoyao1128  
       2022-01-13 08:02:05 +08:00 via iPhone
    emmm 能介绍一下和别的工具相比的优势咩~更方便了解和做选择~
    jifengg
        2
    jifengg  
       2022-01-13 08:39:12 +08:00
    支持一下原创。不过,frp 配置已经足够简单了呀。
    hello365
        3
    hello365  
       2022-01-13 09:35:02 +08:00
    家里有好几个老的笔记本,都是散热不行,觉着经不住 24 小时折腾,看标题我还以为是硬件拆机改造,重新定制机箱保障 24 小时运行呢。
    vrlu1989
        4
    vrlu1989  
       2022-01-13 10:54:59 +08:00
    支持一下, 后续如果支持了 todo 写的 quic 或者 kcp 这种协议,应该会流媒体传输速度提升很大, 我就可以把家里 1T 的笔记本改成影视站,随时看美剧了.
    vrlu1989
        5
    vrlu1989  
       2022-01-13 10:55:36 +08:00
    顺便问一句楼主写的机器学习翻译服务开源了吗,我也想自建一个.
    cheung
        6
    cheung  
       2022-01-13 11:27:12 +08:00
    80 、443 、8080 都封了,玩个锤子
    zagfai
        7
    zagfai  
       2022-01-13 11:36:09 +08:00
    最近用了 tailscale 。。简单得吓人
    shangyu7
        8
    shangyu7  
       2022-01-13 12:46:45 +08:00
    frp 不就行了,有啥区别
    lazywen
        9
    lazywen  
       2022-01-13 14:00:47 +08:00 via Android
    我一个笔记本关闭独显后功耗低的吓人,cpu 空闲时 5~7w ,挺适合的,在考虑把笔记本改成软路由
    vbe
        10
    vbe  
       2022-01-13 14:04:15 +08:00
    还是用专门的服务器吧,笔记本止不住的大电量耗能。
    WebKit
        11
    WebKit  
       2022-01-13 18:35:08 +08:00 via Android
    建议卖了笔记本买个 NAS ,笔记本的散热和功耗都是个问题
    nmap
        12
    nmap  
       2022-01-17 09:57:39 +08:00
    frp 还不够简单?不比你这个复杂吧
    zhangjinghua
        13
    zhangjinghua  
       2022-01-17 18:59:55 +08:00
    好厉害啊,怎么实现的???
    leviathan0992
        14
    leviathan0992  
    OP
       2022-01-17 21:32:55 +08:00
    @vrlu1989 暂时不开源, 模型不好, 翻译的还是不够准确. 等我重新训练了再开源.
    @zhangjinghua Golang 通过 TCP 隧道,直接进行端口转发就行了.
    fqzz
        15
    fqzz  
       2022-01-18 10:52:13 +08:00
    猝不及防的推广啊
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2832 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 07:16 · PVG 15:16 · LAX 23:16 · JFK 02:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.