本文分享 Ubuntu 系统安装 Shadowsocks 的实测过程,使用 Ubuntu 官方软件源中的 shadowsocks-libev 软件包部署 SS 服务端。和常见 SS 一键脚本不同,本文不依赖第三方脚本,而是通过 apt 安装软件包,再手动修改 config.json 配置文件。
这篇教程适合已经有 Ubuntu VPS、希望通过系统软件源安装 Shadowsocks 的用户。本文实测环境为 Ubuntu 22.04.5 LTS,完整流程包括 shadowsocks-libev 安装、监听地址修改、端口和密码设置、服务状态检查、端口监听以及客户端参数整理。
一、Ubuntu 安装 Shadowsocks 方式说明
原来的 Ubuntu 系统 Shadowsocks / SS 一键脚本属于旧式安装方式,脚本会自动下载源码、安装依赖并尝试编译 shadowsocks-libev。这类脚本在早期系统上用起来方便,但脚本长期不更新后,新版 Ubuntu 上容易出现源码结构、依赖版本或编译命令不匹配的问题。
本站这次在 Ubuntu 22.04.5 LTS 上重新测试旧版 Ubuntu SS 一键脚本,安装过程卡在 shadowsocks-libev 编译阶段,并出现下面的错误:
./configure: No such file or directory make: *** No targets specified and no makefile found. Stop.
这说明旧脚本没有完成安装,不适合作为新版 Ubuntu Shadowsocks 教程的主流程。因此本文改用 Ubuntu 官方软件源安装 shadowsocks-libev。这种方式不需要下载第三方脚本,安装、启动和卸载都交给系统软件包管理器处理。
如果您需要的是交互式 Shadowsocks 一键安装脚本,或者想安装 Shadowsocks-rust,可以查看本站新版 Shadowsocks 一键安装脚本教程:SS 一键脚本搭建 VPS 服务端。
本文内容只演示 Ubuntu 官方源安装 shadowsocks-libev 的方法,两篇文章的路线不同,大家可以自取所需,选择适合自己的方式进行安装。
二、检查 Ubuntu 系统环境
开始前,需要先确认当前 VPS 使用的是 Ubuntu 系统。登录 SSH 后执行:
cat /etc/os-release
本文实测返回结果如下:
PRETTY_NAME="Ubuntu 22.04.5 LTS" NAME="Ubuntu" VERSION_ID="22.04" VERSION="22.04.5 LTS (Jammy Jellyfish)" VERSION_CODENAME=jammy ID=ubuntu ID_LIKE=debian UBUNTU_CODENAME=jammy

确认 VPS 使用 Ubuntu 22.04 环境,再继续安装 shadowsocks-libev
确认系统后,再继续安装。本文命令基于 Ubuntu 的 apt 软件源环境编写,不建议直接复制到 CentOS、AlmaLinux、Rocky Linux 或 Debian 机器上使用。
如果您使用的是 CentOS 系统,可以参考 搬瓦工 CentOS 系统各版本搭建 Shadowsocks / SS 详细教程。Debian 虽然同样使用 apt,但软件包版本、默认配置和服务文件可能不完全一样。
三、通过 apt 安装 shadowsocks-libev
先更新软件源,然后安装 shadowsocks-libev:
apt update -y apt install -y shadowsocks-libev
本文实测安装过程中,系统自动安装了 libbloom1、libcork16、libcorkipset1、libjsonparser1.1 等依赖,并从 Ubuntu Jammy 的 universe 仓库安装 shadowsocks-libev。
安装结果中可以看到软件包版本:
shadowsocks-libev 3.3.5+ds-7build1
安装完成后还会创建 systemd 服务链接:
Created symlink /etc/systemd/system/multi-user.target.wants/shadowsocks-libev.service → /lib/systemd/system/shadowsocks-libev.service.

通过 Ubuntu 官方软件源安装 shadowsocks-libev,并生成 systemd 服务
出现 Created symlink 后,说明 shadowsocks-libev.service 服务文件已经写入系统,并设置了开机启动链接。不过此时还不能直接连接,因为默认配置通常只监听本机地址,需要继续修改配置文件。
四、修改 shadowsocks-libev 配置文件
Ubuntu 官方源安装完成后,配置文件路径为:
/etc/shadowsocks-libev/config.json
先查看配置目录:
ls -l /etc/shadowsocks-libev/
本文实测返回结果如下:
total 4 -rw-r--r-- 1 root root 202 Jun 5 04:24 config.json

确认 config.json 位于 /etc/shadowsocks-libev/ 目录
继续查看默认配置内容:
cat /etc/shadowsocks-libev/config.json
默认配置内容如下:
{
"server":["::1", "127.0.0.1"],
"mode":"tcp_and_udp",
"server_port":8388,
"local_port":1080,
"password":"随机密码",
"timeout":86400,
"method":"chacha20-ietf-poly1305"
}

默认配置只监听本机地址,外部客户端无法直接连接
这份默认配置的关键问题在 server 一项。::1 和 127.0.0.1 都是本机地址,只允许本机访问,外部客户端无法通过 VPS IP 连接,所以需要改成 0.0.0.0。另外,默认端口、密码和加密方式也可以按自己的客户端配置习惯重新设置。
修改前先备份原配置:
cp /etc/shadowsocks-libev/config.json /etc/shadowsocks-libev/config.json.bak
然后写入新的 SS 服务端配置:
cat > /etc/shadowsocks-libev/config.json <<'EOF'
{
"server":"0.0.0.0",
"mode":"tcp_and_udp",
"server_port":12345,
"password":"bwgss123456",
"timeout":300,
"method":"aes-256-gcm"
}
EOF
本文配置项说明如下:
server:监听地址,设置为0.0.0.0,允许外部客户端连接mode:连接模式,使用tcp_and_udpserver_port:SS 端口,本文演示为12345password:客户端连接密码,正式使用时请改成自己的复杂密码timeout:连接超时时间,本文使用300method:加密方式,本文使用aes-256-gcm
写入后再次查看配置文件:
cat /etc/shadowsocks-libev/config.json
本文实测修改后的配置如下:
{
"server":"0.0.0.0",
"mode":"tcp_and_udp",
"server_port":12345,
"password":"bwgss123456",
"timeout":300,
"method":"aes-256-gcm"
}

将监听地址改为 0.0.0.0,并设置 SS 端口、密码和 aes-256-gcm
五、启动 shadowsocks-libev 并检查端口监听
配置文件修改完成后,重启 shadowsocks-libev 服务:
systemctl restart shadowsocks-libev
然后查看服务状态:
systemctl status shadowsocks-libev --no-pager
本文实测服务状态如下,关键是 Active: active (running):
● shadowsocks-libev.service - Shadowsocks-libev Default Server Service
Loaded: loaded (/lib/systemd/system/shadowsocks-libev.service; enabled; vendor preset: enabled)
Active: active (running)
Main PID: 7443 (ss-server)
CGroup: /system.slice/shadowsocks-libev.service
└─7443 /usr/bin/ss-server -c /etc/shadowsocks-libev/config.json

服务状态显示 active running,说明 shadowsocks-libev 已正常运行
这一步可以确认两件事:服务名是 shadowsocks-libev,实际运行进程是 ss-server。以后启动、停止、重启和查看状态都使用这个服务名。
常用管理命令如下:
systemctl start shadowsocks-libev
systemctl stop shadowsocks-libev
systemctl restart shadowsocks-libev
systemctl status shadowsocks-libev --no-pager
接着检查端口监听状态。本文演示端口是 12345,执行:
ss -tulnp | grep 12345
本文实测返回结果如下:
udp UNCONN 0 0 0.0.0.0:12345 0.0.0.0:* users:(("ss-server",pid=7443,fd=6))
tcp LISTEN 0 1024 0.0.0.0:12345 0.0.0.0:* users:(("ss-server",pid=7443,fd=5))

TCP 和 UDP 都在监听 SS 端口,进程为 ss-server
这里能看到 TCP 和 UDP 都在监听 12345,并且进程名为 ss-server,说明 Ubuntu Shadowsocks 服务端已经开始监听客户端连接。
再检查开机自启状态:
systemctl is-enabled shadowsocks-libev
本文实测返回:
enabled
返回 enabled,说明服务器重启后 shadowsocks-libev 会自动启动。如果您的结果不是 enabled,可以执行下面的命令设置开机自启:
systemctl enable shadowsocks-libev
接着检查系统是否启用了 ufw 防火墙:
ufw status
本文测试机器返回:
-bash: ufw: command not found
这表示当前系统没有安装 ufw,不代表 Shadowsocks 安装失败。此时如果客户端无法连接,重点检查 VPS 商家后台的安全组、防火墙或入站规则,确认已经放行 SS 端口的 TCP 和 UDP。

enabled 表示 shadowsocks-libev 已开机自启,ufw 未安装不影响服务运行
六、客户端添加 Shadowsocks / SS 节点
服务端安装完成后,本地电脑或手机需要添加 Shadowsocks 节点。客户端填写内容和 config.json 配置一一对应。
| 客户端字段 | 填写内容 |
|---|---|
| 服务器地址 | 填写 VPS IP 地址 |
| 端口 | 12345,或者您自己设置的端口 |
| 密码 | 填写 config.json 里的 password |
| 加密方式 | aes-256-gcm |
| 插件 | 不填写 |
Windows、macOS、Android、iOS 上的 Shadowsocks 客户端界面不一样,但都需要填写服务器 IP、端口、密码和加密方式。本文没有安装 SIP003 插件,所以客户端插件位置保持为空。
如果您使用 iPhone 或 iPad,可以在 Shadowrocket 等支持 Shadowsocks 的客户端里添加这个 SS 节点。
这里的 Shadowrocket Ubuntu 并不是在 Ubuntu 里安装 Shadowrocket,而是 Ubuntu 负责运行服务端,手机端通过 Shadowrocket 连接;具体客户端填写步骤可以参考 iOS(苹果手机)系统 Shadowsocks 客户端配置使用教程。
客户端添加后无法连接时,不要先改协议或乱换加密方式。先确认客户端参数和 /etc/shadowsocks-libev/config.json 里填写的端口、密码、加密方式保持一致。
七、Ubuntu Shadowsocks 连接问题排查
Ubuntu 安装 Shadowsocks 后,服务端显示运行不代表客户端一定能连上。遇到连接失败时,建议按下面顺序检查。
1、检查 config.json 配置文件
先查看当前服务端配置:
cat /etc/shadowsocks-libev/config.json
重点检查 server_port、password、method 是否和客户端填写一致。还要确认 server 是否为 0.0.0.0,否则外部客户端可能无法连接。
2、检查 shadowsocks-libev 服务状态
运行下面的命令:
systemctl status shadowsocks-libev --no-pager
如果没有看到 active (running),可以先重启服务:
systemctl restart shadowsocks-libev
如果重启失败,再回头检查 config.json 是否少了逗号、引号或大括号。
3、检查 SS 端口监听
把下面命令里的 12345 换成自己的 SS 端口:
ss -tulnp | grep 12345
正常结果应该同时看到 TCP 和 UDP。如果没有输出,说明 ss-server 没有监听这个端口,需要检查服务状态和配置文件。
4、检查防火墙和安全组
先查看当前系统是否有 ufw:
ufw status
本文测试机器返回:
-bash: ufw: command not found
这说明当前系统没有安装 ufw,不是 Shadowsocks 安装失败。如果您的 VPS 后台有安全组、防火墙、入站规则,需要在后台放行 SS 端口。
如果您的系统启用了 ufw,可以放行本文演示端口的 TCP 和 UDP:
ufw allow 12345/tcp ufw allow 12345/udp ufw reload
云服务器后台规则一般可以在 Firewall、Security Group、Network、防火墙或入站规则里找到。协议选择 TCP 和 UDP,端口填写您在 config.json 里设置的 server_port。
八、常见问题
下面整理几个 Ubuntu 安装 Shadowsocks 时容易遇到的问题,主要涉及旧版一键脚本、官方源安装、默认监听地址、Shadowrocket 连接和卸载命令。安装过程中遇到不确定的地方,可以先按这些问题对照检查。
1、Ubuntu 还能用 Shadowsocks 一键安装脚本吗?
能不能用取决于脚本是否还在维护。本站这次测试旧版 Ubuntu SS 一键脚本时没有安装成功,所以本文改用 Ubuntu 官方源安装 shadowsocks-libev。如果您需要新版交互式安装流程,可以参考前面提到的 Shadowsocks 一键安装脚本教程。
2、apt 安装 shadowsocks-libev 和 SS 一键脚本有什么区别?
apt 安装使用 Ubuntu 官方软件源里的 shadowsocks-libev 包,安装、升级、卸载都通过系统包管理器完成。SS 一键脚本通常会自行下载脚本、添加仓库、编译源码或引导用户输入参数。本文选择官方源安装,是为了避开旧脚本在 Ubuntu 22.04 上编译失败的问题。
3、为什么默认配置改完前客户端连不上?
默认配置里的 server 可能只监听 127.0.0.1 和 ::1。这两个地址只允许本机访问,外部客户端不能通过 VPS IP 连接。把 server 改成 0.0.0.0 后,再配合端口放行,外部客户端才有连接条件。
4、Shadowrocket 可以连接本文搭建的 SS 节点吗?
可以。Shadowrocket 支持添加 Shadowsocks 节点,填写 VPS IP、端口、密码和 aes-256-gcm 加密方式即可。本文没有配置插件,Shadowrocket 里也不要填写插件参数。
5、这套 Ubuntu Shadowsocks 安装方式适合多用户吗?
本文使用 shadowsocks-libev 演示单个 SS 服务端配置,适合个人自用。如果您需要多用户、多端口或不同用户独立配置,本文这套官方源安装方式不是最省事的路线,可以参考 V2Ray 多用户配置教程:同端口不同 UUID 与多端口配置教程。
6、如何卸载 shadowsocks-libev?
先停止服务:
systemctl stop shadowsocks-libev
再卸载软件包:
apt remove --purge -y shadowsocks-libev
如果确定不再保留配置文件,可以删除配置目录:
rm -rf /etc/shadowsocks-libev
九、总结
本文完成了 Ubuntu 系统安装 Shadowsocks 的实测流程:通过 apt 从官方源安装 shadowsocks-libev,修改 /etc/shadowsocks-libev/config.json,把监听地址改为 0.0.0.0,设置 SS 端口、密码和 aes-256-gcm 加密方式,然后检查 shadowsocks-libev 服务状态、端口监听和开机自启。
这篇文章适合不想继续使用旧版 Ubuntu SS 一键脚本、希望通过系统软件源部署 Shadowsocks 的用户。如果您需要 Shadowsocks-rust 或交互式脚本安装方式,可以查看本站新版 Shadowsocks 一键安装脚本教程;如果只是想在 Ubuntu VPS 上部署一个基础 SS 节点,按本文的官方源安装方式完成配置即可。
| 机房位置 | 带宽 | 流量 | 设备 | 价格 | 购买 |
|---|---|---|---|---|---|
| 洛杉矶 500 | 2.5Gbit | 500GB/月 | 5台 | $5.88/月-$58.88/年 | 购买 |
| 洛杉矶 1000 | 5Gbit | 1T/月 | 无限 | $9.88/月-$98.88/年 | 购买 |
| 洛杉矶 5000 | 5Gbit | 5T/月 | 无限 | $48.99/月-$489.99/年 | 购买 |
| 洛杉矶 10000 | 5Gbit | 10T/月 | 无限 | $93.99/月-$948.99/年 | 购买 |
| 香港 CMI+NTT | 2.5Gbps | 500GB/月 | 5台 | $8.99/月-$89.99/年 | 购买 |
| 香港 CMI+NTT | 5Gbps | 1T/月 | 无限 | $14.90/月-$113.99/年 | 购买 |
| 香港 CMI+NTT | 5Gbps | 5T/月 | 无限 | $59.99/月-$599.99/年 | 购买 |
| 香港 IPLC 专线 | 300MB 独享 | 300GB/月 | 3台 | $21.00/月-$210.00/年 | 购买 |
| 香港 IPLC 专线 | 1G 独享 | 1T/月 | 无限 | $59.00/月-$589.00/年 | 购买 |
| 香港 CN2 GIA | 100MB 独享 | 100GB/月 | 3台 | $34.99/月-$349.99/年 | 购买 |
| 香港 CN2 GIA | 500MB 独享 | 500GB/月 | 5台 | $149.99/月-$1499.99/年 | 购买 |
| 香港 CN2 GIA | 1G 独享 | 1T/月 | 无限 | $279.99/月-$2799.99/年 | 购买 |
| 日本 CN2 GIA | 100MB 独享 | 100GB/月 | 3台 | $29.99/月-$299.99/年 | 购买 |
| 日本 CN2 GIA | 200MB 独享 | 500GB月 | 5台 | $135.99/月-$1349.99/年 | 购买 |
| 日本 CN2 GIA | 500MB 独享 | 1T/月 | 无限 | $239.00/月-$2399.00/年 | 购买 |
| 日本 CN2 GIA | 700MB 独享 | 5T/月 | 无限 | $1135.00/月-$11395.00/年 | 购买 |
| 伦敦 500 | 2.5Gbps | 500GB/月 | 5台 | $6.8/月-$67.99/年 | 购买 |
| 伦敦 1000 | 5Gbps | 1T/月 | 无限 | $11.29/月-$113.99/年 | 购买 |
| 伦敦 5000 | 5Gbps | 5T/月 | 无限 | $59.99/月-$559.99/年 | 购买 |
需要 VPS 服务器?Just My Socks 更适合直接使用代理服务;如果您需要建站、部署项目、搭建环境或学习 Linux,可以选择搬瓦工 VPS,参考 搬瓦工在售 VPS 套餐整理与购买推荐。 |
|||||

搬瓦工教程