在不同的网络环境下上网? -- Shadowsocks 节点的搭建

前言

博主上了大学之后, 发现某些校内网站只有在使用校园网的情况下才可被访问. 但在家或在校外的时候, 肯定是没法直接连接校园网的. 这篇文章将会教你使用 Shadowsocks 这款工具对网络流量进行代理, 以实现在不同网络环境下访问网站的目的.

使用场景

  • 在外访问校园网
  • 在外访问企业内部网
  • 运维在外访问机房内部网

法律声明

  • 严禁使用此文章提供的工具与方法进行翻墙等违反法律的行为, 后果自负!
  • 本教程及其作者不对任何违反法律行为的读者负责

配置需求

  • Linux 服务器
  • 脑子
本教程基于有公网 IP 地址的服务器进行教学, 如果您的对端设备没有公网, 也可以参考 本教程 来配置私人专有网络.

开整

本教程将以基于 Debian 的发行版进行示例

服务端配置

  • 使用 apt 安装 Shadowsocks 及其依赖
sudo apt install -y build-essential autoconf libtool libssl-dev libpcre3-dev libc-ares-dev libev-dev asciidoc xmlto automake

sudo apt install -y software-properties-common
sudo add-apt-repository ppa:max-c-lv/shadowsocks-libev -y
sudo apt update
sudo apt install -y shadowsocks-libev
安装大致需要 3 ~ 4GB 存储空间
  • 打开 Shadowsocks 的配置文件
nano /etc/shadowsocks-libev/config.json
  • 按照此模板填写配置
{
    "server":["::", "0.0.0.0"],
    "mode":"tcp_and_udp",
    "server_port":<Your server port>,
    "local_port":1080,
    "password":"<Your password>",
    "timeout":86400,
    "method":"chacha20-ietf-poly1305"
}
  • 添加 "no-delay":true 可以禁用 Nagle 算法, 降低延迟
  • "server":["::","0.0.0.0"] 可以同时监听 IPv4 与 IPv6, 如果您不想监听 IPv6, 可以改为 "server":"0.0.0.0"
  • 此外, 这里还有一些高级参数可以供您选择:

    • nameserver: 添加指定 DNS 服务器地址
    • ipv6_first: 是否优先使用 IPv6
    • worksers: 工作线程数. 一般指定为 CPU 核心数
    • mtu: 最大传输单元. 当代理情况较差时, 可以尝试降低此值
  • 保存配置后, 为 Shadowsocks 添加开机自启同时启动程序
sudo systemctl start shadowsocks-libev
sudo systemctl enable shadowsocks-libev
  • 启动后, 可以通过查看程序日志来确定是否运行正常
sudo systemctl status shadowsocks-libev

运行正常的日志如下:

● shadowsocks-libev.service - Shadowsocks-libev Default Server Service
     Loaded: loaded (/lib/systemd/system/shadowsocks-libev.service; enabled; preset: enabled)
     Active: active (running) since Thu 2026-01-29 10:29:21 EST; 18s ago
       Docs: man:shadowsocks-libev(8)
   Main PID: 927631 (ss-server)
      Tasks: 1 (limit: 1138)
     Memory: 2.9M
        CPU: 37ms
     CGroup: /system.slice/shadowsocks-libev.service
             └─927631 /usr/bin/ss-server -c /etc/shadowsocks-libev/config.json

Jan 29 10:29:21 ACCK-HK systemd[1]: Started shadowsocks-libev.service - Shadowsocks-libev Default Server Service.
Jan 29 10:29:21 ACCK-HK ss-server[927631]:  2026-01-29 10:29:21 INFO: UDP relay enabled
Jan 29 10:29:21 ACCK-HK ss-server[927631]:  2026-01-29 10:29:21 INFO: enable TCP no-delay
Jan 29 10:29:21 ACCK-HK ss-server[927631]:  2026-01-29 10:29:21 INFO: initializing ciphers... <Data Deleted>
Jan 29 10:29:21 ACCK-HK ss-server[927631]:  2026-01-29 10:29:21 INFO: tcp server listening at [::]:<Data Deleted>
Jan 29 10:29:21 ACCK-HK ss-server[927631]:  2026-01-29 10:29:21 INFO: tcp server listening at 0.0.0.0:<Data Deleted>
Jan 29 10:29:21 ACCK-HK ss-server[927631]:  2026-01-29 10:29:21 INFO: udp server listening at [::]:<Data Deleted>
Jan 29 10:29:21 ACCK-HK ss-server[927631]:  2026-01-29 10:29:21 INFO: udp server listening at 0.0.0.0:<Data Deleted>
  • 如您的程序运行正常没有报错, 那么服务端至此配置完成

客户端配置

Shadowsocks 的客户端有很多种选择, 本站点不方便进行展示, 但可以提供一些外部的教程供读者参考:


结语

感谢阅读, 如有错误欢迎指出!

在不同的网络环境下上网? -- Shadowsocks 节点的搭建
https://blog.nanami.tech/archives/228/
本文作者 Madobi Nanami
发布时间 2026-01-29
许可协议 CC BY-NC-SA 4.0
发表新评论