安装部署Shadowsocks服务器的正确上网姿势

目录


一、服务简介

影梭 可以指一种基于Socks5代理方式的加密传输协议,也可以指实现这个协议的各种开发包。当前影梭包使用的是Python、C、C++、C#、Go语言等编程语言开发,主要实现(IOS平台的除外)采用Apache许可证、GPL、MIT许可证等多种自由软件许可协议开放源代码。影梭分为服务器端和客户端,在使用之前,需要先将服务器端部署到服务器上面,然后通过客户端连接并创建本地代理。本工具也被广泛用于查询学习资料。

那影梭 的原理是什么呢?它是将原来 ssh 创建的 Socks5 协议拆开成 Server 端和 Client 端,两个端分别安装在国外服务器和国内的设备上。

| 设备 |——|Client|——| GFW |——|Server|——| 服务器 |

Client 和 Server 之间可以通过影梭的多种方式加密,并要求提供密码确保链路的安全性。

二、虚拟私有网络服务器安装

影梭 服务器的安装极其简单,在 影梭 封装后对用户而言就相对于一个个的程序指令罢了。

首先我们需要一台国外的VPS服务器,我使用的是Amazon Web Service 的免费套餐,当然你也可以选择其他厂商的VPS服务器,前面我有写过使用Amazon Web Service AWS创建并用Putty连接EC2实例,现在我们在此基础上进行 影梭 服务器的搭建,但需要注意的是:

Amazon Web Service 的EC2实例的流量产生的费用和Instance无关,费用如下:所有的流入流量免费,也就是说上传到EC2和用EC2下载是免费的。流出流量的话每个月有1G的 免费额度,接下来的流量就要按使用收费了,大致上是每个月如果流量少于10T的话,每G 0.120美元,假设你这个月流量是10G,产生的费用约为1.08美元。

1. 将用户切换为Root并更新yum软件包 (可选)

1
2
[ec2-user@ip-172-31-26-29 ~]$ sudo su
[root@ip-172-31-26-29 ec2-user]# yum update -y

2. 安装 影梭 服务端

1
2
[root@ip-172-31-26-29 ec2-user]# yum install -y python-setuptools && easy_install pip
[root@ip-172-31-26-29 ec2-user]# pip install shadowsocks

3. 配置 影梭:

 注:此文件默认不存在,需要创建

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
#查看linux内核,确定是否开启 fast_open
[root@ip-172-31-26-29 ec2-user]# uname -a
Linux ip-172-31-26-29 4.14.97-74.72.amzn1.x86_64 #1 SMP Tue Feb 5 20:59:30 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

[root@ip-172-31-22-51 ec2-user]# vim /etc/shadowsocks.json
{

"server":"0.0.0.0",

"server_port":1194,

"local_address":"127.0.0.1",

"local_port":1080,

"password":"Zhang-VPNTest",

"timeout":300,

"method":"rc4-md5",

"fast_open":true,

"workers": 1

}

以上配置若不会修改复制粘贴即可(Ctrl+C \ Ctrl+V)

/etc/shadowsocks.json 配置文件中各字段含义:

1
2
3
4
5
6
7
8
9
10
11
{
"server":"服务器 IP地址 (IPv4/IPv6)",
"server_port":服务器监听的端口, #设置的时候尽量避免端口冲突
"local_address":"127.0.0.1", #本地IP地址
"local_port":1080, #本地端口
"password":"Zhang-VPNTest", #连接密码
"timeout":300, #连接时间设置为300超时
"method":"aes-256-cfb", #加密方法,可选择 “aes-256-cfb”, “rc4-md5”等等。推荐使用 “rc4-md5”
"fast_open":false, # true 或 false。如果你的服务器 Linux 内核在3.7+,可以开启 fast_open 以降低延迟。
"workers": 1 # workers数量,默认为 1
}

4. 启动虚拟私有网络服务器服务

1
2
3
4
5
6
7
8
9
# 启动过程中未发现ssserver命令,使用 whereis 查找该命令
[root@ip-172-31-22-51 ec2-user]# ssserver -c /etc/shadowsocks.json -d start
bash: ssserver: command not found
[root@ip-172-31-22-51 ec2-user]# whereis ssserver
ssserver: /usr/local/bin/ssserver
[root@ip-172-31-22-51 ec2-user]# /usr/local/bin/ssserver -c /etc/shadowsocks.json -d start
INFO: loading config from /etc/shadowsocks.json
2019-02-26 04:39:29 INFO loading libcrypto from libcrypto.so.10
started
1
2
# 将加入shadowsocks服务开机自启
[root@ip-172-31-22-51 ec2-user]# echo "ssserver -c /etc/shadowsocks.json -d start" >> /etc/rc.d/rc.local

三、使用Windows客户端连接测试

1、下载 影梭 客户端

   下载地址:https://pan.baidu.com/s/1d-p9sB0Lmb4w4ggGPlSMzQ

2、配置 影梭 客户端

  • 右击图标选择 Servers 然后 Edit Servers
    sock 1

  • 根据刚刚写入json配置文件,编辑服务
    sock 2

  • 运行该客户端并打开全局模式
    sock 3

  • 查看运行日志
    sock 4

  • 日志报错:连接超时
    sock 5

  • 先关闭其他工具,修改安全组的入站规则放行相应端口,查看防火墙是否放行相应端口
    sock 6

sock 7

  • 再查看一下相应 日志文件 观察Shadowsocks是否正常运行
    sock 8

sock 9

四、测试、查看虚拟私有网络是否成功代理

在cmd或者PowerShell中使用curl ipconfig.me查询本机ip

  • 第一条是开启了虚拟私有网络服务,查询到的是你所使用的云主机服务器的 IP地址

  • 第二条未开启虚拟私有网络服务,查询到的是本地的IP地址,也可以在百度中输入 ip 查询本地的 IP地址
    sock 10

我想吃辣条(ง •_•)ง) 呜呜呜