事先说明:根据《计算机信息网络国际互联网安全保护管理办法》规定,个人使用VPN不违法,但VPN必须是使用由相关单位构建并且登记备案的VPN,私自搭造VPN属于是违法行为,请不要私建VPN,违反法律毁终生

本教程仅限于研究学习

过往都是使用shadowsocks去搭建vpn的,但是由于保护无知者的原因,shadowsocks的github已经停止更新了,但是shadowsocks的衍生产品仍然不断更新, 关于其中加密的方式也在不断更新,导致如果继续使用旧版的shadowsocks搭建的vpn服务器,在新版shadowsocks的客户端中找不到对应的加密方式, 这个时候只能去github官网找到以前旧版本的客户端,但是又不安全,加密算法的更新本就是为了加强安全。下面是2022年最新的我测试通过的搭建vpn的过程, 并且可选择使用最新的加密算法。

最快速搭建vpn

先去腾讯云官网买一个最便宜的大陆之外的轻量应用服务器,作为VPS,最便宜的就好了。

比如如下的配置:地区选中国香港,镜像选系统镜像-CentOS 7,套餐选择最便宜的通用型套餐,2核CPU和2GB内存的,1024GB的流量一般用不完了, 峰值带宽30Mbps(最高下载速度3.75MB/s)看个电影也是没问题了。

image

搭建方式:使用shadowsocks-lib这个库去搭建vpn,这个库课可以提供最新的高阶加密算法,例如aes-256-gcm和chacha20-ietf-poly1305等。

利用xshell ssh登录VPS,然后运行一下命令:

yum install wget -y
wget https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-libev.sh
chmod +x shadowsocks-libev.sh
./shadowsocks-libev.sh

如果命令文件失效了,也可以下载我保存下来的附件shadowsocks-libev.sh,自行上传到服务器中。

然后根据命令行提示进行操作,包括:1.输入密码;2.输入端口(大于1024即可);3.选择加密算法;4.输入任意字符开始安装;

理论上会有如下日志打印:

#############################################################
# Install Shadowsocks-libev server for Debian or Ubuntu #
# Intro: https://teddysun.com/358.html #
# Author: Teddysun <i@teddysun.com> #
# Github: https://github.com/shadowsocks/shadowsocks-libev #
#############################################################

[Info] Latest version: shadowsocks-libev-3.3.4

Please input password for shadowsocks-libev:
(Default password: teddysun.com): vJYEKOgxcZsgPRA4zT3L5Sdu/NCo3KWY


Please enter a port for shadowsocks-libev [1-65535]
(Default port: 18122):5405


Please select stream cipher for shadowsocks-libev:
1) aes-256-gcm
2) aes-192-gcm
3) aes-128-gcm
4) aes-256-ctr
5) aes-192-ctr
6) aes-128-ctr
7) aes-256-cfb
8) aes-192-cfb
9) aes-128-cfb
10) camellia-128-cfb
11) camellia-192-cfb
12) camellia-256-cfb
13) xchacha20-ietf-poly1305
14) chacha20-ietf-poly1305
15) chacha20-ietf
16) chacha20
17) salsa20
18) rc4-md5
Which cipher you\'d select(Default: aes-256-gcm):14


---------------------------
cipher = chacha20-ietf-poly1305
---------------------------


Press any key to start...or press Ctrl+C to cancel

该脚本下载、编译、配置和运行软件。编译将需要 10 分钟左右。在脚本结束时,它会显示一些确认消息:

Congratulations, Shadowsocks-libev server install completed!
Your Server IP : YY.YY.YY.YY
Your Server Port : 5405
Your Password : vJYEKOgxcZsgPRA4zT3L5Sdu/NCo3KWY
Your Encryption Method: chacha20-ietf-poly1305

该脚本会将配置放在/etc/shadowsocks-libev/config.json。Shadowsocks可执行文件位于/usr/local/bin。 可执行文件ss-server在后台运行并侦听指定端口(即第二步骤输入的端口,我示例中输入的是5405)。

这个时候理论上vpn已经正常运行了。

根据最新建议,我们需要将监听模式更改为仅TCP,编辑配置文件,命令:

vi /etc/shadowsocks-libev/config.json

将其中的mode参数改为tcp_only,在我的示例中json为:

{
  "server":"0.0.0.0",
  "server_port":5405,
  "password":"vJYEKOgxcZsgPRA4zT3L5Sdu/NCo3KWY",
  "timeout":300,
  "user":"nobody",
  "method":"chacha20-ietf-poly1305",
  "fast_open":false,
  "nameserver":"1.0.0.1",
  "mode":"tcp_only"
}

将文件写入磁盘,退出编辑器。

然后重启程序,命令:

/etc/init.d/shadowsocks restart

理论上会看到命令行输出:

Stopping Shadowsocks-libev success
Starting Shadowsocks-libev success

如果想要关闭vpn服务,可以输入如下命令:

/etc/init.d/shadowsocks stop

打开vpn的命令则为:

/etc/init.d/shadowsocks start

客户端

Windows端

可以直接使用shadowsocks github官网release的客户端, 如果vpn服务器使用的是最新版的shadowsocks-lib,即加密算法为aes-256-gcm和chacha20-ietf-poly1305等, 则可以直接下载最新版的windows客户端。如果vpn服务器是使用旧版的shadowsocks,即加密算法为aes-256-cfb等, windows客户端则需要下载旧一点版本的,最新版客户端加密算法中已经舍弃了aes-256-cfb。

Android端

各大应用商场或者网上应该都能找到shadowsocks客户端,或者去Shadowsocks for Android的github官网下载安装。

IOS端和MAC端

有shadowsock官方的IOS客户端,但是需要购买,叫做Shadowrocket,里面还有一些已经免费开放的vpn节点,不需要自己搭建服务器。 免费试用的app有:potatso Lite, Cyberoket, shadowlink。potatso Lite兼容旧版的加密算法,但是试用起来感觉有点延迟,但是没广告, shadowlink是最顺畅、低延迟的,但是偶尔启动会有广告,但是可以接受。当然,最大的问题是这些app都需要试用大陆地区以外的Apple ID登录app store才能搜索到, 关于如果获取这种Apple ID可以看我下一篇文章简单安全获取国外的AppleID-免费

常见问题

  1. 如果设置成功之后,手机/电脑客户端还是无法访问,则需要将刚刚设置的端口(示例中为5405)添加到服务器的安全组(或者防火墙)中,防止被拦截。 在腾讯云中,则是点开对应的轻量应用服务器,在防火墙一栏中添加规则,指定TCP协议和端口号,如图所示:

image

  1. 在编辑配置文件config.json时,我们看到其中的server参数0.0.0.0,以前的Shadowsocks配置文件中填的是云服务器的ip, 这一点跟以前不一样,如果出现如下错误:socket.error: [Errno 99] Cannot assign requested address,就是这个server参数的问题。

旧版shadowsocks搭建过程

如果新版Shadowsocks能运行成功的话,就用新版的,旧版仅供参考,因为旧版只支持aes-256-cfb等老旧加密算法,不推荐使用。

购买vps服务器后:

  1. 安装 shadowsocks ```bash sudo yum install python-setuptools sudo easy_install pip sudo -H pip install shadowsocks
2. 配置 shadowsocks的信息
```bash
sudo vi /etc/shadowsocks.json

在其中填写 VPS 的具体信息,例如:

{
"server":"your_server_ip",
"server_port": your_port,
"local_address": "127.0.0.1",
"local_port":1080,
"password":"your_passwd",
"timeout":300,
"method":"aes-256-cfb",
"fast_open": false
}
  1. 启动 ss
    sudo ssserver -c /etc/shadowsocks.json -d start
    #查看日志命令:
    cat /var/log/shadowsocks.log
    

    日志可能会出现错误socket.error: [Errno 99] Cannot assign requested address 则server改成0.0.0.0,或者内网ip。以及防火墙的问题。

4关闭的命令是

sudo ssserver -c /etc/shadowsocks.json -d stop

2024.01.07更新: 最新发现另一个一键安装的,并且支持更多协议:https://github.com/yonggekkk/sing-box_hysteria2_tuic_argo_reality 也是一句,然后就跟着提示走

bash <(curl -Ls https://gitlab.com/rwkgyg/sing-box-yg/raw/main/sb.sh)

参考文章

  1. How to Install, Configure, and Run Shadowsocks-Libev
  2. Shadowsocks 安装与配置教程
  3. 在 CentOS 7 下安装配置 shadowsocks
⤧  上一篇 Deeplearning On Web ⤧  下一篇 简单安全获取国外的AppleID-免费