perplexity-cli
🧠 A simple command-line client for the Perplexity API. Ask questions and receive answers directly from the terminal! 🚀🚀🚀
SNELL V4/SNELL V5/SNELL V6 一键安装脚本,支持Debian/Ubuntu/Centos/Alpine
支持 Snell v4 / v5 / v6、Snell 多用户、ShadowTLS v3、流量管理,以及 Docker / Docker Compose 部署。
sh -c "$(curl -fsSL https://install.jinqians.com)"
推荐 Debian / Ubuntu 用户优先使用管理菜单,可安装和管理 Snell、ShadowTLS、多用户、流量限制等功能。
bash <(curl -L -s menu.jinqians.com)
| 系统 | 命令 | 说明 |
|---|---|---|
| Debian / Ubuntu | bash <(curl -L -s snell.jinqians.com) |
Snell 主安装脚本 |
| CentOS | bash <(curl -L -s snell-centos.jinqians.com) |
CentOS 版 Snell 安装脚本 |
| Alpine 本地构建 | sh -c "$(curl -fsSL https://snell-docker.jinqians.com)" |
Alpine 本地构建安装 |
| Alpine 3.18 | sh -c "$(curl -fsSL https://snell-alpine.jinqians.com)" |
Alpine 3.18 安装 |
在脚本中为 Snell 配置 ShadowTLS 后,脚本会把 Snell 后端改为仅监听 127.0.0.1:Snell端口,客户端只连接 ShadowTLS 对外端口。这样可以避免原始 Snell 端口继续暴露在公网。
Docker Hub 镜像:jinqians/snell-server
| 标签 | 版本 | 说明 |
|---|---|---|
latest |
Snell v5.0.1 | 固定指向 v5,不指向 v6 |
v4 |
Snell v4.1.1 | v4 当前推荐版本 |
v5 |
Snell v5.0.1 | v5 当前推荐版本 |
v6 |
Snell v6.0.0b4 | v6 当前 Beta 版本 |
v4.0.0 / v4.0.1 / v4.1.0 / v4.1.1 |
Snell v4 | 固定版本标签 |
v5.0.0 / v5.0.1 |
Snell v5 | 固定版本标签 |
v6.0.0b1 / v6.0.0b2 / v6.0.0b3 / v6.0.0b4 |
Snell v6 beta | 固定版本标签 |
架构支持:
linux/amd64、linux/arm64、linux/arm/v7linux/amd64、linux/arm64docker run -d --name snell-server \ --restart unless-stopped \ -p 6160:6160/tcp \ -p 6160:6160/udp \ -e SNELL_PORT=6160 \ -e SNELL_VER=v5 \ -v ./snell-config:/etc/snell \ jinqians/snell-server:v5
查看自动生成的 PSK:
cat ./snell-config/snell-server.conf
docker run -d --name snell-shadowtls \ --restart unless-stopped \ -p 8443:8443/tcp \ -e SNELL_PORT=6160 \ -e SNELL_VER=v5 \ -e SNELL_LISTEN_HOST=127.0.0.1 \ -e SHADOWTLS_ENABLE=1 \ -e SHADOWTLS_PORT=8443 \ -e SHADOWTLS_SNI=www.microsoft.com \ -v ./snell-config:/etc/snell \ jinqians/snell-server:v5
启用 ShadowTLS 后,客户端连接 8443。Snell 后端只在容器内监听 127.0.0.1:6160,通常不需要映射 Snell 原始端口。
查看客户端需要的密钥:
grep '^psk' ./snell-config/snell-server.conf cat ./snell-config/shadowtls-password
客户端填写:
| 项目 | 填写内容 |
|---|---|
| 服务器 | VPS 公网 IP 或域名 |
| 端口 | ShadowTLS 对外端口,示例为 8443 |
| Snell 版本 | 5 |
| Snell PSK | ./snell-config/snell-server.conf 里的 psk |
| ShadowTLS 密码 | ./snell-config/shadowtls-password 的内容,或手动传入的 SHADOWTLS_PASSWORD |
| ShadowTLS SNI | SHADOWTLS_SNI,默认 www.microsoft.com |
| ShadowTLS 版本 | 3 |
Surge 示例:
HK = snell, 服务器IP, 8443, psk = your_16_plus_char_psk, version = 5, reuse = true, tfo = true, shadow-tls-password = your_shadowtls_password, shadow-tls-sni = www.microsoft.com, shadow-tls-version = 3
创建 compose.yml:
services:
snell-shadowtls:
image: jinqians/snell-server:v5
container_name: snell-shadowtls
restart: unless-stopped
ports:
- "8443:8443/tcp"
environment:
- SNELL_PORT=6160
- SNELL_VER=v5
- SNELL_LISTEN_HOST=127.0.0.1
- SHADOWTLS_ENABLE=1
- SHADOWTLS_PORT=8443
- SHADOWTLS_SNI=www.microsoft.com
volumes:
- ./snell-config:/etc/snell
启动:
docker compose up -d
查看配置:
docker logs snell-shadowtls cat ./snell-config/snell-server.conf cat ./snell-config/shadowtls-password
停止并删除:
docker compose down
| 变量 | 默认值 | 说明 |
|---|---|---|
SNELL_VER |
v4 |
Snell 配置模式:v4、v5、v6 |
SNELL_PORT |
6160 |
Snell 后端监听端口 |
SNELL_PSK |
自动生成 | Snell PSK |
SNELL_LISTEN_HOST |
0.0.0.0 |
Snell 监听地址;搭配 ShadowTLS 时使用 127.0.0.1 |
SNELL_IPV6 |
true |
v4 / v6 配置项 |
SNELL_TFO |
true |
v4 / v6 配置项 |
SHADOWTLS_ENABLE |
0 |
设置为 1 启用 ShadowTLS |
SHADOWTLS_PORT |
8443 |
ShadowTLS 对外监听端口 |
SHADOWTLS_PASSWORD |
自动生成 | ShadowTLS 密码,会保存到 /etc/snell/shadowtls-password |
SHADOWTLS_SNI |
www.microsoft.com |
ShadowTLS TLS 伪装 SNI |
切换版本时同时修改镜像标签和 SNELL_VER。
# v4 docker run -d --name snell-server \ --restart unless-stopped \ -p 6160:6160/tcp \ -p 6160:6160/udp \ -e SNELL_PORT=6160 \ -e SNELL_VER=v4 \ -v ./snell-config:/etc/snell \ jinqians/snell-server:v4 # v6 docker run -d --name snell-server \ --restart unless-stopped \ -p 6160:6160/tcp \ -p 6160:6160/udp \ -e SNELL_PORT=6160 \ -e SNELL_VER=v6 \ -v ./snell-config:/etc/snell \ jinqians/snell-server:v6
./build-docker-images.sh
多架构构建并推送:
USE_BUILDX=1 PUSH=1 ./build-docker-images.sh
Snell 协议是由 Surge 团队设计的一种轻量级、高效的加密代理协议,专注于提供安全、快速的网络传输服务。该协议通过简洁的设计和加密技术,满足用户对隐私保护和高性能传输的需求。
| 特性 | Snell v4 | Snell v5 |
|---|---|---|
| 状态 | 稳定版 | 最新版 |
| 安全性 | 支持 | 支持 |
| QUIC Proxy | 不支持 | 支持 |
| Dynamic Record Sizing | 不支持 | 支持 |
| 出口控制 | 不支持 | 支持 |
ShadowTLS 是一个轻量级的 TLS 伪装工具,可以模拟正常 HTTPS 流量,用于提升连接隐蔽性和稳定性。
通过 iptables 对 Snell 节点进行流量计数,支持设置月度流量上限,超限后自动暂停节点,每月指定日期自动重置。
Snell 以明文 TCP 监听在指定端口,流量管理通过在 iptables 中添加专用计数规则(PSM_TRF 链)统计该端口的进出字节数,不影响数据包的正常转发。超限时向 INPUT 链插入 DROP 规则,阻断新连接。
客户端 ──TCP──▶ iptables 计数 ──▶ snell-server
│
超限时 DROP
在管理菜单中选择 9. 流量管理,进入交互向导:
1. 添加 / 修改流量限制 → 选择节点,设置上限 (GB) 和每月重置日
2. 查看流量状态 → 显示各节点已用流量、剩余、暂停状态
3. 手动暂停节点 → 立即阻断指定节点的新连接
4. 手动恢复节点 → 移除 DROP 规则,恢复正常访问
5. 重置流量统计 → 清零计数,并恢复被暂停的节点
首次配置后会提示安装 systemd 定时器(psm-traffic.timer),每分钟执行一次检查:
手动查看定时器状态:
systemctl status psm-traffic.timer
/etc/psm/traffic/state.json 中,下次计数从断点续计iptables-legacy 或 iptables-nft)自用配置文件:https://raw.githubusercontent.com/jinqians/snell.sh/refs/heads/main/surge.conf
=== 配置信息 ===
当前安装版本: Snell v4
# 原始 Snell 配置
HK = snell, 1.2.3.4, 57891, psk = xxxxxxxxxxxx, version = 4, reuse = true, tfo = true
HK = snell, ::1, 57891, psk = xxxxxxxxxxxx, version = 4, reuse = true, tfo = true
=== 配置信息 ===
当前安装版本: Snell v5
# Snell v5 配置(支持 v4 和 v5 客户端)
HK = snell, 1.2.3.4, 57891, psk = xxxxxxxxxxxx, version = 4, reuse = true, tfo = true
HK = snell, 1.2.3.4, 57891, psk = xxxxxxxxxxxx, version = 5, reuse = true, tfo = true
=== 配置信息 ===
# 带 ShadowTLS 的配置
HK = snell, 1.2.3.4, 8989, psk = xxxxxxxxxxxx, version = 4, reuse = true, tfo = true, shadow-tls-password = yyyyyyyyyyyy, shadow-tls-sni = www.microsoft.com, shadow-tls-version = 3
HK = snell, ::1, 8989, psk = xxxxxxxxxxxx, version = 4, reuse = true, tfo = true, shadow-tls-password = yyyyyyyyyyyy, shadow-tls-sni = www.microsoft.com, shadow-tls-version = 3
more like this
🧠 A simple command-line client for the Perplexity API. Ask questions and receive answers directly from the terminal! 🚀🚀🚀
search projects, people, and tags