记一次折腾过程(二)

记一次折腾过程(二)

十月 24, 2017

第二次折腾:

在稳定的使用一段时间后,有一天突然不能访问了。
想到后台看一眼,没想到官网来了这样一段文字。

为了避免之前其他的提供商那句:“相会有时,后会无期”的话。我还是别等了。

VPS:


其实之前没搞VPS是因为需要信用卡或者PayPal,当时还没有。不过现在终于有了,又重新找了找发现有的提供商付款选项里有个支付宝,马云爸爸还是厉害啊。(比特币笑而不语)

VPS的选择也有很多,可以上知乎看一看。别着急,耐心的看一看你是否都需要那么多配置,你需要为你过剩的CPU,内存以及硬盘空间来买单的。当然,性能越好,可做的事情就越多。你可以搭个服务器,跑点PHP,远程下载balabala的。

选择好你的服务器确定好系统后,我们可以开始了。(注:这里最好使用Linux 比Windows便宜很多而且Linux毕竟是专门干这种的,而且这里还有一个坑就是可能给你的IP也被*了,具体有没有Ping一下就行了,如果发生了咱态度诚恳点找一下客服给你换个IP解决)

这是一个悲伤的故事

开始


然后我们需要用到SSH连接工具来登录我们的服务器。

Mac和Linux下直接在终端中输入命令,连接后直接输入你的登录密码就可以直接连接。
在Windows系统下需要专门的客户端来SSH登录VPS。在Xshell官网下载。

ssh root@your_VPS_ipAddress

安装Shadowsocks:

Debian / Ubuntu:

apt-get install python-pip
pip install shadowsocks

CentOS:

yum install python-setuptools && easy_install pip
pip install shadowsocks

配置文件:

使用vim命令来编辑 /etc/shadowsocks.json

vim /etc/shadowsocks.json

如果你不会用vim来保存和编辑的话,去用几分钟学习下简单的使用,这个神器还有有很多故事和强大之处的。

{
"server":"my_server_ip",
"server_port":8388,
"local_address": "127.0.0.1",
"local_port":1080,
"password":"mypassword",
"timeout":300,
"method":"aes-256-cfb",
"fast_open": false	
}
字段名 意义
server 你的服务器地址
server_port 连接你服务器的端口
local_address 本地服务器地址
local_port 本地端口
password 密码
timeout 超时时间(秒)
method 加密方式(默认:aes-256-cfb)
fast_open TCP快速开启 (true / false)

填写正确后我们保存并退出。

运行:

ssserver -c /etc/shadowsocks.json

如果一切配置顺利,你可以在你的终端看见端口正在启动,然后我们在客户端上按照之前的一样填写好我们的配置就可以了。这里的小细节,不要打错任何东西,否则两边不一致是无论如何都都建立不起来连接的。

好了,我们又可以愉快的玩耍了~

又是彩蛋:


没错,我们通过自己建立VPS有了一个自己的专属服务器连接,这个的速度和性能完全是根据我们选择去定制的。同时,我们会发现一个小弊端,那么就是我们如何让它一直活动,不能关闭后就不能用了,那也太坑了。

我们当然可以写一个shell脚本,放在开机自启动。这里有个比较取巧的方法。(感谢我的渣浪好室友,冠希童鞋:手动撒花~)

保持SS运行

使用screen命令进行远程回话管理流程:

  1. ssh登陆到远程机器上
  2. 键入screen建立一个新的会话窗口
  3. 在这个新的会话窗口中运行命令(通常是一些时间较长的任务),键入C-a d,退出并保存该会话窗口
    (这之后可以退出ssh登陆的终端,下次工作时重新ssh登陆,再进行如下步骤)
  4. screen -ls列出所有会话
  5. screen -r id重新连接会话
  6. 使用exit真正退出会话

该命令真正强大之处是退出远程登陆后,screen依然会替我们管理保存的会话,在后台执行,我们再次远程登陆后可以恢复任何会话的现场,适用于时间较长的任务

其中C-a d是ctrl + A + D一起键入。

这样我们在screen中运行启动命令,然后按ctrl + A + D退出。
再断开连接的时候就不会中断这个命令,可以放心的关闭SSH连接了。


当然正统的方法是这样的:

添加应用到service:
创建脚本 /etc/init.d/shadowsocks 文件(其实也是 /etc/rc.d/init.d/shadowsocks 文件)

sudo vim /etc/init.d/shadowsocks

添加以下内容:

#!/bin/sh
#
# shadowsocks start/restart/stop shadowsocks
#
# chkconfig: 2345 85 15
# description: start shadowsocks/ssserver at boot time

start(){
        ssserver -c /etc/shadowsocks.json -d start
}
stop(){
        ssserver -c /etc/shadowsocks.json -d stop
}
restart(){
        ssserver -c /etc/shadowsocks.json -d restart
}

case "$1" in
start)
        start
        ;;
stop)
        stop
        ;;
restart)
        restart
        ;;
*)
        echo "Usage: $0 {start|restart|stop}"
        exit 1
        ;;
esac

然后增加这个文件的可执行权限:

sudo chmod +x /etc/init.d/shadowsocks

**
这样就可以在 shell 中直接运行下面的命令开启程序了(重启和停止同理):**

sudo service shadowsocks start

注意:
这里以root权限运行的,如果不想以root权限运行可以用 sudo -u {user} {command}。
如果不给脚本文件加上其他用户的可执行权限,不带参数运行 service shadowsocks 会提示 unrecognized service。

设置开机启动:
在上面脚本没有问题(也就是保留了前面10行,并且语法正确)的情况下,通过下面的命令,就可以设置程序自动启动了

sudo chkconfig shadowsocks on

这样程序就会自动启动了。

结合此处两个解决方案:

Linux将应用添加到service,并设置自动启动

How do I install chkconfig on Ubuntu?


多用户配置

我使用的每个月有2T流量,嗯…单单使用做SS的话,的确过剩了。

我们可以开辟多个端口,为每个端口使用不同的密码来登录。

{  
 "server":"my_server_ip",  
 "local_address": "127.0.0.1",  
 "local_port":1080,  
  "port_password": {  
    "2333":"mima12345",
    "6666":"mima12345"
 },  
 "timeout":300,  
 "method":"aes-256-cfb",  
 "fast_open": false  
}

这其中加密方式 我还是推荐rc4-md5的。或者他们说chacha20对移动端访问速度比较快。

主要是AES加密太耗时。

另附地址:多用户配置

结束:


经过这样我们可以暂时有一个小小的窗户,来继续访问官网的最新技术。

扔给你个小软件HyperApp(撒花φ(>ω<*) )

至此,我们已经可以实现一个很理想的状态。但是能不能更好地让家里全局的设备,比如Chromecat也支持呢?下一篇我会介绍。