自己搭建翻墙工具来科学上网(Shadowsocks)

2016-12-15 00:33:00

前言

科学上网,是有需求的前提下正确翻墙,不要干坏事儿!具体见 我为什翻墙

题外话

如果懒得折腾,也可以联系我,根据使用情况,把我的服务器有偿共享一个给你,具体邮箱联系 itbudaoweng#gmail.com

概述

下面会需要购买一个 VPS,自己搭建 shadowsocks 这种翻墙服务,通信加密,更安全,同时还可以充分学习服务器知识,一举多得。免费的才是最贵的,你的时间很宝贵。

操作流程

1, 先购买 VPS,必须是国外服务器(墙外的服务器--)。推荐 vultr ,我一直在用,很不错一个月 $5。而且限时促销中,新账户充多少送多少,很合算。vultr注册地址 ,或者直接搬瓦工便宜搬瓦工注册。需要翻墙才能打开,好尴尬,建议找个会翻墙的朋友指导进行。这两个链接都有推荐码,也就是你成功付费后,我能拿到一点提成(10%左右,但是太难了。。。)

2, VPS 准备好以后,打开 shadowsocks 官网根据教程搭服务。官网地址

由于官网是被墙的,因此我在下面列出相关内容。

客户端下载地址

Windows 
https://github.com/shadowsocks/shadowsocks-windows/releases
https://github.com/shadowsocks/shadowsocks-qt5/releases

Mac 
https://github.com/shadowsocks/ShadowsocksX-NG/releases

Linux
https://github.com/shadowsocks/shadowsocks-qt5/wiki/Installation

安卓
搜索 Shadowsocks

iOS
搜索 shadowrocket 或者 Anyflow Lite(这个免费的)

服务器安装

确认 python 是 2.6 或 2.7 版本,确认安装了 pip。

$ python --version
$ pip install shadowsocks

服务器配置

mkdir /etc/ssconfig

vim /etc/ssconfig/shadowsocks.json 把下面的{} 以及内容写进文件中。

{
    "server":"0.0.0.0",
    "server_port":随便起一个端口号,
    "local_port":1080,
    "password":"随便设置一个密码",
    "timeout":600,  
    "method":"aes-256-cfb",
    "user":"nobody"
}

先安装 supervisor,然后增加下面的配置文件。

vim /etc/supervisor/conf.d/ss.conf

[program:shadowsocks]
command=ssserver -c /etc/ssconfig/shadowsocks.json
autorestart=true
user=nobody

supervisorctl update

service supervisor start

以上都处理完后,需要在对应的客户端中输入以下4项内容。

ip 是你服务器的 ip 或者域名

端口号 是配置文件中的 server_port

选择对应的加密方式

密码是设置的密码

设置完成后,选择全局翻墙或者自动代理模式即可。建议使用默认的自动代理,这样访问 baidu.com 是不翻墙的,更快,访问 google.com 会自动翻墙。

我为什么翻墙(GFW)

概述 大概是高中了解到绿坝,大二开始接触到 GFW 这东西,开始愤青,开始翻墙。那时候真的是为了看看国家隐瞒了我们什么,其实看到的很多都是轮子的东西,当时就是瞎看(最初的软件是自由门了,用了一段时间就不敢用了,宣传的理念太他妈的吓人,变态!!!)。后来 Google 搜索断断续续总被重置,直到退出中国,我要翻墙看一些必要的网站,但其实不是那么必要,就是为了叛逆。 工作了,很多网站还是需要 Google 检索,因此就尝试过各种翻墙了,GoAgent等等,就不一一列举了。 但是用什么都不如自己搭建的放心,毕竟,从你到翻墙服务器直接是加密的,然后从翻墙服务器到网站又和政府没关系了,相对比较稳定。因此到现在为止用的还是搭建在自己买的服务器上的软件。 声明 墙外虽好,但不是墙外的都是好的。大家翻墙时也要保持独立思考和冷静的头脑,省的被反华势力和轮子的宣传误导、忽悠,很无聊的。 因此,我翻墙纯粹是为了科学上网,工作需要,偶尔上上 Youtube 等,仅此而已。 我现在是怎么翻墙的 具体参考这里

解决 Redis 110 Connection timed out 问题记录

背景 之前在某公司的时候,用 php-redis 扩展时,服务器会报错 110,"Connection timed out" after 0 ms,不可思议吧,0ms超时?当时一直以为是扩展层面的 bug。 现在直接用的 predis,同样的,总是能遇到 Connection timed out 这个报错。这次总不能又是 php 代码有问题了吧 :) 调试 调试代码的时候确认错误不是扩展返回的,110 代表了不是连接前的错误,而是 redis 服务器直接返回的错误。 这样问题就很明确了,直接从 redis 服务器入手。 1,首先 redis 是同步IO的,实例是单线程的,因此任何慢操作都可能会阻塞其它请求,而导致超时,可以参考的方向有 特大key导致的超时,rdb时同步写导致的超时(设置