以前我整理过一篇博客,详细叙述了如何自己搭建梯子,图文并茂,可以参见:使用 Vultr 搭建 Shadowsocks(VPS 搭建 SS) 。里面有涉及到购买一台云服务器后该如何操作:初始化环境、安装 Shadowsocks、配置参数、安装防火墙、启动服务、检查服务状态等等步骤。
虽然过程很详细,只要几个命令就可以完成 Shadowsocks 服务的搭建,但是对于没有技术基础又不想折腾的读者来说,还是有点困难。所以我把安装过程整理成一个自动化的 Shell 脚本,读者下载下来之后,直接运行即可,在运行过程中如果需要询问交互,例如填写密码、端口号等,读者直接填写即可,或者直接使用默认的设置。
首先说明,使用这个自动化 Shell 脚本,零基础的读者也可以自行安装 Shadowsocks,整个安装过程不到五分钟,非常友好而高效,运行脚本后慢慢等待即可,当然别忘记填写必要信息。
本脚本已经被我上传至 GitHub,读者可以下载查看并使用:auto_deploy_shadowsocks.sh ,需要注意的是,这个自动化 Shell 脚本只针对 CentOS 7x64 操作系统有效,其它操作系统我没有测试,不保证能用。所以为了稳妥起见,请读者还是参考我上面给出的那篇博客来创建云主机。
自动化安装
下载 GitHub 上面的脚本时,如果有类似 Shell 的环境,就不用浏览器下载了,在 Shell 中可以直接使用 wget 命令下载,使用如下命令:
1 | wget https://raw.githubusercontent.com/iplaypi/iplaypistudy/master/iplaypistudy-normal/src/bin/20190828/auto_deploy_shadowsocks.sh |
下载下来后接着直接运行即可,使用 sh auto_deploy_shadowsocks.sh 。
下面简单描述自动化脚本的思路:
1 | 1、提示用户输入端口号、密码,并读取输入,没有输入则使用默认值 |
脚本内容整理如下,重要的地方已经注释清楚【这里要特别注意脚本中的换行符号,一律使用 \\n 的形式,否则会引起错误】:
1 | #!/bin/bash |
执行脚本的输出信息如下【我手动设置端口号为 2019,密码使用默认值】,表示安装完成:
1 | [root@playpi ~]# sh auto_deploy_shadowsocks.sh |

同时,server 酱也接收到通知,可以很方便地直接转发给需要的人了。

自动更换端口重启
在使用 Shadowsocks 的时候,有时候会遇到一个问题,端口被封了【ip 被封另外说,只能销毁主机新建】,特别是国家严厉管控非法 VPN 的时候,当然我这是属于误封,因为我只是用来学习、测试接口,这时候解决办法也简单,尝试更换一个端口即可。
步骤其实很简单,停止服务、更改配置文件、开启新端口、重启服务,但是作为一个追求效率的人,我还是想把操作简化一下,最好敲下一行命令等着就行【执行脚本的前提是 Shadowsocks 以及相关工具已经安装完成】。
其实把前面的步骤稍微整理一下,就变成了一个简单的脚本,直接执行即可。脚本已经被我上传至 GitHub,在 Shell 中可以直接使用 wget 命令下载,使用如下命令:
1 | wget https://raw.githubusercontent.com/iplaypi/iplaypistudy/master/iplaypistudy-normal/src/bin/20190828/auto_restart_shadowsocks.sh |
下载下来后接着直接运行即可,使用 sh auto_restart_shadowsocks.sh 。
下面简单描述自动化脚本的思路:
1 | 1、提示用户输入端口号、密码,并读取输入,没有输入则使用默认值 |
脚本内容整理如下,重要的地方已经注释清楚【这里要特别注意脚本中的换行符号,一律使用 \\n 的形式,否则会引起错误】:
1 | #!/bin/bash |
执行脚本的输出信息如下【需要手动设置新的端口号,我设置为 2020,密码仍旧使用默认值】,表示重启完成:
1 | [root@playpi ~]# sh auto_restart_shadowsocks.sh |

同时,server 酱也接收到通知,可以很方便地直接转发给需要的人了。

监控服务
鉴于国家管控越来越严格,有时候会误伤到我们的 VPS,毕竟我只是用来学习技术、测试接口,没有做什么违法的事,有时候突然挂掉了我也不知道,直到需要用到的时候才发现已经挂掉了,这时候还要去折腾,重启甚至更换 ip,影响心情,也影响做事的效率。
那么有没有可能做一个简单的监控服务,每隔一段时间检测一下服务是否正常,如果不正常则发送通知。如果连续多次不正常,则发送通知提醒更换端口重启;如果是 ip 被封,此时重启没有用了,应该发送通知,提醒重新更换主机。
使用 Shell 可以做一个简化的版本,脚本已经被我上传至 GitHub,在 Shell 中可以直接使用 wget 命令下载,使用如下命令:
1 | wget https://raw.githubusercontent.com/iplaypi/iplaypistudy/master/iplaypistudy-normal/src/bin/20190828/auto_monitor_shadowsocks.sh |
下载下来后接着直接运行即可,使用 sh auto_monitor_shadowsocks.sh 。
当然,这个监控脚本是要放在常用的主机上面运行,或者是在自己的电脑后台运行,但是为了确保一直后台运行,还是放在远程服务器上比较好,例如公司的公共服务器、阿里云主机等,这样就可以一直运行并监控【确保运行在家庭的网络环境中或者公司的网络环境中,否则监控结果没有意义】。
下面简单描述自动化脚本的思路:
1 | 1、执行脚本时输入 ip、端口号、周期,然后每隔指定时间按照如下流程检测一次 |
脚本内容整理如下,重要的地方已经注释清楚【这里要特别注意脚本中的换行符号,一律使用 \\n 的形式,否则会引起错误】:
1 | #!/bin/bash |
执行脚本后,每隔 10 分钟检测一下 ip 或者端口是否可以正常访问。如果正常什么都不做;如果端口不正常则记录,如果端口连续 3 次不正常则发送故障报告,提醒更换端口;如果 ip 不正常则发送故障报告,提醒更换主机。
下面列举一些 server 酱的通知示例。
端口连续不可用。

ip 不可用。

备注
1、Server 酱的使用有限制,每天限制 1000 条信息,所以千万不能写个死循环狂发信息,会被拉黑的。
2、使用 wget 下载文件时,如果本地文件已经存在,会自动新建一个文件,文件很多,有时候会显得很乱,如果想覆盖下载,可以使用 -N 参数,或者使用 -O your_file_name 参数指定本地文件名。

