使用Vultr来搭建梯子

因为坑爹的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 给它卸载干净,卸载的时候就能发现它究竟有哪些配置存在
统统删掉删掉,再重装一下就一切正常了

以上代码出处

这个博客有个赞赏功能,不试一下吗?