转载至:https://subei.me/archives/17/
众所周知目前的网页访问基本都是C/S模式,而在中国由于客户机向服务器的发起的请求,如果是禁网则可以被GWF识别封杀,那么我们的原理就是让一个客户机(对我们来说它就是我们的代理人)在国外替我们拿到数据然后再传回来,为了防止传回的数据被GWF识别,我们要对数据加密,目前比较优秀的即使S S。
这里利用的是AWS(Amazon Web Services),是亚马逊提供的在线虚拟主机服务。现在AWS提供的基础服务免费一年,流量每月15G,只要你不是天天上网下大文件的话,一般不会超。
之所以选择AWS,首先是因为它比较稳定,并且它有东京的节点。网上很多其他主机商的节点都远在美国,距离近延迟低是铁律。
虽然中国人都喜欢免费的东西,但还是建议有钱的豪还是选择付费。
如果以下任何一步中出现灰色页面一个橘黄圈圈不停在转的话,多刷新几次就好。
(1)首先搜索“AWS”,第一个打开就是https://www.amazonaws.cn/
(2)注册一个账号,如果你之前有在Amazon买过东西,直接用那个账号也可以。
(3)填好邮箱密码之后会要求填一些个人信息,这里选择个人账户,姓名、地址和电话,可以照实填,乱填应该也没关系,因为我第一次填的特别详细结果进去以后全成了乱码。
(4)接下来要填写付款信息,只支持信用卡,银联Visa等都可以。我自己使用的某宝的虚拟aws EC2 信用卡。因为AWS采用的是基础服务免费,超出基础服务以外的部分收费。比如说一个月流量超出15G的话是会收钱的。收钱的时候是直接卡里扣不会通知你的。这一步目前没有发现绕过的方法,填好之后点“继续”。 因此使用虚拟卡放心一些。
(5)然后是身份验证部分,这里比较麻烦。国家选中国,填入手机号(推荐)或者座机号(注意区号),分机没有的话留空就好了,然后点“立刻呼叫我”。之后会出现一个页面,同时接到一个电话。电话是英文的,会让你输入PIN码。等对面说完话之后直接按就好。按完之后稍等一会挂掉,等待网页刷新。
(6)点击“继续选择支持方案”。
选择“基本(免费)”点“继续”。此时账号应该就创建好了,邮箱应该会收到几封邮件。
(1)进入aws主页,https://www.amazonaws.cn/。右上角点击“我的账户”,再点击“aws控制台”,输入邮箱和密码。登录.
(2)右上角用户名后面有一个地区选择,选择合适的地区。发给你的邮件中有通知你可以在哪些地区创建主机。如果你在选择其他地方创建,则会失败。
(3)点击左上角的服务,出现一个下拉列表,选择EC2。
如果你之前填的信用卡有问题,可能会出现一个页面,提示:确保你之前的信息提供正确等,这时你就需要点解右上角用户名选择 “我的账户”,再选择“付款方式”更该信用卡信息。
(4)点击“启动实例”
(5)找到“Ubuntu Server 16.04 LTS(HVM)…”,点击“选择”
请特别注意图标上“符合条件的免费套餐”字样。不带这个字样的都要钱。
(6)然后,仍旧选中“符合条件的免费套餐”,然后点击蓝色按钮“审核和启动”。
(7)接着直接点击“启动”。
(8)之后会弹出来一个创建密匙对的框,在第一个下拉框中,选择“创建新密匙对”。在第二个框中输入你的密匙对的名字,这里取名叫“r3”。点“下载密匙对”,会下载一个叫“r3.pem”的文件,把文件保存在一个绝对安全的地方。
这里的密匙相当于进入你的服务器的钥匙,只要有这把钥匙,任何人都可以进入你的服务器为所欲为。所以请好好保管。这个文件丢失的话,首先你自己的服务器就上不去了,其他的后果应该会很严重吧,所以请好好保管。你可以制作备份。
(9)保存好之后,点“启动实例”
至此为止,你的服务器已经创建好。
(10)点击页面中第一个绿色框里你的服务器名字,这里是“i-405c2fe5”,跳转到以下页面。这里有几个关键信息需要记下 。一个是公有DNS,另一个要往右边拉一下滚动条,公有IP,拿笔写下来。
有计算机只是的应该懂得,远程连接服务器指的就是用一个终端(什么是终端?终端就是客户端)连接服务器,然后在服务器做一些列的操作。常用的终端xshell,putty 都可以。
在Windows中,我们需要用到两个软件,一个叫“putty”,一个叫“puttygen”。putty可以把它看做是一个连接你和服务器的超时空隧道,但是它不认识aws提供的钥匙(就是你刚才下载的r3.pem),首先我们要配一把新钥匙。
(1)打开puttygen。选中菜单栏中的“密钥(k)”,选中下拉菜单“SSH-2 RSA”。
(2)点解“load”或“载入”。在打开的对话框中,选择文件类型下拉框为“All Files(.)”,然后找到前面我们保存的钥匙“r3.pem”,然后打开。
(3)确定”。然后点击“Load”下面的“Save private key”按钮。
(4)弹出的对话框点“是”,保存为一个*.ppk文件,就把它继续命名为“r3.ppk”。这就是我们的新钥匙啦,同样请好好保存。
(5)接下来关闭puttygen,打开putty。
(6)点击“session”或“会话”。右边,“Host Name(or IP address)”这里填写“ubuntu @服务器公有DNS”,例如:[email protected]。
(7)端口保持默认的“22”,“Connection type”选择“SSH”。
(8)在左边的树状目录中,展开“Connection”下的“SSH”,找到“Auth”或“认证”,点击“Auth”,在右边点击“Browse…”或者“浏览”,选中刚刚我们配的新钥匙“r3.ppk”,其它地方不动,然后回到刚才的“Session”。
(9)点击右下角的“Open”或“打开”。
(10)接下来会打开一个像windows的cmd命令行一样的黑框如下
(11)弹出对话框点击“是”
(12)出现ubuntu@ip-x-x-x-x:!$ 表示连接成功。
(1)连接上之后,首先要将我们当前登录的用户提升至root权限,输入如下代码并回车
sudo -s
你会发现光标前面的“$”变成了“#”,并且行首的“ubuntu”也变成了“root”。
(2)接下来输入如下命令并回车
apt-get update
就当作是在安装更新包吧,完成后会显示“Reading package lists… Done”。
(3)然后输入如下命令并回车
apt-get install python-pip
安装过程中可能会让你确认[Y/n],输入y然后回车就好。
(4)安装关键程序ShadowSocket,输入如下命令并回车
pip install s
出来一大段字后只要有显示的是“Successfully …”那么就表示安装成功了。
(1)主要是修改其中的一个文件。输入如下命令
vi /etc/s.json
在这个视图中有如下几个按键需要记住:
“i”:按键盘上的i键,窗口最底下显示“insert”,表示当前文件可编辑。
“Esc”:编辑完之后按Esc退出编辑模式。
“:”:半角的冒号,在非编辑模式下按键盘上的冒号(半角),可以进入输入命令的模式。
“w”:在命令模式中输入w并回车,窗口最下显示“written”,表示所做的更改已保存。
“q”:在命令模式中输入q并回车,可以退出当前的编辑器。
(2)单一用户配置(推荐)
按“i”之后输入如下代码
{
“server”:”0.0.0.0″,
“server_port”:8989,
“local_address”:”127.0.0.1″,
“local_port”:1080,
“password”:”yourpassword”,
“timeout”:300,
“method”:”aes-256-cfb”,
“fast_open”: false
}
这里需要注意几个地方:
第一 ,所有的字母,符号和数字都是在半角状态下输入的
第二,每一个标点符号都很重要,不能多也不能少
第三,每一行都是由左右两边组成,每一行冒号左边都是有引号的
第四,右边的部分需要自己手动修改的只有第三行“端口”和第六行“密码”。其它不变
第五,“port”这里是没有引号的,并且需要改成一个数字。我一般习惯用8848或者11383。但是注意这个数字是不能随便乱写的。
第六,“password”这里可以自己填写,但要注意是有引号的
第七,除了倒数第二行以外(大括号前一行),每一行都要以半角逗号作为结尾
第八,首尾行的大括号不要忘记了
输入完之后按Esc退出编辑,然后先按:wq保存。
(3)多用户配置(进阶)
如果你不介意和朋友分享的话,可以照下面的设置来添加多个用户。
但不推荐太多人共享,一个原因是免费的主机内存硬盘空间都很有限,太多用户的话可能负担比较重。另一个原因流量只有15G哎,先确定自己够用再想别人吧。并且实际上,访问次数也有限制,只不过这个限制对于单个用户来说实在用不完。
同上一步一样,键入“i”然后输入如下代码
{
“server”:”0.0.0.0″,
“local_address”:”127.0.0.1″,
“local_port”:1080,
“port_password”:{
“8989”:”password0″,
“9001”:”password1″,
“9002”:”password2″,
“9003”:”password3″,
“9004”:”password4″
},
“timeout”:300,
“method”:”aes-256-cfb”,
“fast_open”: false
}
第三行和第六行是由另一对大括号包围起来的,这中间的部分填写端口和密码。每一对端口和密码对应一个用户,后面设置的时候会用到。多一个用户就多加一行。
注意”password4”之后因为下一行就是大括号,所以这里不用加逗号
第六行的大括号之后需要加逗号
上图做了一个示范,其中第一个用户使用“11383”的端口,密码是“paral3”;第二个用户使用“8848”的端口,密码是“abcdefgh”。如果要添加更多用户,就在第五行后面回车按相同的格式添加就可以了。
完成后“:wq”保存退出。
(1)上面我们做的相当于是告诉SS要按什么样的方式去工作,下面我们做的就是让他开始工作。直接输入如下命令并回车
ssserver -c /etc/s.json -d start
完成后出来两行字,最后一个单词明明白白告诉你“started”。
(2)然后我们额外做一步设置,简单来说就是“添加开机启动项”,让以后服务器重启之后SS会自动开始工作。
首先键入如下命令并回车
vi /etc/rc.local
在第二行处加入一个空行,把我们上面让SS开始工作的命令完整地输入进去。然后“:wq”保存退出。
把当前代码窗口关掉啦。
(1)首先我们回到AWS的网站上登入。和之前一样找到EC2进入。
(2)在右边点击“实例”,在实例列表中,我们可以看到我们当前正在运行的主机。如果:在实例列表中找不到你的主机的话,先看看右上角区域是不是之前选择的区域。
(3)将这个列表的滚动条往右拉,出现安全组标签。
(4)点击我们实例的安全组“launch-wizard-1”。进入到了实例的安全组设置中。在左下部点击 “入站”标签页,并点击编辑。
(5)点击“添加规则”,添加的规则中“类型”“协议”都不需要改动。“端口范围”这里填上我们前面设置的端口,“来源”下拉框中选择“任何位置”。
(6)如果之前有添加多用户的话,需要在这里把所有分配出去的端口都分别添加上去
保存退出
有了运行在服务器上的服务端,还需要本地的客户端。客户端已经大牛写好了,放在github上的https://github.com/s。可以找对应平台下载,android可以在play商店下载。
通用设置就是:
(1)找到服务器选项
(2)编辑服务器,输入之前记录的公网ip,设置的端口,密码,然后确定
(3)启用系统代理
(4)代理方式:自动模式(只有被墙的才会走代理),全局代理(国内网站也会走代理)
重点在 3.2 配置部分的内容,如果需要修改服务器的密码、账号之类的都可以作为参考