因为坑爹的GFW某些问题,导致一些浏览器的默认搜索长期404,为了解决这个问题之前试过lantern 也试过一些 vpn,但是都不好用啊,vpn 要面对商家跑路的危险(和去理发店找 tony 老师办卡一样),lantern 虽然好用但是免费版有流量限制,只能自己动手丰衣足食了

首先选一个国外的服务器

国内的服务厂商就不用想了,哪怕是有国外的服务器也是死贵死贵的,然后如果没有办过 aws 的话,这个是 最佳 选择,因为初次注册并绑定信用卡就能免费使用一年的 vps,用来做 shadowsocks 服务器完全没 问题啊!具体开那个服务器其实都是那一套流程了,现在进入主题:买一个 vultr服务器.

我认为 vultr 的优势 * 国外服务器,可以做翻墙用 * 价格便宜,每月最低2.5$,丰俭由人,计价方式是按小时计费哟! * 如果是个人使用有用不完的流量(1T+) * 主要是我还想用它做网站服务器,配置和价格比国内有强

官网注册一个账户就可以开始选择服务器了,配置选东京服务器>centos7>1cpu&1GMery&1TBandwidth, 点完这三项就什么都不用点了, deploy now

这时应该是有一个ip,一个密码了,可以登录服务器了 如果你是 windows 环境,下载一个 xshell 如果你是 macOS 就用终端或者 item2 接下来的操作两个平台都是一样的,就是用 ssh 去链接远程服务器 比如你的 ip 是120.0.0.1

1
ssh root@120.0.0.1

回车后输入密码就能登录上去了

在服务器搭建 shadowsocks

  1. 最简单的就是通过脚本搭建,按以下命令

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    
    # 下载脚本
    wget -O ss.sh http://zhangdanyang.com/file/ss.sh
    # 执行脚本
    bash ss.sh
    
    # 设置端口号并回车,直接回车是设置为1225
    Please enter PORT(1225 default):
    # 设置密码并回车,直接回车是设置为123456
    Please enter PASSWORD(123456 default):
    
    # 等待一会……就完成了(初次执行约2-5min)

脚本源码

 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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#! /bin/bash
# log路径
export log_path=/etc/ss.log
# 设置端口号
echo -n -e '\033[36mPlease enter PORT(1225 default): \033[0m'
# echo -n "please enter port(1225 default):"
read port
if [ ! -n "$port" ];then
        echo "port will be set to 1225"
        port=1225
else
        echo "port will be set to $port"
fi
# 设置密码
echo -n -e '\033[36mPlease enter PASSWORD(123456 default): \033[0m'
# echo -n "please enter password(123456 default):"
read pwd
if [ ! -n "$pwd" ];then
        echo "password will be set to 123456"
        pwd=123456
else
        echo "password will be set to $pwd"
fi
# 写shadowsocks.json配置文件
cat>/etc/shadowsocks.json<<EOF
{
    "server":"0.0.0.0",
    "server_port":$port,
    "local_address": "127.0.0.1",
    "local_port":1080,
    "password":"$pwd",
    "timeout":300,
    "method":"aes-256-cfb",
    "fast_open": false
}
EOF
# 安装 shadowsocks 防火墙等
ret=`yum install -y m2crypto python-setuptools >> ${log_path} 2>&1`
ret=`easy_install pip >> ${log_path} 2>&1`
ret=`pip install shadowsocks >> ${log_path} 2>&1`
ret=`yum install -y firewalld >> ${log_path} 2>&1`
ret=`systemctl start firewalld >> ${log_path} 2>&1`
# 开启端口
ret=`firewall-cmd --permanent --zone=public --add-port=22/tcp >> ${log_path} 2>&1`
ret=`firewall-cmd --permanent --zone=public --add-port=$port/tcp >> ${log_path} 2>&1`
ret=`firewall-cmd --reload >> ${log_path} 2>&1`
# 如果有相同功能的进程则杀死
ps -ef|grep ssserver|grep shadowsocks|awk '{ print $2 }'|xargs kill -9
nohup /usr/bin/ssserver -c /etc/shadowsocks.json &
# 成功
if [ $? -eq 0 ];then
clear
cat<<EOF
***************Congratulation!*************
Shadowsocks installed successfully!

PORT: $port
PASSWORD: $pwd
METHOD: aes-256-cfb

***************JUST ENJOY IT!**************
EOF
# 失败
else
clear
cat<<EOF
************Failed,retry please!***********

cat /etc/ss.log to get something you need…

************Failed,retry please!***********
EOF
fi

需要记住 端口号密码 一会儿会用到

如果是用脚本搭建的就没必要看这一部分了,直接看客户端部分就行 手动搭建 shadowsocks

1
2
3
4
# 安装 pip 工具且安装 shadowsocks
$ yum install m2crypto python-setuptools
$ easy_install pip
$ pip install shadowsocks

编辑启动配置文件

1
$ vi  /etc/shadowsocks.json

文件内容如下

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
{
    "server":"0.0.0.0",
    "server_port":443,  //对外的端口
    "local_address": "127.0.0.1",
    "local_port":1080,
    "password":"123456",//你的链接密码
    "timeout":300,
    "method":"aes-256-cfb",
    "fast_open": false
}

如果是多端口配置

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
{
    "server":"0.0.0.0",
    "local_address": "127.0.0.1",
    "local_port":1080,
    "port_password": {
         "443": "443",
         "8888": "8888"
     },
    "timeout":300,
    "method":"aes-256-cfb",
    "fast_open": false
}

配置防火墙,centos7默认的防火墙是 firewalld 和 centos6的 iptables 稍有区别

1
2
3
4
# 安装防火墙
$ yum install firewalld
# 启动防火墙
$ systemctl start firewalld

开启对应的端口

1
2
3
4
# 端口号是你自己设置的端口(上文中的配置,443端口)
$ firewall-cmd --permanent --zone=public --add-port=443/tcp
# 新增防火墙规则后一定要执行,这一步很重要
$ firewall-cmd --reload

启动 shadowsocks 服务

1
2
3
$ ssserver -c /etc/shadowsocks.json
//如果改成常驻后台的模式
$ nohup ssserver -c /etc/shadowsocks.json &

将它设置成开机自启动

1
vi /etc/systemd/system/shadowsocks.service

输入内容

1
2
3
4
5
6
7
8
9
[Unit]
Description=Shadowsocks

[Service]
TimeoutStartSec=0
ExecStart=/usr/bin/ssserver -c /etc/shadowsocks.json

[Install]
WantedBy=multi-user.target

添加进服务中

1
2
3
4
5
$ systemctl enable shadowsocks
//启动服务(如果执行过之前的流程的话就不用执行这一步,因为已经启动了)
$ systemctl start shadowsocks
//查看启动状态
$ systemctl status shadowsocks -l

如果启动没问题和防火墙没问题那么服务器这块就没问题了

通过客户端连接远程 ss 服务

下载一个 shadowsocks 客户端下载

各个平台版本列表

软件下载安装后,点击 服务器>服务器设定, 地址就是你的服务器 ip,后面的端口是 shadowsocks.json中设置的 server_port,也就是脚本设置时的第一个参数 密码是配置文件中的密码,加密方式如果用的脚本就是默认 aes-256-cfb 如果是独立安装就参考shadowsocks.json中 的method 设置好点选这个服务器再打开 shadowsocks 就好

后记

我用的是 mac,之前也是用同样的程序链接的 aws 的服务,后来到期后改用的 vultr,结果搭建的服务器在 mac 上 连接不上了,但是同样的地址用手机就能连上!折腾了半天发现是电脑中有之前的配置缓存,索性我就把当前的 shadowsocks 删了重装一下,用 cleanMyMac 给它卸载干净,卸载的时候就能发现它究竟有哪些配置存在 统统删掉删掉,再重装一下就一切正常了

以上代码出处