流量拼车平台搭建

Pulse 是一款分布式边缘节点编排管理平台,采用 pulse-server(控制面板)+ pulse-node(边缘节点)的双进程架构。节点通过 mTLS gRPC 长连接主动连入服务器,配置变更秒级生效。

项目地址:0xUnixIO/pulse

后续所有步骤都在 SSH 终端里一行一行粘贴命令并按回车执行。


第一步:更新系统并安装基础工具

服务器刚买来,先更新一下系统,再装一些基础工具。

1. 更新系统

$ apt update -y && apt upgrade -y

如果中途弹出粉色或紫色的全屏提示(dpkg 配置界面),直接按 Enter 跳过。

2. 安装基础工具

$ apt install curl wget git -y

3. 安装 Docker 和 Docker Compose

Pulse 的安装脚本支持用 Docker 运行 PostgreSQL,推荐这种方式,干净方便。Docker 官方脚本会同时安装 Docker Engine 和 Docker Compose 插件:

$ curl -fsSL https://get.docker.com | sh

验证安装是否成功:

$ docker --version && docker compose version
![image.png](https://image.kytx.top/file/blog/trafficplatom/1778636127655_image.png) > 看到两个版本号输出就说明没问题。

第二步:运行 Pulse 一键安装脚本

安装脚本会自动完成:下载 pulse-server 二进制文件、安装 PostgreSQL 数据库、生成配置文件、配置并启动 systemd 服务。

$ bash <(curl -fsSL https://raw.githubusercontent.com/0xUnixIO/pulse/main/scripts/install.sh) server

安装过程中的交互提示

运行后会依次出现两个提示:

提示 1 — PostgreSQL 连接串

1
PostgreSQL 连接串(留空自动安装):

没有现成数据库的话,直接按回车,脚本会自动安装。
image.png

提示 2 — 选择安装方式

1
2
3
4
安装方式:
1) 原生安装(apt/yum/apk)
2) Docker
选择 [1]

输入 2 回车,选择 Docker 方式。脚本会拉取 postgres:16-alpine 镜像并启动名为 pulse-postgres 的容器。

没装 Docker 或更喜欢原生安装,直接按回车选默认的 1 也行。

安装完成

屏幕会打印面板地址和端口(随机分配,务必记下来):

1
2
Pulse server vX.X.X installed successfully
Panel: http://<你的IP>:<随机端口>

[img]https://image.kytx.top/file/blog/trafficplatom/1778636377293_image.png[/img]

第三步:访问面板并创建管理员账号

1. 打开浏览器

在浏览器(推荐 Chrome / Edge)地址栏输入:

1
http://你的服务器IP:端口

端口就是上一步安装完成后屏幕显示的那个随机端口,不是固定的 8080。

2. 初始化管理员账号

首次访问会弹出初始化向导,设置管理员的用户名和密码,点击确认即可。

这个账号是在网页上创建的,不需要在命令行操作。
image.png

3. 登录

用刚创建的用户名和密码登录,进入管理后台。


第四步:添加节点

Pulse 的架构是「一个控制面板 + 多个边缘节点」,节点才是真正跑流量的地方。

1. 在面板中生成安装命令

进入 Nodes 页面 → Add Node,面板会自动生成一条包含 --server--node-id--token 的安装命令。
image.png

2. 在节点服务器上执行

在另一台 VPS 上粘贴执行面板生成的命令:

$ bash <(curl -fsSL https://raw.githubusercontent.com/0xUnixIO/pulse/main/scripts/install.sh) node --server https://<控制面板地址> --node-id <节点ID> --token <注册令牌>

image.png
被控机器端:
image.png

安装完成后,节点会自动通过 gRPC 连接控制面板。回到面板 Nodes 页面刷新即可看到节点上线。
image.png

节点本身不监听任何端口,而是主动向外连接控制面板,所以在 NAT 网络后面(如家里宽带)也能正常工作。


第五步:配置出站线路(可选)

进入面板 Outbounds 页面,添加出站协议(支持 Shadowsocks、VLESS+Reality 等)。然后在对应的 Inbound 编辑页面选择出站线路,保存即秒级生效。

没有绑定出站的入站将保持直连。


第六步:配置 HTTPS(可选,推荐)

默认面板是 HTTP 访问,浏览器可能提示不安全。建议配置 HTTPS。

Pulse 内置了 NodeGate 反向代理,支持自动申请 Let’s Encrypt SSL 证书,无需额外装 Nginx 或 Caddy。

NodeGate 方式(推荐)

  1. 至少一个节点配置了 ACME Email(面板 → 节点详情 → 基本信息)
  2. 在 Cloudflare 将域名(如 panel.example.com)DNS 解析到节点公网 IP(用灰云/仅 DNS,不开橙色代理)
  3. 面板 NodeGate → HTTP 反向代理规则中填入域名和后端地址,保存并同步
  4. 等证书自动签发,访问 https://panel.example.com/panel 即可

Nginx 方式

也可以用宝塔面板或手动配置 Nginx 反向代理到 http://127.0.0.1:<面板端口>,再申请 SSL 证书。


常见问题

Q:安装脚本卡住了?
可能是网络问题,按 Ctrl+C 中断后重试。GitHub 资源下载慢的话,设置镜像加速:

$ PULSE_DOWNLOAD_MIRROR='https://ghfast.top/' bash <(curl -fsSL https://raw.githubusercontent.com/0xUnixIO/pulse/main/scripts/install.sh) server

Q:忘记管理员密码?
在数据库修改 users 表的 password_hash 字段,或在面板设置页面重置。

Q:如何修改面板端口?
编辑配置文件后重启服务:

$ nano /etc/pulse/pulse-server.env && systemctl restart pulse-server

修改 PULSE_SERVER_ADDR 的值(格式为 :端口号)即可。

Q:如何完全卸载?

$ curl -fsSL https://raw.githubusercontent.com/0xUnixIO/pulse/main/scripts/uninstall.sh | sh

卸载脚本不会删除 PostgreSQL 数据库,如需清理请手动执行 DROP DATABASE pulse


如果任何一步卡住了,或屏幕出现 Error / Failed 红色字样,把报错内容发给我,帮你排查。