亚马逊 AWS 搭建 shadowsocks 科学上网

之前一直是使用 AWS+ss 的方式翻墙,昨天手一抖把 EC2 实例给销毁了,最近好像干了不少这样不过脑子的事。其实AWS有一年的免费使用期限,我的早就过了,所以趁着这次事情,干脆再薅一次羊毛,重新注册一个账户,这里记一下安装过程。

要使用 AWS 的免费服务器,你需要有一张带美元账户的信用卡。我之前是使用 Young 卡注册,这次换一张 visa 卡,绑定账户会扣除 1 美元作为验证,貌似后面会返还。EC2 机器的费用每月会以预授权的形式扣除。

使用 ss 的原因也很简单,跨平台客户端多。

注册账号,绑定信用卡什么的就不说了。

创建实例

选择区域

登录控制台,选择区域,这里根据自己的情况选择,我选择的是东京,你可以根据自己的情况选择。然后启动一个实例。

image

选择系统

下一步是选择一个系统镜像,我家里使用的是 Ubuntu 18.04 ,这里也选择了 Ubuntu,也可以选择其他的,但是一定要注意选择 符合免费条件的套餐 的机器。

image

创建安全组

接下来的几步按默认来就行,安全组这个需要配置,否则无法远程登录,可以暴露一些如 22 端口和 shadowsocks 端口,为了方便,这里全部放行,通过系统内部的端口开关来控制。

image

启动实例

启动实例之前一定要创建密钥对,这个是远程登录的必要条件,并且下载保存 [pem 文件],一定保存好,丢了就无法在下载了。

image

接下来就启动实例。

image

配置弹性 IP

由于重启之后机器的公有 IP 会变动,这样在使用 SS 的时候需要修改 IP ,为了保证 IP 不变,需要绑定一个弹性 IP 。

首先分配一个新地址,然后关联上刚才创建的实例。

image

image

image

注意,单独的弹性IP是不在免费套餐内的,所以需要及时绑定一个实例,如果只是分配了弹性IP,很久没有绑定实例,很可能要付费。所以,没有关联实例的弹性 IP 一定要释放掉。
当实例关联弹性 IP 后,原来实例分配的公有 IP 被释放。

连接服务器

因为AWS强制远程登录必须要用密钥连接服务器,我的电脑是 Ubuntu ,我是可以直接使用命令行的。如果是 Windows ,官方推荐使用 PuTTY ,不过说实话,界面实在太丑了。这里推荐一款超棒跨平台的 SSH 软件 terminus 。

www.termius.com

我这里使用命令行直接登录

1
ssh -i AWS-Key-191102.pem ubuntu@ec2-52-198-88-251.ap-northeast-1.compute.amazonaws.com

安装代理服务

安装 SHADOWSOCKS

这里以 Ubuntu 为例讲解安装 SS 的过程,如我的登录命令一样,当前使用的是 ubuntu 用户,因为是使用 pem 密钥对登录的,在使用 sudo 命令时不需要输入密码。使用以下命令安装 SS 。

1
2
3
sudo apt-get update
sudo apt-get install python-pip
pip install shadowsocks

安装过程中会提示下载软件等信息提示,输入 Y 确认即可。

配置

在 /etc/ 目录下新建配置文件

1
sudo vim /etc/shadowsocks.json

复制下列的配置文件:

1
2
3
4
5
6
7
8
9
10
11
{
"server":"0.0.0.0",
"local_address":"127.0.0.1",
"local_port":1080,
"port_password":{
"8388":"your_port_password"
},
"timeout":300,
"method":"bf-cfb",
"fast_open": false
}

配置以下你的端口和密码即可, 一定确保端口已开放 ,上面配置网络组的时候已经允许了所有端口进入。

这里关于加密方式要说一下,因为加密方式对于网络延时还是有一定影响的。翻墙不稳定,可能是加密方式的特征被识别,从而被干扰,也需要更换加密方式。

1
2
rc4-md5 加解密速度快,但是加密强度不够大,容易被干扰
aes-256-cfb 加密强度大些,一样可能被干扰

无论哪一种加密方式,只要使用的人多了,就可能被重点研究,从而受到干扰,有人推荐 chacha20 或者 salsa20 ,没有试过。其实 bf-cfb 就很好,速度很快,官方的 shadowsocks-libev 及本教程预编译的翻墙固件都直接支持。

如果你没有开放端口的话,需要防火墙将端口放开出来。

1
sudo ufw allow 8388
开启服务

使用命令开启

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

查看开启,输入以下命令,如果有输出启动命令,则说明服务已开启。

1
ps axu | grep ssserver | grep -v grep

停止服务,直接 kill 进程号,或者使用如下命令

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

使用客户端连接

安装好了,配置好了,接下来就应该下载客户端开始使用了。

shadowsocks官方网站

shadowsocks 官方 Github

配置客户端

在安卓客户端上的配置如下:

image

配置上 服务器地址 端口 密码 加密方式 四个参数即可。

----------本文结束感谢您的阅读----------
xiaolong wechat
一只程序猿对世界的不完全理解