AWS 搭建SS服务器

今天看到亚马逊云服务的广告,说现在开通AWS可以免费用一年。然后我爱占小便宜心又犯了,所以绑定信用卡,开通了AWS,在这过程中,不知道为什么扣了我两笔6.59的钱,想联系客服也找不到人。。

进入AWS主页后看到有很多服务可以用,实在眼花缭乱,先一个一个来,我猜测EC2的意思就和阿里云主机是一个意思,所以就开通了一个,选择的是新加坡节点,果然开通时提示我可以免费用一年。既然这样的话,不如拿来搭一个ss服务器吧,哈哈哈~(因为其他暂时没想到做什么用,也许以后我会在这上边部署一个爬虫之类的)

在此过程中,让我下载了一个pem格式的私钥文件,用来登录。

登录命令:ssh -i "aws-for-panmax.pem" [email protected] 进来之后,我使用sudo adduser panmax创建了新的账户。

我ping了一下twitter,延迟200+,有些略失望~

更新和安装需要用到的包:

sudo apt-get update

sudo apt-get install nginx

sudo apt-get install mysql-client-5.5 mysql-server-5.5

sudo apt-get install php5 php5-fpm php5-cli php5-cgi php5-mysql php5-gd

以上这些如果没有报错,就证明安装成功了。安装mysql过程中需要创建root密码。

接下来创建数据库:

mysql -u root -p 输入安装mysql时设置的root密码。

创建shadowsocks数据库:

create database shadowsocks

然后建立一个名为ss,密码为ss的MySQL用户,因为这个用户只能本地登录,所以密码简单点也无所谓:

grant all privileges on shadowsocks.* to [email protected] identified by 'ss';

到这步,我们的数据库已经完成了,,下面我们来安装shadowsocks ss-panel supervisor,一次执行下面的命令:

sudo apt-get install python-pip git python-m2crypto

sudo pip install cymysql

git clone -b manyuser https://github.com/mengskysama/shadowsocks.git

cd shadowsocks/shadowsocks/

然后我们来修改配置文件/root/shadowsocks/shadowsocks/Config.py

1
2
3
4
5
6
7
8
9
10
11
#Config
MYSQL_HOST = 'localhost'
MYSQL_PORT = 3306
MYSQL_USER = 'ss'
MYSQL_PASS = 'ss'
MYSQL_DB = 'shadowsocks'
MANAGE_PASS = 'ss233333333'
#if you want manage in other server you should set this value to global ip
MANAGE_BIND_IP = '127.0.0.1'
#make sure this port is idle
MANAGE_PORT = 23333

然后我们还要修改这个文件/root/shadowsocks/shadowsocks/config.json

1
2
3
4
5
6
7
8
9
10
{
"server":"0.0.0.0",
"server_ipv6": "[::]",
"server_port":8388,
"local_address": "127.0.0.1",
"local_port":1080,
"password":"m",
"timeout":300,
"method":"aes-256-cfb"
}

然后我们来导入数据库。进入MySQL:

mysql -u root -p

use shadowsocks;

source ~/shadowsocks/shadowsocks/shadowsocks.sql;

exit

导入数据库之后,我们在shadowsocks目录下运行一下server.py,python server.py

没有error的话,ctrl + c结束进程,我们进行下一步,安装守护进程,这样重启以后或者程序崩了还能自己重启。

sudo apt-get install python-pip python-m2crypto supervisor

然后我们需要新建两个文件,具体如下:

sudo vim /etc/supervisor/conf.d/shadowsocks.conf

内容:

1
2
3
4
[program:shadowsocks]
command=python /home/panmax/shadowsocks/shadowsocks/server.py -c /home/panmax/shadowsocks/shadowsocks/config.json
autorestart=true
user=root

再创建一个文件:

sudo vim /etc/supervisor/conf.d/cgi.conf

内容:

1
2
3
4
[program:cgi]
command=php5-cgi -b localhost:9000
autorestart=true
user=root

然后命令:

cd shadowsocks/shadowsocks

service supervisor start

supervisorctl reload

在以下两个文件/etc/profile和 /etc/default/supervisor结尾添加如下代码(/etc/default/supervisor不存在,直接sudo vi /etc/default/supervisor 即可):

1
2
3
ulimit -n 51200
ulimit -Sn 4096
ulimit -Hn 8192

至此ss的后端服务已经搞定了,现在我们来整前端界面:

cd /usr/share/nginx/

wget -b v2 https://github.com/orvice/ss-panel/archive/master.zip

安装解压软件:

sudo apt-get install unzip

解压文件:

sudo unzip master.zip

然后重命名文件夹,

mv ss-panel-master ss

现在来修改文件夹权限,

cd /usr/share/nginx/

sudo chmod 777 * -R /usr/share/nginx/html

sudo chmod 777 * -R /usr/share/nginx/ss

sudo chown -R www-data:www-data /usr/share/nginx/html

sudo chown -R www-data:www-data /usr/share/nginx/ss

然后我们需要将ss-pane中的数据库导入我们刚刚创建的数据库中,还是进入MySQL:

mysql -u root -p

use shadowsocks;

source /usr/share/nginx/ss/sql/invite_code.sql;

然后我们需要将ss-pane中的数据库导入我们刚刚创建的数据库中,查看/usr/share/nginx/ss/sql下的内容,把里边的文件导入:

例如:

1
2
3
use shadowsocks;
source /usr/share/nginx/ss/sql/invite_code.sql;
...

然后我们来修改配置文件

1
2
cd /usr/share/nginx
mv /usr/share/nginx/ss/lib/config-simple.php /usr/share/nginx/ss/lib/config.php

修改congfig.php里边的数据库相关配置信息

到此,ss-panel前端界面也安装完毕,然后我们需要修改一下Nginx配置文件

1
2
cd /etc/nginx/sites-available/
sudo vim default

修改为

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
server {
listen 443;
server_name localhost;
server_name_in_redirect off;
root /usr/share/nginx/ss;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?q=$uri&$args;
}
location ~ \.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/share/nginx/ss$fastcgi_script_name;
}
}

然后重启一下

1
root@ubuntu-512mb-sfo1-01:~# shutdown -r now

完成。

/admin 进入管理员界面。

默认帐号:[email protected]

默认密码:1993

绑定域名:

新增CNAME,主机记录ss,记录值为AWS EC2的公有 DNS