精选博文

【电脑手机翻墙加速】全自动一键安装新版OpenVPN++使用教程,图文并茂,包教会,求转发

其实现在很多网站提供科学上网服务,但是安全性无法得到保障,你的所有数据包都会暴漏给这些网站,很容易泄漏一些账号密码之类的敏感信息。其次免费的账号使用人数太多,速度和稳定性都无法得到保障。即便是付费的账号,由于卖家对于流量和带宽的限制,永远没有自己搭建的服务器实在, 还要承担那些...

2017年7月29日星期六

史上最详尽最简单明了从零开始在 Vultr 上使用docker快速搭建 Shadowsocks 服务端

本文介绍如何注册 Vultr 云平台账户、创建 PayPal 账户并绑定银行卡、下单购买 Vultr 主机 并部署 Shadowsocks 服务端。

依照本文教程进行 Shadowsocks server 配置时,不需要任何电脑基础,只需要动动你的鼠标。

注册 Vultr 帐号

如果已有 Vultr 帐号,可忽略本节,跳到 下面的“配置支付方式” 。
直接点击打开 Vultr 网站 https://www.vultr.com/?ref=6920741-3B

图 1. Vultr 主页
 点击进入后按下图输入邮箱和要设置的密码(最少10位,要同时有数字和大小写字母),最后点击Create Account 注册,。
图 2. 创建 Vultr 帐号
接着进入邮箱,查收确认邮件。
图 3. 到邮箱确认注册
点击邮件中的确认按钮,通过验证并自动登录到 Vultr。

配置支付方式

在购买 VPS 之前,需要配置付款方式,才能进行支付。
支付方式有 3 种:
  • 信用卡
  • PayPal
  • Alipay /支付宝
  • Bitcoin
如果没有信用卡或不想使用信用卡的话,可选择 PayPal 或者支付宝。
Bitcoin 目前似乎还不支持,我也没有比特币,不作介绍。
 
(1) 你可以选择用支付宝来激活, 选中金额$10 ,然后点击蓝色方框内的pay with Alipay 进行支付. (如下图)




(2) 或者用 PayPal 。

创建 PayPal 账户

如果已有绑定银行卡的 PayPal 账户,可忽略本节,跳到 “充值到 Vultr”。
PayPal 账户无需实名认证,可以使用银联的借记卡。
注册过程就不细说了,创建一个购物账户,姓名和地址不必真实。

绑定银行卡

注册 PayPal 后,在 “钱包” -> “信用卡和借记卡” 处选择 “关联卡” ,填入卡号和银行卡关联 的手机号。
图 4. 绑定银行卡到 PayPal
接着会收到一条银联的验证短信,填入验证码,完成绑定。
绑定完成后不需要充值到 PayPal,等付款时会自动充值的。
PayPal 付完款后可以随时解除银行卡关联。如要解除绑定,点击 PayPal 关联的银行卡,然后 点击 “移除卡” 即可。
银联卡需要是下面类型之一的才能绑定成功。
  • 中国工商银行、中国建设银行、中国农业银行 、中国银行、交通银行、华夏银行、平安银行、 兴业银行、宁波银行、潍坊银行、哈尔滨银行、珠海农信、尧都农信、武汉市商业银行、 晋城市商业银行、顺德农商银行发行的银联借记卡;
  • 中国工商银行、中国银行、交通银行、中信银行、招商银行、广东发展银行、浦东发展银行 发行的银联信用卡。
使用银联卡付款前,请您先在银行开通该卡的网上支付功能。
银联卡只能用以进行在线购物。

充值到 Vultr

在创建 Vultr 主机前,需要先充值一定金额到 Vultr 帐号。这里充值 5 美元。
图 5. 用 PayPal 充值到 Vultr 账户
在支付页面,同意并继续。
图 6. 用 PayPal 支付
接着会再要求登入一次 PayPal 账户并填写验证码,完成付款。如果过程中出现任何问题请打下面的客服电话(客服讲中文),输入自己的动态识别码  https://www.paypal.com/selfhelp/contact/call )

创建 Vultr 主机

付款完成后,将自动进入购买主机页面。
图 7. 创建主机
主机配置可参考下表。
表 1. 主机配置参考
项目
Server LocationAsia / Singapore
Server TypeCentOS 7 x64
Server Size25 GB SSD / 1 CPU / 1024MB Memory / 1000GB Bandwidth
Additional Features-
Startup Script-
SSH Keys-
Server Hostname & Label-
检查配置无误后,点击 “Deploy Now”。
不出意外,将会有一台主机在部署。
图 8. 创建中的主机

连接到主机

点击主机右侧 “…” 展开菜单,选择 “Server Details” 可以看到这台主机的一些信息。包括 这台主机的公网地址(IP Address)、登录用户名(Username)和密码(Password)。 记下这三项,后面所说的登录 VPS 要填写的用户名、密码,就是这一套。
图 9. 主机详细信息
如果你用的电脑是 Linux 或 MacOS 系统。则可以直接用 SSH 连接过去。
ssh root@112.113.114.115
# 输入 yes 接受指纹
# 输入 VPS 主机的密码
将这里 112.113.114.115 替换为 VPS 主机的公网 IP。
如果你用的电脑是 Windows 系统,最好安装 Putty / XShell 这样的工具,或者也可以用 Vultr 提供的网页控制台。

图 10. 打开 Vultr 控制台
在网页控制台,输入 VPS 的用户名和密码。
图 11. Vultr 网页控制台
吐槽一下,这个网页控制台 5 毛水平,连粘贴都不支持。
登录后,会出现命令行界面,比如执行 free -h 能够显示内存占用情况。接下来将在这里执行 命令安装 Docker 并启动 Shadowsocks 服务端。
图 12. Linux 中连接到 VPS
出于安全考虑,截图中 IP 等信息已被遮盖。

配置 Shadowsocks 服务端

和别的教程不一样的是,这里配置服务端,无需下载和运行脚本,也无需修改什么配置文件。只需要 下面两步,就能启动 Shadowsocks 服务端。

安装 Docker

Docker 是一种通用的用于打包、发布、运行应用程序的容器引擎,更多介绍可 查阅 《What is Docker?》。
在线下载 Docker 安装脚本并执行。
curl https://get.docker.com/ | sh
出现下面信息,说明已经安装完成。执行 docker version 可查看版本信息。
图 13. 在 VPS 中安装 Docker
启用 Docker daemon 进程,并加入开机启动项。
systemctl start docker && systemctl enable docker

启动 ssserver

如果想要启动一个 ssserver(即 Shadowsocks server),可以直接运行下面命令。
docker run -d --restart=always \
    -p 8388:8388 fanach/ssserver -p 8388 -k abc123
这样,在后台将会有一个 ssserver 的容器在运行。执行 docker ps 查看。
图 14. 启动 Shadowsocks 容器
接着,可以通过服务器地址、端口 8388、密码 abc123 以及默认加密方式 aes-256-cfb 去连接了,跳到 “客户端连接与验证”。
这里端口、密码和加密方式可以自己设置。

命令解释

docker run -d --restart=always \
    -p 8388:8388 fanach/ssserver -p 8388 -k abc123
上面那条 docker run 命令执行后,将会做下面事情。
  1. 下载 fanach/ssserver 这个镜像;
  2. 根据给的端口、密码等参数,在后台运行一个 ssserver 容器。
这里 -d 是指在后台运行。
--restart=always 是指在容器发生异常退出时自动重新启动。
-p 8388:8388, 前一个 8388 是称为主机端口,后一个 8388 是称为容器端口。
最后面还有个 -p 8388 是容器中 ssserver 程序的参数,即容器中 ssserver 监听的端口 为 8388。容器端口和 ssserver 监听端口必须相同。
-k abc123 为密码。
如果要设定加密方式,可用 -m 参数,如 -m chacha20
所有支持的加密方式如下
  • aes-128-cfb
  • aes-192-cfb
  • aes-256-cfb
  • aes-128-ctr
  • aes-192-ctr
  • aes-256-ctr
  • des-cfb
  • bf-cfb
  • cast5-cfb
  • rc4-md5
  • chacha20
  • chacha20-ietf
  • salsa20
各种加密方式的区别,需要自己查阅了。
如果需要再启动一个 ssserver ,换一个主机端口,如 8399,再运行一次命令即可。
docker run -d --restart=always \
    -p 8399:8388 fanach/ssserver -p 8388 -k abc456
如果对镜像 fanach/ssserver 有兴趣,可到点击 这里 到 DockerHub 查看。 Dockerfile 开源于 fanach/dockerfile-ssserver

状态查询

基本信息

执行 docker ps -a 可查询所有容器(包括已退出的)的简要信息。第一列为容器 ID。
图 15. Docker 容器

日志查询

执行 docker logs -f 并跟上容器 ID 查询服务端日志。
[root@vultr ~]# docker logs -f aaa89aea2169
2017/06/03 12:21:34 server listening port 8388 ...
2017/06/03 12:48:42 creating cipher for port: 8388

流量查询

执行 docker stats 并跟上容器 ID 查询容器资源使用情况。
图 16. 查看容器资源用量
其中 NET I/O 分别为这个 ssserver 容器输入和输出的流量。
如果想要查看整个 VPS 流量使用情况,到 Vultr 主机详细信息页面查看。

客户端连接与验证

Android 用户见: 《Android 上使用 Shadowsocks 教程
iPhone / iPad 用户见: 《iPhone/iPad 上使用 Shadowsocks 教程
Windows 用户见: 《Windows 上使用 Shadowsocks 教程
MacBook 用户见: 《Macbook 上使用 Shadowsocks 教程
Linux 用户见: 《Linux 上使用 Shadowsocks 教程

其他一些过程记录(拓展部分)

修改密码

如果觉得 Vultr 自动生成的密码太长太复杂不好记。可以修改登录密码。
SSH 进入主机控制台,并运行命令:
$ passwd root
Changing password for root.
Current password: (输入原密码)
New password: (输入新密码)
Retype new password: (再次输入新密码)
修改后的密码自己要牢记,如果遗忘,Vultr 似乎没有办法重置,只能重装 VPS 系统了。

安全配置

尽管修改了密码,使用用户名、密码方式登录主机也并不安全。尤其是在修改密码后,设置了简单 的密码,那更危险了。我第二天登录时,发现有 4000 多次登录失败。假如密码被试对了,那骇客 就可以对这台主机做任何操作了。
Last failed login: Sun Jun  4 15:06:48 UTC 2017 from 61.177.172.56 on ssh:notty
There were 4728 failed login attempts since the last successful login.
一个好的方法是禁用密码登录,而是只使用密钥登录。这里密钥是指用 OpenSSL 工具生成的非对称密钥对。
** 为了安全,推荐禁止密码登录,只允许使用私钥登录。**

添加公钥

生成密钥对,添加公钥到受信任的密钥中,并保留私钥。
$ ssh-keygen
(一路回车,将在 ~/.ssh/ 下生成 id_rsa 和 id_rsa.pub 两个文件,分别为私钥和公钥。)

$ cat .ssh/id_rsa.pub >> .ssh/authorized_keys
复制私钥并妥善保存到自己的电脑上。

禁止通过密码登录

$ vi /etc/ssh/sshd_config
# 查找并修改下面两项
PasswordAuthentication no // 禁止使用基于口令认证的方式登陆
PubkeyAuthentication yes // 允许使用基于密钥认证的方式登陆
在执行下面命令之前,确保私钥已经保存到自己的电脑(自己的 Windows / Linux / MacOS 电脑, 而不是 VPS),否则重启 sshd 服务后,将无法通过密码再连接到 VPS,而只能用私钥连接。
$ systemctl restart sshd
# 重启 sshd 服务
假如保存下来的私钥文件名为 id_rsa.vultr,那后面要通过 SSH 连接 VPS 时,执行下面命令 即可。
$ ssh -i id_rsa.vultr root@112.113.114.115
将 112.113.114.115 替换为你的 VPS 公网 IP。
Windows 用户可下载并学习 XShell 的使用,XShell 实现了 SSH 具有图形化配置界面。

创建 SWAP

为了防止内存溢出导致主机重启,可创建一个 2048M 的 SWAP 文件 /swapfile 。
$ dd if=/dev/zero of=/swapfile bs=1024k count=2048
$ chmod 600 /swapfile
$ mkswap /swapfile
$ swapon /swapfile

Tips

  • 如果不是用 root 用户,需要在部分命令之前加上 sudo

修改历史

  • 2017.08.05 使用 Vultr Affiliate 链接
  • 2017.06.17 修复 go 版 ssserver 对安卓不兼容问题(默认镜像改为 fanach/ssserver )。
  • 2017.06.08 添加 swap 说明。
  • 2017.06.04 添加拓展部分:安全配置。

没有评论:

发表评论