Shadowsocks VPN 使用

Shadowsocks 官网简介

基于 Python3 环境的 Shadowsocks 部署

执行以下命令之一安装 Shadowsocks (Python3 版本)

pip3 install git+https://github.com/shadowsocks/shadowsocks.git@master

pip3 install shadowsocks

配置 Shadowsocks

创建一个配置文件,比如放在 /etc/shadowsocks/config.json 目录下。配置文件的内容如下:

{
"server": "0.0.0.0",
"server_port": 8388,
"local_address": "127.0.0.1",
"local_port": 1080,
"password": "your_password",
"timeout": 300,
"method": "aes-256-cfb",
"fast_open": false
}

配置选项说明

  • server : 服务器监听的 IP 地址,0.0.0.0 表示监听所有接口。
  • server_port : 服务器监听的端口,客户端连接到这个端口。
  • password : 用于加密流量的密码,请设置一个强密码。
  • method : 加密方法。其他加密算法请参考官网
  • timeout : 超时时间(秒)。
  • fast_open : 如果启用 TCP Fast Open,请将其设置为 true,但需要内核支持。

启动 Shadowsocks 服务

使用以下命令启动 Shadowsocks 服务,该命令会以后台进程的方式启动 Shadowsocks:

ssserver -c /etc/shadowsocks/config.json -d start

常用选项

选项 说明 示例
-h, --help 打印帮助信息
-d [start / stop / restart ] 以 Daemon 方式(后台)运行
--pid-file Daemon 模式启动时的 PID 文件路径
--log-file Daemon 模式启动时日志文件路径
--user 运行服务的用户
-v, -vv verbose 模式
-q, -qq quite 模式
-c 配置文件路径 ssserver -c /etc/shadowsocks/config.json -d start
-s 指定服务端监听地址,默认为 0.0.0.0 。等同于配置文件中的 server
-p 指定服务端监听端口,默认为 8388 。等同于配置文件中的 server_port
-k 指定密码 。等同于配置文件中的 password
-m 加密方法,默认为 aes-256-cfb 。 等同于配置文件中的 method
-t 超时时间(单位为 ),默认 300s 。 等同于配置文件中的 timeout
--fast-open 启用 TCP_FASTOPEN,需要 Linux 3.7+
--workers workers 数量,Linux/Unix 可用
--forbidden-ip , 分割的 IP 列表,在此列表中的 IP 禁止连接,即黑名单
--manager-address 服务端 UDP 管理地址

为 Shadowsocks 配置 systemd services 文件

参考以下内容,为 Shadowsocks 配置 systemd services 文件

/etc/systemd/system/shadowsocks.service
[Unit]
Description=Shadowsocks Proxy Server
After=network.target

[Service]
ExecStart=/usr/local/bin/ssserver -c /etc/shadowsocks/config.json
Restart=on-failure

[Install]
WantedBy=multi-user.target

启用并启动 Shadowsocks 服务

sudo systemctl enable shadowsocks
sudo systemctl start shadowsocks

客户端连接

在客户端(如 Windows、macOS、iOS 或 Android)上,使用 Shadowsocks 客户端进行连接。

客户端配置

  • 服务器地址 : 填写你服务器的公网 IP。
  • 服务器端口 :填写 config.json 中的 server_port,如 8388
  • 密码 : 填写配置文件中的 password
  • 加密方法 : 选择 method 中配置的加密方法,如 aes-256-cfb

如果需要调试或查看运行日志,可以通过以下命令查看 Shadowsocks 的日志:

journalctl -u shadowsocks