配置SSR代理笔记
2018-12-10 18:16:25

如何自建一个SSR代理?这次笔记主要从服务器和客户端两部分配置来说明。

这篇笔记的内容主要还是针对有一定计算机基础或者动手能力比较强的爱好者来尝试的。如果是一些工作需要国际交流的,还是推荐使用现成的服务,毕竟自己管理服务器比较麻烦,也需要技术成本。

Part1 服务器

首先,如果想要有一个自建的SSR代理,就必须要有一个自己的服务器(VPS),一般常用的云服务厂商就是BandwagonhostDigitalOceanLinode或者是国内厂商的境外节点比如阿里云、腾讯云、华为云之类的。

在部署VPS节点时,一般会让你选择系统镜像。我一般使用Ubuntu比较多,所以基本上都是选择Ubuntu的最新版本的镜像。

我具体用在DigitalOcean上部署一个VPS为例子。

  1. 在DigitalOcean上注册一个账号。
  2. 根据它的引导添加支付方式和新的Project。
  3. 在Project里面点击Create Droplets(在DigitalOcean上Droplets指一个VPS)。

Screen_Shot_2019-09-21_at_12.40.00_PM

  1. 弹出服务器配置页面,选择Ubuntu镜像和最低配置的硬件($5/month)。
  2. 选择一个你需要境外机房,我一般用美国、新加坡或日本的。
  3. 认证方式选择SSH Key(PS:需要提前在个人帐户设置用添加SSH Key,点击右上角头像的Account->Security页面添加SSH Key,里面会说明怎么使用命令行添加SSH Key)。
  4. 把自己的添加好,返回到刚刚选择服务器的界面(PS:可能需要重新选择一次)。
  5. 修改一个Hostname就创建好了。

用Xshell或者终端的SSH连接你的服务器,我这里以终端为例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# 以下为终端命令

ssh root@ip #ip在你购买完服务器的页面

# 此处建议新增低权限用户,修改sudoers文件,修改ssh的配置文件,有空再写

> apt update
> apt upgrade # 更新software

> echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
> echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf # 增加BBR
> sysctl -p # 保存生效

> sysctl net.ipv4.tcp_available_congestion_control # 查看内核是否开启BBR
< net.ipv4.tcp_available_congestion_control = bbr cubic reno # 如果返回内容如此,则已开启

> lsmod | grep bbr # 查看BBR是否启动
< tcp_bbr 20480 14 # 返回类似,则启动成功

> wget --no-check-certificate -O shadowsocks-all.sh https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-all.sh. #下载安装脚本
> chmod +x shadowsocks-all.sh
> ./shadowsocks-all.sh 2>&1 | tee shadowsocks-all.log # 运行安装脚本
# 安装时根据其提示选择,以下是建议配置
# Version:SSR
# Encryption:chacha20-ietf
# Protocol:auth_aes128_sha1
# Obfs(混淆方式):http_simple
# Password & port:自定义

Part2 客户端

客户端的主要分Window、Linux和Mac OS,移动端的就不阐述了网上有许多教程。

Window和Mac OS

  1. 保存安装界面的信息,包括QR—code(下载到本地)和SSR链接
  2. 安装SSR客户端,启动客户端。
  3. 在右上角任务栏里,右键小飞机,勾选PAC模式,勾选登录时启动,勾选启动时连接。
  4. 在服务器那一个菜单的子菜单里最下面服务器偏好设置。
  5. 填入你刚刚的保存的服务器配置信息

Linux - Ubuntu(方法一)

在安装好Ubuntu后,因为想使用Chrome,在登录的时候发现要翻墙。这时候我觉得需要设置个全局的ssr代理。因此,才有了下面的过程。

1. 下载SSR客户端

1
git clone https://github.com/ssrbackup/shadowsocksr

2. 配置SSR的配置文件

进入刚刚复制下来的文件夹,里面有一个config.json的文件,将它复制一份并命名为config.json.backup作为备份。

打开config.json文件,对里面的一些参数进行修改,主要是改成自己服务器端所设置的配置。

主要有以下几项

1
2
3
4
5
6
7
8
9
10
11
12
13
{
"server": "0.0.0.0", # SSR服务器的IP地址
"server_port": 8388, # SSR服务器的端口

"password": "m", # SSR服务器的密码
"method": "aes-128-ctr", # 加密方法
"protocol": "auth_aes128_md5", # 协议
"protocol_param": "", # 协议参数
"obfs": "tls1.2_ticket_auth_compatible", # 混淆协议
"obfs_param": "", # 混淆参数

# 以上这些主要是SSR服务商提供的
}

3. 运行SSR

在当前目录下,运行一下命令

1
python3 shadowsocks/local.py

如果看到以下输出,就没啥大问题了。

1
2
3
4
5
IPv6 support
2018-07-09 11:04:56 INFO util.py:85 loading libcrypto from libcrypto.so.1.1
2018-07-09 11:04:56 INFO local.py:50 local start with protocol[auth_aes128_md5] password [b'm'] method [aes-128-ctr] obfs [tls1.2_ticket_auth_compatible] obfs_param []
2018-07-09 11:04:56 INFO local.py:54 starting local at 127.0.0.1:1080
2018-07-09 11:04:56 INFO asyncdns.py:324 dns server: [('127.0.0.53', 53)]

接下来就是如何利用privoxy设置全局代理

4. 安装privoxy

1
sudo apt install privoxy

5. 配置privoxy

安装后,打开/etc/privoxy/config,把这两句注释掉(具体位置在4.2部分的前面两句):

1
2
# listen-address  127.0.0.1:8118
# listen-address [::1]:8118

在文件的最后加上:

1
2
forward-socks5 / 127.0.0.1:1080 .
listen-addresss 127.0.0.1:8118

一定要注意第一行最后的

最后就是设置系统的代理,打开Ubuntu的设置。

  1. 在左侧导航栏找到网络

  2. 设置网络代理(network proxy),选择“手动(Manual)”

  3. 删掉最后一栏的内容

  4. 把前4栏都设置成IP:127.0.0.1,端口:8118

现在试一下登录chrome就成功了。

Linux - Ubuntu(方法二)

这两天在看Ubuntu美化时,发现了另外同样也是配置SSR脚本的方法。这里也再介绍一下,给大家提供不同的参考意见。这里使用的时Charles的脚本

  1. 直接复制脚本,并在本地保存名为ssr的文件。
  2. 修改其中ssr_start()函数,在sleep 1之前加入:
1
2
3
gsettings set org.gnome.system.proxy.http host '127.0.0.1'
gsettings set org.gnome.system.proxy.http port 1080
gsettings set org.gnome.system.proxy mode 'manual'
  1. ssr_stop()里,在sudo python3 local.py -d stop之前加入:
1
gsettings set org.gnome.system.proxy mode 'auto'
  1. 修改该文件的权限,并把他放到用户本地的命令目录里面,这样下次可以直接输命令调用比较方便。
1
2
chmod 700 ssr
sudo mv ssr /usr/local/bin/
  1. 在命令行里面运行
1
2
3
4
ssr install # 等待安装完毕
ssr config # 填入自己的ssr配置
# 如果你没有自己的ssr服务器,也可以用 ssr update这个命令,会自己下载配置文件
ssr start # 启动ssr

参考

Linux 配置SSR 客户端
shadowsocsR+privoxy liunx下使用SSR全局代理

Ubuntu17.10/Ubuntu18.04配置以及美化

Modified on 12.20, 2020, in Beijing.