在 CentOS 服务器上搭建 VPN

简介

  • Shadowsocks(简称 SS):Shadowsocks 是由中国开发者 clowwindy 于 2012 年创建的开源代理软件。它使用 SOCKS5 代理协议,并结合了多种加密算法,如 AES、RC4 等,以保护数据传输的隐私和安全性。Shadowsocks 的工作原理是将网络流量分散到多个代理服务器上,使其看起来像是正常的网络连接,从而实现绕过封锁和审查的目的。
  • ShadowsocksR(简称 SSR):ShadowsocksR 是在 Shadowsocks 的基础上发展而来的一个分支。它添加了一些新的特性和协议,如混淆和协议插件等,以增强抗封锁能力。ShadowsocksR 支持更多的加密算法和协议,同时提供了更灵活的配置选项。SSR 在中国被广泛使用,因为它可以有效地绕过网络封锁和审查。
  • Brook:Brook 是另一个开源的代理软件,它也可以用于实现加密和隐私保护。Brook 的设计目标是简单、高效和易用性。它支持多种传输协议,如 HTTP、Socks5 等,并提供了多种加密算法和插件选项。Brook 具有较低的系统资源消耗,适合在资源受限的设备上使用。

搭建教程

  1. 运行一键安装脚本

    1
    wget -N --no-check-certificate https://raw.githubusercontent.com/xia0ne/Yrhtools/master/tools.sh && bash tools.sh

    如图:选择 3,然后按需选择搭建 VPN 的方式(1、2、3),然后按照提示设置【密码】、【端口】、【加密方式】等即可!

  2. 安装完成示意图

    Shadowsocks
    ShadowsocksR
  3. 设置安全组并在防火墙中放行设置的端口(如:17442)

客户端链接

  • 下载客户端

    1
    2
    3
    4
    5
    # Shadowsocks
    https://github.com/shadowsocks/shadowsocks-windows/releases

    # ShadowsocksR
    https://github.com/shadowsocksrr/shadowsocksr-csharp/releases
    1
    https://github.com/shadowsocks/ShadowsocksX-NG/releases
    1
    2
    https://github.com/shadowsocks/shadowsocks-qt5/wiki/Installation   
    https://github.com/shadowsocks/shadowsocks-qt5/releases
    1
    2
    https://itunes.apple.com/app/apple-store/id1070901416?pt=2305194&ct=shadowsocks.org&mt=8   
    https://github.com/shadowsocks/shadowsocks-iOS/releases
    1
    2
    https://play.google.com/store/apps/details?id=com.github.shadowsocks   
    https://github.com/shadowsocks/shadowsocks-android/releases
  • 选择【二维码】或【URL】导入配置即可!二维码和 URL 在安装成功后会显示!

脚本控制

1
2
3
4
5
6
7
8
9
10
11
Shadowsocks-Python 版:
/etc/init.d/shadowsocks-python start | stop | restart | status

ShadowsocksR 版:
/etc/init.d/shadowsocks-r start | stop | restart | status

Shadowsocks-Go 版:
/etc/init.d/shadowsocks-go start | stop | restart | status

Shadowsocks-libev 版:
/etc/init.d/shadowsocks-libev start | stop | restart | status

配置文件

1
2
3
4
5
6
7
8
9
10
11
Shadowsocks-Python 版:
/etc/shadowsocks-python/config.json

ShadowsocksR 版:
/etc/shadowsocks-r/config.json

Shadowsocks-Go 版:
/etc/shadowsocks-go/config.json

Shadowsocks-libev 版:
/etc/shadowsocks-libev/config.json

加密方式

加密方式 说明
none 没有加密,数据传输是明文的
rc4 使用 RC4 算法进行数据加密
rc4-md5 使用 RC4 算法并结合 MD5 算法进行数据加密
rc4-md5-6 使用 RC4 算法并结合 MD5 算法进行数据加密,但只加密前 6 个字节的数据
aes-128-ctr 使用 AES-128 算法的 CTR 模式进行数据加密
aes-192-ctr 使用 AES-192 算法的 CTR 模式进行数据加密
aes-256-ctr 使用 AES-256 算法的 CTR 模式进行数据加密
aes-128-cfb 使用 AES-128 算法的 CFB 模式进行数据加密
aes-192-cfb 使用 AES-192 算法的 CFB 模式进行数据加密
aes-256-cfb 使用 AES-256 算法的 CFB 模式进行数据加密
aes-128-cfb8 使用 AES-128 算法的 CFB8 模式进行数据加密
aes-192-cfb8 使用 AES-192 算法的 CFB8 模式进行数据加密
aes-256-cfb8 使用 AES-256 算法的 CFB8 模式进行数据加密
salsa20 使用 Salsa20 算法进行数据加密
chacha20 使用 ChaCha20 算法进行数据加密
chacha20-ietf 使用 ChaCha20-IETF 算法进行数据加密

协议插件

协议插件 说明
origin 原始的 Shadowsocks 协议,使用加密方式为 AES-256-CFB,认证方式为 none,是最基本的配置
auth_sha1_v4 使用 SHA1 算法进行数据验证,使用 AES-256-CFB 算法进行数据加密
auth_aes128_md5 使用 MD5 算法进行数据验证,使用 AES-128-CFB 算法进行数据加密
auth_aes128_sha1 使用 SHA1 算法进行数据验证,使用 AES-128-CFB 算法进行数据加密
auth_chain_a 基于 ShadowsocksR 协议的一种加密方式,支持多重代理链
auth_chain_b 基于 ShadowsocksR 协议的另一种加密方式,也支持多重代理链

混淆插件

混淆插件 说明
plain 不添加混淆,数据传输是明文的
http_simple 使用简单的 HTTP 混淆方式,将数据伪装成 HTTP 请求进行传输
http_post 使用 POST 请求的方式进行 HTTP 混淆
random_head 在数据传输中插入随机的 HTTP 头部信息进行混淆
tls1.2_ticket_auth 使用 TLS 1.2 票据认证的方式进行混淆,增加了传输安全性

参考链接