使用 ShadowSocks 在 VPS 上搭建 VPN

   我们都使用过很多免费的VPN工具,比如蓝灯,但是使用效果并不是很理想,而且有流量限制。有的人也使用过一些收费的VPN,比如:Astrill,鱼摆摆等等。虽然价格并不是很高,但是还是有一定的费用,而且有的还有多用户限制。总之不管收费的,免费的,或多或少我们在使用的过程中有些不爽,今天笔者为大家带来在自己的VPS上搭建一套VPN,想怎么用就怎么用,话不多说,直奔主题。

本文以VPS(Centos7)为例子

假设你已经有一台VPS,公网IP为:46.18.171.153

如果没有笔者可以推荐购买Linode,vultr,阿里云(国内版,国际版【阿里云国际版有点小麻烦哦,改天笔者可以写一篇,分享给大家】)

1、在VPS上安装 shadowsocks-libev( Server 端

①、获取 shadowsocks-libev 源代码
1
2
3
git clone https://github.com/shadowsocks/shadowsocks-libev.git
cd shadowsocks-libev
git submodule update --init --recursive
②、对源码进行构建
1
2
yum install epel-release -y
yum install gcc gettext autoconf libtool automake make pcre-devel asciidoc xmlto udns-devel libev-devel libsodium-devel mbedtls-devel -y
③、下载yum源,并配置放入在 /etc/yum.repos.d/ 目录下

下载地址:
shadowsocks repo

④、安装 shadowsocks-libev
1
2
su -c 'yum update'
su -c 'yum install shadowsocks-libev'
④、测试 shadowsocks-libev 是否正确安装

在终端输入:ss 命令,按Tab键看到以下,说明安装成功

1
2
3
[root@izt4nax70m2dsl3yoh6uxlz ~]# ss
ss ssh ssh-agent sshd ssh-keygen ss-local ss-manager ss-redir ss-tunnel
sserver ssh-add ssh-copy-id sshd-keygen ssh-keyscan ssltap ss-nat ss-server
⑤、配置 shadowsocks-libev,编辑 /etc/shadowsocks-libev/config.json 文件
1
2
3
4
5
6
7
8
{
"server":"0.0.0.0", # 监听所有的端口
"server_port":2020, # 指定server端口,自定义
"local_port":1080, # 指定本地端口,默认
"password":"xxx", # 配置密码
"timeout":60,
"method":"rc4-md5" # 加密方式
}
⑥、启动 shadowsocks-libev

启动:

1
nuhup ss-server &  # 后台启动

查看是否成功启动:

1
2
3
[root@izt4nax70m2dsl3yoh6uxlz ~]# ps -ef | grep ss-server
root 14046 1 0 Aug10 ? 00:00:12 ss-server
root 32356 32306 0 17:46 pts/0 00:00:00 grep --color=auto ss-server

备注:


其它VPS系统 shadowsocks-libev 安装以及详细配置请参考地址:


shadowsocks-libev 其它系统安装以及详细配置


2、shadowsocks 客户端安装与使用( Client 端

①、下载 ShadowsocksX-NG ,并安装,解压直接打开

下载地址:
ShadowsocksX-NG.1.5.1.zip

②、客户端,服务器配置

点击客户端图标——>服务器——>服务器设置 选择 + 号添加一台服务器,配置参数如下:

备注:

1、地址: 填写你VPS公网的IP

 2、端口: 是你在 /etc/shadowsocks-libev/config.json 中配置的 server_port 中的端口

 3、密码: 是你在 /etc/shadowsocks-libev/config.json 中配置的 password 中的密码

 4、加密方式: 是你在 /etc/shadowsocks-libev/config.json 中配置的 method 中的加密方式
③、客户端设置开启全局模式

备注:

 PAC自动模式、全局模式、手动模式三种模式主要区别,供大家参考选择

1、PAC自动模式: 可保证所有浏览器都能够使用代理,和访问你们公司内网

 2、全局模式: 可保证所有浏览器能够使用代理,但不能访问公司内网

 3、手动模式: 仅仅适用于指定浏览器(配套的插件:如 Chrome 浏览器的:SwitchyOmega 插件)
  能够使用代理和访问公司内网,下文将会介绍。
④、测试VPN搭建是否成功

1、 Google 一下

备注:如果Google不了,可能原因如下

1、首先确保客户端和服务端的配置参数一致

 2、购买时候的VPS安全组规则,没有开启相应的端口

 3、VPS上防火墙以及相关端口没有开启问题

3、shadowsocks 客户端管理工具Google插件SwitchyOmega安装与使用( 可选择

①、安装

大家在goole商店里自行Google检索词 SwitchyOmega 添加到扩展程序里

①、情景模式: proxy 选项配置

点击 SwitchyOmega 选项 按钮 打开 SwitchyOmega 的配置界面,找到情景模式模块下的 proxy 选项
如图:

说明:

1、代理协议: SOCKET5

 2、代理服务器: 写本机(127.0.0.1)

 3、代理端口: 和服务端 /etc/shadowsocks-libev/config.json 文件中的 local_port 值保持一致
②、情景模式: auto switch

说明:

在切换规则栏目下,你可以添加正则匹配哪些域名走直连,和代理;如果觉得这样麻烦,我们可以在规则列表设置里面,
通过添加规则网址(https://raw.githubusercontent.com/gfwlist/gfwlist/master/gfwlist.txt),
为我们生成一些常用的规律列表,(请注意规则列表规则要选择Proxy模式,否则不起作用)