自从阿福在老婆大人的开(wei)导(xie)下告别各种Game后,就开始了自己的Freecodecamp之旅,希望能在野生码农这条路上获得自己的洪荒之力。在这条漫长而又妙趣横生的路上,总是需要一窥墙外风景的,这也就引出了本次笔记的核心话题:如何在CentOS上搭建ss-panel(前端)和ssrm(后端)以及chacha20(加密)的梯子,帮助自己和朋友登高远望。
安装PHP7
在建设博客时阿福已经搭建好了Nginx+MariaDB,所以在此不再描述,直接再其基础上开始安装。
yum remove php* php-common //删除之前的php版本
wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
wget http://rpms.remirepo.net/enterprise/remi-release-7.rpm
rpm -Uvh remi-release-7.rpm epel-release-latest-7.noarch.rpm //安装php7响应的yum源
yum install --enablerepo=remi --enablerepo=remi-php70 php php-opcache php-devel php-mbstring php-mcrypt php-mysqlnd php-fpm php-gd //安装php7
为了更好的使用php,我们需要修改下配置:
vi /etc/php.ini 主要修改以下内容
short_open_tag = on //默认是off
mysqli.default_socket = /var/lib/mysql/mysql.sock //按自己主机情况修改
vi /etc/php-fpm.d/www.conf 主要修改以下内容
user = nginx //修改为nginx
group = nginx //修改为nginx
;listen = 127.0.0.1:9000 //添加";"
listen = /var/run/php-fpm/php-fpm.sock //新添加
listen.owner = nginx //去掉";",修改为ngixn,下同
listen.group = nginx
listen.mode = 0660
修改文件及目录权限
chown -R nginx:nginx /var/run/php-fpm/php-fpm.sock
chmod -R 777 /var/lib/php/session
service php-fpm restart //重新启动php
chkconfig php-fpm on //设置php开机启动
至此,PHP安装完毕。既然php都装了,为了方便管理,不妨把phpmyadmin也装上,操作数据库会方便不少。
安装phpMyAdmin
cd /home/wwwroot
wget https://files.phpmyadmin.net/phpMyAdmin/4.6.3/phpMyAdmin-4.6.3-all-languages.zip
unzip phpMyAdmin-4.6.3-all-languages.zip
cd phpMyAdmin-4.6.3-all-languages
cp config.sample.inc.php config.inc.php
vi config.inc.php
修改$cfg['blowfish_secret'] = '填入你喜欢的字符即可';
至此phpMyAdmin配置完毕,你可以直接访问或者nginx做个conf文件建站也行,在此不再详述,有问题可以留言交流。
安装ss-panel
参考官方文档格式写下详细步骤及阿福遇到的一些坑
Step 0 下载文件
cd /home/wwwroot
git clone https://github.com/orvice/ss-panel.git
Step 1 安装程序
cd ss-panel
curl -sS https://getcomposer.org/installer | php
php composer.phar install
Step 2 修改配置
修改程序配置
cp .env.example .env
vi .env
主要修改数据库信息
# database 数据库配置
db_driver = 'mysql'
db_host = 'localhost'
db_port = '3306'
db_database = 'shadowsocks'
db_username = 'root'
db_password = 'yourpassword'
db_charset = 'utf8'
db_collation = 'utf8_general_ci'
db_prefix = ''
完成数据库信息修改后使用命令chmod -R 777 storage修复下权限。
Step 3 导入数据库
借助phpMyAdmin导入目录下的db.sql到数据库里面。
Step 4 设置Nginx代理
使用vi /etc/nginx/conf.d/ss-panel.conf命令创建配置文件,参考以下内容修改。
server {
listen 80;
server_name example.com;
root /var/www/ss-panel/public/;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
推荐给网站加上HTTPS保护账户信息安全,在此不做深入探讨。
Step 5
首先需要创建一个管理员账户
php xcat createAdmin
重启nginx服务器
service nginx restart
至此ss-panel配置完毕,访问域名你应该可以看见网站的主页了。
安装Shadowsocks-Manyuser
Shadowsocks-manyuser有许多版本:
ssr版:
git clone -b manyuser https://github.com/breakwa11/shadowsocks.git
rm版:
git clone -b manyuser https://github.com/mengskysama/shadowsocks-rm.git
普通版:
git clone -b manyuser https://github.com/mengskysama/shadowsocks.git
阿福推荐使用SSR版本,下面开始安装配置过程,如需其他版本可自行查阅相关文档。
Step 0 下载文件
cd /root
git clone -b manyuser https://github.com/breakwa11/shadowsocks.git
Step 1 安装软件包
yum -y install python-setuptools && easy_install pip
yum install git -y
pip install cymysql
Setp 2 修改配置
使用命令vi mysql.json,参考以下内容修改数据库连接,数据库要和ss-panel保持一致
{
"host": "127.0.0.1",
"port": 3306,
"user": "我是用户名",
"password": "我是密码",
"db": "我是数据库",
"node_id": 1,
"transfer_mul": 1.0,
"ssl_enable": 0,
"ssl_ca": "",
"ssl_cert": "",
"ssl_key": ""
}
可以先修改目录下的config.json文件做测试用,在此由于已经在sspanel配置好了数据库,在此就不进行修改了。
Setp 3 安装chacha20支持
逐条输入以下指令即可安装chacha20支持了
yum install m2crypto gcc -y
wget -N --no-check-certificate https://download.libsodium.org/libsodium/releases/libsodium-1.0.11.tar.gz
tar zfvx libsodium-1.0.11.tar.gz
cd libsodium-1.0.11
./configure
make && make install
echo "include ld.so.conf.d/*.conf" > /etc/ld.so.conf
echo "/lib" >> /etc/ld.so.conf
echo "/usr/lib64" >> /etc/ld.so.conf
echo "/usr/local/lib" >> /etc/ld.so.conf
ldconfig
Step 4 试运行及守护
cd /root/shadowsocks
python server.py
至此,不出意外的话你就可以在屏幕上看到端口号和密码了。
我们使用screen来作为运行守护
使用vi /etc/rc.local编辑开机启动项目,在文件的最后条前添加以下内容
cd /root/shadowsocks
screen -dmS Shadowsocks python server.py
运行命令chmod +x /etc/rc.local赋予rc.local执行权限。
Step 5 防火墙设置
目前位置各项配置都已经结束,但你有可能还是无法翻墙。
首先查看连接:
netstat -anp | grep 你的端口
正常的话,应该是这样的:
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:62111 0.0.0.0:* LISTEN 32083/python
tcp 0 0 162.233.122.111:62111 115.233.233.140:47177 TIME_WAIT -
tcp 0 0 162.233.122.111:62111 115.233.233.140:47161 TIME_WAIT -
tcp 0 0 162.233.122.111:62111 115.233.233.140:47160 TIME_WAIT -
tcp 0 0 162.233.122.111:62111 115.233.233.140:47157 TIME_WAIT -
如果没有来自你的 IP 的 TCP 连接的话,那八成就是防火墙的锅了,执行 iptables 放行你的端口:
iptables -I INPUT -p tcp -m tcp --dport 你的端口 -j ACCEPT
iptables-save
ss-panel 新注册的用户所分配的端口均为其 id-1 的用户的端口号 + 1。比如说你把 admin 用户(uid 为1)的端口改为 12450(ss-panel 中不能改,去数据库改),那么后面注册的新用户的端口就会是 12451, 12452 这样递增的。
所以如果你要开放注册,就要这样配置你的 iptables:
# 注意是半角冒号,意为允许 12450 及以上的端口
# 也可以指定 12450:15550 这样的范围
$ iptables -I INPUT -p tcp -m tcp --dport 12450: -j ACCEPT
现在再连接 ss,你就应该可以看到 TCP 连接信息了。
理论上可以开始你的穿越之旅啦,Just enjoy it!