便宜机场

Debian Shadowsocks 教程:apt 安装、配置与连接排查

更新于 2026-11-01 · xn--wtq35pfyd55o.shop

简答:如果你要在 Debian 服务器上部署 Shadowsocks,优先使用 Debian 软件源中的 shadowsocks-libev:先确认系统和公网 IP,再执行 apt 安装、创建 JSON 配置、启动 shadowsocks-libev-server 实例,最后同时检查 systemd 状态、TCP/UDP 监听、云安全组和客户端参数。本文只讲授权服务器和个人设备之间的合法网络连接,不建议使用来源不明的一键脚本。

定义:Shadowsocks 是一种基于 SOCKS5 工作方式的加密转发工具,服务端运行 ss-server,客户端通过本地代理组件连接服务端并转发请求。

先看最短路径:Debian Shadowsocks 部署检查表

本文以能使用 root 或 sudo 的 Debian VPS 为前提,优先覆盖 Debian 12/13 中可通过软件源获取的 shadowsocks-libev。Shadowsocks 官方文档列出 Debian/Ubuntu 的 apt 安装方式;Debian 软件包页面也显示 shadowsocks-libev 属于官方软件包。查看 Shadowsocks 官方部署文档、查看 Debian 软件包信息。

检查项成功标准失败时先看哪里
系统与权限能输出 Debian 版本,sudo 命令可用SSH 用户权限、系统版本和架构
软件包ss-server 命令存在apt 源、软件包名称和网络连接
配置文件JSON 校验通过,密码和端口已替换逗号、引号、字段名和文件权限
服务状态对应 systemd 实例为 activejournalctl 日志
端口服务器同时按需求监听 TCP/UDP配置 mode、本机防火墙、云安全组
客户端服务器地址、端口、密码、加密方式完全一致导入格式、代理模式和 DNS 请求链路

不要把“服务显示运行中”单独当作可用证明。至少还要确认端口监听、云端入站规则和客户端实际请求。

第一步:确认 Debian、架构和公网地址

先登录服务器执行以下检查。命令在服务器 SSH 终端中运行:

cat /etc/os-release uname -m id ip -br address

重点确认三点:第一,系统确实是 Debian;第二,当前账号具备 root 或 sudo 权限;第三,云平台分配了可从客户端访问的公网 IPv4 或 IPv6。若服务器位于路由器后面,还需要在上游路由器做端口转发;Debian Wiki 的 Shadowsocks 说明也把端口转发列为独立网络条件。查看 Debian Wiki 的 Shadowsocks 说明。

建议先确定一个端口,例如 8388。如果云厂商有安全组,稍后只放行该端口以及你实际使用的 SSH 端口,不要为了排错直接放开全部入站端口。

第二步:通过 apt 安装 shadowsocks-libev

官方部署页给出的 Debian/Ubuntu 路线是先更新软件索引,再安装 shadowsocks-libev。在 Debian 服务器执行:

sudo apt update sudo apt install shadowsocks-libev

安装后确认程序和 Debian 软件包提供的 systemd 单元:

command -v ss-server ss-server --help | head -n 20 systemctl list-unit-files | grep shadowsocks-libev

Debian 软件包文件列表包含 /usr/bin/ss-server、[email protected] 以及示例配置文件路径。查看 Debian 软件包文件列表。不同 Debian 发布版的默认模板内容可能不同,所以启动前建议执行:

systemctl cat [email protected]

确认模板的配置文件路径和启动参数。若模板使用 /etc/shadowsocks-libev/%i.json,下面的 server.json 示例可以直接对应使用;如果输出显示了不同路径,以本机模板为准。

第三步:创建配置文件并做 JSON 校验

先创建配置目录并生成随机密码。密码不要复用 SSH 密码、面板密码或邮箱密码:

sudo install -d -m 0755 /etc/shadowsocks-libev openssl rand -base64 24

把命令输出的随机字符串复制到配置文件中的 password 字段,然后创建文件:

sudo nano /etc/shadowsocks-libev/server.json

写入以下最小配置,并替换 CHANGE_THIS_TO_A_RANDOM_PASSWORD:

{ "server": "0.0.0.0", "server_port": 8388, "password": "CHANGE_THIS_TO_A_RANDOM_PASSWORD", "method": "chacha20-ietf-poly1305", "mode": "tcp_and_udp" }

server 是服务端监听地址,server_port 是服务端口,password 和 method 必须与客户端一致,mode 用于指定 TCP、UDP 或两者。Debian 的 shadowsocks-libev 手册列出了这些命令行参数与 JSON 字段的对应关系,并说明默认模式是不启用 UDP 的 TCP 模式。查看 shadowsocks-libev 手册。

保存后检查 JSON 格式和权限:

sudo python3 -m json.tool /etc/shadowsocks-libev/server.json sudo chown root:root /etc/shadowsocks-libev/server.json sudo chmod 600 /etc/shadowsocks-libev/server.json

如果当前版本不接受某个字段,先查看 ss-server --help 和本机 man 手册,不要直接复制其他实现的配置。shadowsocks-libev、go-shadowsocks2 和 outline-ss-server 不是同一个二进制程序,配置格式不能默认互换。

第四步:启动 systemd 服务并查看日志

如果前面确认模板使用 /etc/shadowsocks-libev/%i.json,可将 server.json 作为实例启动:

sudo systemctl enable --now [email protected] sudo systemctl status [email protected] --no-pager

如果状态不是 active (running),立即查看日志:

sudo journalctl -u [email protected] -n 80 --no-pager

常见方向包括:配置文件路径不匹配、JSON 语法错误、端口已被其他程序占用、加密方式在当前构建中不可用,以及实例单元名称与配置文件名不一致。不要反复重启掩盖首条错误,先修正日志中最早出现的配置或绑定失败信息。

如果你的 Debian 包没有使用实例模板,而是使用统一服务单元,执行 systemctl cat shadowsocks-libev.service 查看它读取的配置位置,再按该路径放置配置文件。服务单元名称和配置路径必须以本机安装结果为准。

第五步:放行必要端口,但保留 SSH 防护

端口需要同时通过云厂商安全组和服务器本机防火墙。两层规则只放行你实际使用的端口。假设 SSH 使用默认端口、Shadowsocks 使用 TCP/UDP 8388,可在确认 SSH 端口无误后使用 UFW:

sudo apt install ufw sudo ufw allow 22/tcp sudo ufw allow 8388/tcp sudo ufw allow 8388/udp sudo ufw status verbose

如果你确认规则正确,再执行:

sudo ufw enable

若 SSH 不是 22 端口,必须把示例中的 22 换成真实端口;否则启用防火墙可能导致自己无法再次登录。云安全组也要放行相同的 Shadowsocks 端口。若只配置 TCP,可只放行 TCP;配置为 tcp_and_udp 时,建议同时检查 TCP 和 UDP 规则。

不建议通过关闭防火墙来“验证是否能用”。正确做法是临时增加一条最小规则,测试后删除,并保留 SSH 的管理通道。

第六步:按五层验收,而不是只看节点显示

先确认本机监听:

sudo ss -lntup | grep -E ':(8388)\b' ps -ef | grep '[s]s-server'

如果配置了 tcp_and_udp,应结合 ss 输出和日志确认 TCP/UDP 是否都按当前实现启动。仅有 TCP 监听不一定代表 UDP 配置已经生效;反过来,端口监听也不等于云安全组允许外部访问。

  1. 服务层:systemd 为 active,日志没有持续报错。
  2. 监听层:服务绑定了预期地址和端口,没有被其他进程占用。
  3. 网络层:云安全组、本机防火墙和上游路由均允许必要端口。
  4. 参数层:客户端的服务器地址、端口、密码、加密方式与服务端逐项一致。
  5. 请求层:客户端启用代理后,用固定的 HTTPS 页面做实际请求测试,再恢复原有代理、PAC、TUN 或 DNS 设置。

客户端侧通常选择 SOCKS5 类型,填入服务器公网地址、8388 端口、相同密码和相同加密方式。具体菜单名称随 Windows、macOS、Android、Linux 客户端而变,不能把某一个客户端的按钮路径当成通用标准。

连接失败速查:现象、优先判断与下一步

现象或提示优先判断操作与验证
Connection refused目标端口没有服务监听,或服务绑定失败查看 systemctl status、journalctl 和 ss -lntup;确认客户端端口没有写错
Timeout云安全组、本机防火墙、路由或地址不可达确认公网 IP、云端入站规则和 UFW;不要先关闭全部防护
Authentication failed密码不一致或导入内容被截断重新复制密码,检查服务端 JSON 和客户端字段;不要把密码发布到公共页面
启动后立即退出配置格式、字段或端口占用问题运行 python3 -m json.tool,查看日志首条错误,并用 ss 检查端口占用
TCP 能用、UDP 不通mode、UDP 防火墙规则或客户端未启用 UDP确认服务端为 tcp_and_udp,云安全组和 UFW 都放行 UDP,客户端也支持并启用 UDP
客户端导入成功但没有连接订阅或导入格式成功,不代表服务端可达逐项核对地址、端口、密码、method、代理模式和 DNS;再看服务端日志是否出现连接记录
浏览器无效但命令行有效浏览器代理、系统代理、PAC、TUN 或其他代理软件冲突暂时只保留一个代理链路做对照测试,测试后恢复原设置

错误提示只能作为排查方向,不能直接证明唯一原因。每次只改一个变量,并记录改动前后的服务状态、监听结果和客户端表现。

shadowsocks-libev、其他实现与一键脚本怎么选

对于第一次在 Debian 上部署、只需要一个基础服务端的用户,apt 安装 shadowsocks-libev 的优点是来源清晰、可由 Debian 软件包管理器更新,且官方文档明确给出了 Debian/Ubuntu 的安装方式。

Shadowsocks 官方部署页同时列出 go-shadowsocks2 和 outline-ss-server。官方说明中,outline-ss-server 支持多用户、多端口、监控和配置热更新等能力;这些能力并不意味着它与 shadowsocks-libev 的配置文件或 systemd 单元可以直接互换。查看官方实现对比。

一键脚本适合已经核对来源、代码和适用系统的用户,不适合作为新手默认路线。脚本可能固定旧版系统、旧服务名、旧加密方式或非 Debian 软件源路径。若脚本没有提供可审计的安装内容、卸载方法和配置位置,建议回到 apt 软件包路线。

另外,插件、伪装或额外封装属于独立配置主题,不能把它们当成真实 HTTPS 服务,也不能据此承诺隐私、稳定性或兼容性。本文先完成基础 TCP/UDP 服务验收,插件问题应以对应实现和插件的官方文档为准。

运维与安全清单:部署完成后还要做什么

  • 保存配置备份,但不要把包含密码的 JSON 上传到公开代码仓库、工单或聊天群。
  • 只开放必要端口,保留 SSH 管理通道,并定期检查云安全组和本机防火墙。
  • 升级前先查看当前软件包版本、服务单元和配置备份,升级后重新检查 systemd、监听和日志。
  • 更换密码后,要同步更新所有客户端;旧密码不应继续长期有效。
  • 如果服务器不再使用,先停止并禁用服务,再删除防火墙和云安全组中的对应规则。
  • 不要把“端口开放”“客户端显示已连接”或单次测速结果单独当作长期稳定性证明。

完成基础部署后,如果你只是需要在电脑或手机上使用现成的网络加速服务,不一定需要自己维护 VPS;可以先比较配置导入、客户端支持、备份和故障迁移成本。

常见问题

Debian 12 或 13 应该安装哪个 Shadowsocks 实现?

如果你只需要基础服务端,优先先检查 Debian 软件源是否提供 shadowsocks-libev,并使用 apt 安装。go-shadowsocks2 和 outline-ss-server 是不同实现,适合需要不同部署方式或多用户能力的场景,不能直接套用同一份配置。具体版本和字段以当前系统的软件包、命令帮助和官方文档为准。

为什么 systemd 显示服务运行,但客户端仍然连接不上?

服务运行只说明进程没有退出,不代表外部端口可达。按顺序检查监听地址和端口、云安全组、本机防火墙、服务器公网 IP,以及客户端的密码、加密方式和端口。若这些都通过,再查看服务日志是否出现客户端连接记录。

Shadowsocks 服务端是否必须放行 UDP?

不一定。如果配置和使用场景只需要 TCP,可以按当前配置只开放 TCP;如果 JSON 中使用了 <code>tcp_and_udp</code>,则应同时检查服务端监听、云安全组、本机防火墙和客户端是否支持 UDP。不能仅凭 TCP 连接成功推断 UDP 正常。

配置文件应该放在哪里?

Debian 软件包提供了 shadowsocks-libev 的 systemd 模板和示例配置,但不同 Debian 版本或服务单元可能使用不同路径。先执行 <code>systemctl cat [email protected]</code> 查看 ExecStart 和配置文件路径,再创建对应实例文件,不要盲目套用其他教程的固定路径。

可以直接使用一键脚本安装 Debian Shadowsocks 吗?

可以自行审查来源和脚本内容后再决定,但不建议新手把一键脚本作为默认方案。优先使用 Debian 软件源更容易确认软件包、服务单元和卸载路径;脚本若固定旧系统、旧加密方式或隐藏配置位置,后续排错和迁移会更困难。

相关阅读

参考资料

  1. Shadowsocks 官方部署文档(shadowsocks.org)
  2. Shadowsocks 官方定义与工作方式(shadowsocks.org)
  3. Debian stable shadowsocks-libev 软件包信息(packages.debian.org)
  4. Debian shadowsocks-libev 命令与配置手册(manpages.debian.org)
  5. Debian Wiki Shadowsocks 说明(wiki.debian.org)

便宜机场是什么,适合哪些人?

便宜机场提供按流量和使用周期区分的订阅选择,包括月付、季付、年付及一次性套餐,并标注对应可用流量。页面显示支持多地区线路,可在 Windows、macOS、Android、iOS 等设备上使用。适合希望先比较流量需求、使用时长和设备兼容性的用户,具体服务内容仍应以套餐说明为准。

怎么开始使用,套餐该怎么选?

可以先创建账号并完成邮箱验证,再根据预计流量和使用时长选择订阅。购买后进入账户仪表盘,在订阅中心复制订阅链接,也可使用扫码或一键导入;随后按照账户中的兼容性提示选择客户端。不同设备的下载与使用指引可能不同,导入前应确认客户端支持情况。

使用前需要注意什么?

连接前应核对套餐有效期、剩余流量和具体权益,遇到异常可先更新客户端与订阅,再查看帮助中心或登录后提交工单。订阅链接属于账户使用信息,应妥善保管,避免转发或泄露。使用网络接入服务时,还应了解所在地及目标服务的相关规则,实际体验以网络环境和套餐说明为准。

常见问题

便宜机场有哪些套餐类型?

页面列出月付、季付、年付和一次性套餐,并按100G、500G、1000G等流量档位区分,具体权益以套餐说明为准。

购买后如何导入便宜机场订阅?

进入仪表盘的订阅中心后,可复制订阅链接、扫码或使用一键导入,并按账户提示选择兼容客户端。

连接出现问题时应该怎么处理?

先更新客户端和订阅,检查套餐有效期及剩余流量;仍未解决时,可查看帮助中心或登录后提交工单。

本页为第三方整理的介绍,与便宜机场无关联,具体以便宜机场的公告为准。