嘟嘟社区

[经验] 轻量内网穿透工具, 改造闲置笔记本成为家用服务器


自己在淘宝花了 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
“`shell
./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

辛苦你了,又造了一套轮,子,frp这种大众维护的项目不香?
一个frp走起,随时随地,想怎么用都可以
确实frp好用
frp  ngrok  n2n…挺多选择的
最近发现了 rathole 用FRP  RUST重写的也挺不错,配置比FRP简单点
为啥我的有外网,就是80  443用不了。
frp不香吗
本帖最后由 忘江湖 于 2022-1-13 09:04 编辑

比frp更好用吗?我觉得frp就很轻量,而且配置极其简单,同时功能强大,支持协议众多,你这个轮子比它更好用不

frp的配置没感觉比楼主的配置复杂到哪里去嘛

frp +1