Shadowsocks 自搭梯子完全教程

1. 简介

这次国庆节用了两年的服务商终于趴了,连着2天是没有链接上. 每年国庆节的时候似乎都能死一批服务商.
究其原因还是树大招风,用的人多了就容易被封.

晚上憋不住, 2个小时不到梯子就搭好了. 开始写这个博客的时候时间已经是凌晨 2.06. 好了现在开始介绍如何用最快的方式搭建一个的 Shadowsocks 服务.

2. 购买VPS

首先你需要购买一个VPS服务,淘宝搜索VPS会有很多. 我用的是 linode.
购买Linode VPS 有两种方式,一种是直接在官方网站上购买,另一种方式你通过国内的代理渠道购买. 官方购买需要提供信用卡(master,visa). 下面介绍代理商注册购买方式.

访问链接 http://cp.ivpser.com/linode (这里我省略注册相关流程)

选择机房:日本东京. 操作系统选择 Ubuntu 系统

最便宜的应该40块钱每个月 1TB的流量(足够你使用了).

下一步选择需要购买多少月, 然后支付. 稍等一两分钟你会收到一份邮件. 邮件内就有关于服务器信息

3. 配置服务器

购买服务器后因为服务器使用的是默认密码,服务器无疑是处于裸奔状态.如果你仅仅是用于翻墙用途的建议做下面的操作.
登陆 Linode 后台面板(http://manager.linode.com)

1.重新初始化服务器,重置 root 密码

2.使用网页客户端 卸载 ssh 服务端(以后就使用网页客户端).
登陆控制台

卸载 openssh-server

1
apt-get remove --auto-remove openssh-server

4. 安装 Shadowsocks 代理服务

安装 Shadowsocks 服务端非常容易,几行命令就能搞定. 官方文档
更新安装包列表

1
apt-get update

安装Python软件包索引

1
apt-get install python-pip

安装git工具(这样可以直接安装GitHub上最新的版本)

1
apt-get install git

安装shadowsocks服务端

1
pip install git+http://github.com/shadowsocks/shadowsocks.git@master

测试一些是否安装成功

1
ssserver --version

如果安装成功,控制台会打印如下信息

1
Shadowsocks 3.0.0

5. 配置并启动代理服务

创建一个服务配置文件

1
nano /etc/shadowsocks.json

在文件内添加如下内容

1
2
3
4
5
6
7
8
9
10
11
{
"server":"<这里填写你的服务器IP>",
"server_port":443,
"local_address":"127.0.0.1",
"local_port":1080,
"password":"<这里填写你的密码>",
"timeout":300,
"method":"aes-256-cfb",
"fast_open":false,
"workers":5
}

关闭并保存文件.启动代理服务

1
ssserver -c /etc/shadowsocks.json -d start

如果你看到如下信息

1
2
3
INFO: loading config from /etc/shadowsocks.json
2017-10-06 20:07:33 INFO loading libcrypto from libcrypto.so.1.0.0
started

说明你服务已经正常启动.

现在你需要进一步确认你的电脑能否链接这台服务器的端口.
在你本机打开 cmd 控制台. 使用telnet尝试链接一下代理服务器

1
telnet <这里是你服务器的IP> 443

如果能够正常链接上,说明服务器这边已经完全搭建好了.

6. Windows客户端使用

shadowsocks-windows 也是shadowsocks 整个项目的一部分.
下载列表
http://github.com/shadowsocks/shadowsocks-windows/releases
选择最新的版本下载包(Latest release-> Downloads).
如果一起顺利你得到一个客户端软件
配置运行

如何与自己友好的相处

今年的目标已经完成了1个 - 驾照有惊无险的拿下来了。
留下一个PMP职业考试。如果9月份能够顺利通过,今年这个白格子至少不是空的。
回家的时候拍的这张照片, “夕阳无限好,只是近黄昏”

标题和内容不符。

Sitecore 缓存本地存储实现

1. 简介

Sitecore 本地调试开发启动预热需要加载缓存远程数据库item数据。 Sitecore 7.5 使用的是缓存使用的是Hashtable 实现的,并且没有提供给开发任何可以扩展的机会。

这种缓存实现方式,意味着每次调试,启动,发布或者回收应用程序池,会导致已经缓存到内存里的数据丢失.

说明文档提供能将Sitecore每次查询结果缓存到本地磁盘中的方法。

2. 如何使用

2.1. 下载类库

代码托管在Github:
http://github.com/seamys/Sitecore.Data.LocalDataProvider
使用Git 下载:
Git clone http://github.com/seamys/Sitecore.Data.LocalDataProvider.git
Zip包下载下载:
http://github.com/seamys/Sitecore.Data.LocalDataProvider/archive/sitecore7.5.zip

2.2. 编译项目

a) 打开项目文件夹,复制 Sitecore.Kernel.dll 到项目 ”\libs\7.5“ 文件夹中

b) VS打开项目并编译生成:Sitecore.Data.LocalDataProvider.dll

c) 将编译的Sitecore.Data.LocalDataProvider.dll复制到Web bin目录下

2.3. 修改Web.config dataApi, dataProviders节点配置

修改dataApi节点 configuration-> sitecore -> dataApis->dataApi:

1
2
3
<dataApi name="SqlServer" type="Sitecore.Data.LocalDataProvider.$(database)LocalDataApi, Sitecore.Data.LocalDataProvider">
<param connectionStringName="$(1)" />
</dataApi>

修改dataProviders 节点 configuration-> sitecore -> dataProviders ->main:

1
2
3
4
<main type="Sitecore.Data.LocalDataProvider.$(database)LocalDataProvider, Sitecore.Data.LocalDataProvider">
<param name="api" ref="dataApis/dataApi" param1="$(1)"/>
<Name>$(1)</Name>
</main>

2.4. 刷新页面查询并缓存数据

数据扩展会将sitecore每次查询的数据存储到磁盘中。如果缓存从Hashtable 丢失相同的查询会直接从硬盘中读取。

3. 缓存查看工具

项目文件中包含 ” Sitecore.Data.LocalDataProvider.Tools“ 缓存查看工具。

项目编译完毕后 打开 Sitecore.Data.LocalDataProvider.Tools.exe

拖放Cache文件到软件Query Result 区域中

4. 特殊配置

项目文件中 ”Sitecore.LocalDataProvider.config.example“ 可以对缓存进行指定配置实例。
将文件移除 .example 后缀。 放置到 “\App_Config\Include” 文件夹中(非必须)

参数说明:
是否开启磁盘缓存(默认:true):

1
<setting name="LocalData.Enable" value="false"/>

指定需要缓存的数据库(默认值:*):

1
<settingname="LocalData.Allow.Databases" value="Sitecore_web,Sitecore_master"/>

需要过滤掉的Query (默认值:EventQueue)

1
<setting name="LocalData.Exclude.Querys" value="EventQueue"/>

5. 缓存文件共享

如果缓存结束后可以把缓存后的缓存文件压缩发送给其他开发使用。避免从新生成