|
自己在淘宝花了 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 user@1.1.1.1 # 即可直接连接到家庭服务器/内网主机
```
## TODO
目前仅支持 TCP 服务转发, 下一步重点是安全性的提升, 后面会根据自己的需求考虑加入 UDP 服务转发.
## URL
感兴趣的朋友可以点击了解: https://github.com/Leviathan1995/spleen |
|