CentOS7 x64 kvm vps script (vultr https://www.vultr.com/) 1 禁止密码登陆 使用密钥(创建vps的时候已经导入key) http://blog.itpub.net/29626120/viewspace-1689845/ vi /etc/ssh/sshd_config PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys RSAAuthentication yes PasswordAuthentication no systemctl restart sshd.service 2 BBR(kvm) https://teddysun.com/489.html 使用方法 使用root用户登录,运行以下命令: wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh chmod +x bbr.sh ./bbr.sh 安装完成后,脚本会提示需要重启 VPS,输入 y 并回车后重启。 重启完成后,进入 VPS,验证一下是否成功安装最新内核并开启 TCP BBR,输入以下命令: uname -r 查看内核版本,含有 4.12 就表示 OK 了 sysctl net.ipv4.tcp_available_congestion_control 返回值一般为: net.ipv4.tcp_available_congestion_control = bbr cubic reno sysctl net.ipv4.tcp_congestion_control 返回值一般为: net.ipv4.tcp_congestion_control = bbr sysctl net.core.default_qdisc 返回值一般为: net.core.default_qdisc = fq lsmod | grep bbr 返回值有 tcp_bbr 模块即说明bbr已启动。 3 nginx yum -y install nginx 启动 : nginx firewall-cmd --permanent --zone=public --add-port=80/tcp firewall-cmd --reload 查看配置文件 : nginx -t vi /etc/nginx/nginx.conf 参考nginx.conf 添加/修改 daemon off; #用于使用supervisor控制 其他自行修改 nginx -s reload 关闭 : nginx -s stop 4 vnstat http://k162.space/vnstat/ yum -y install vnstat 查看网卡 : ip a 查看当前端口状态 : ss -lnp vnstat -u -i eth0 -> A new database has been created. systemctl start vnstat.service 5 ss libev版本一键包需要先安装以下包(不知道为什么 之前是不需要的) yum -y install gcc pcre-devel udns-devel libev-devel https://teddysun.com/357.html 使用方法: 使用root用户登录,运行以下命令: wget --no-check-certificate -O shadowsocks-libev.sh https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-libev.sh chmod +x shadowsocks-libev.sh ./shadowsocks-libev.sh 2>&1 | tee shadowsocks-libev.log firewall-cmd --permanent --zone=public --remove-port=8888/udp firewall-cmd --reload 启动命令 : ss-server -c /etc/shadowsocks-libev/config.json -f pid1 6 ssr https://shadowsocks.be/9.html 使用方法: 使用root用户登录,运行以下命令: wget --no-check-certificate https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocksR.sh chmod +x shadowsocksR.sh ./shadowsocksR.sh 2>&1 | tee shadowsocksR.log firewall-cmd --permanent --zone=public --remove-port=443/udp firewall-cmd --reload 7 流量控制脚本 mkdir FlowControl cd FlowControl touch stopss.log tx.txt deleteBan.py txss.py 加入定时任务中 crontab -e 0 0 1 * * python /root/FlowControl/deleteBan.py */30 * * * * python /root/FlowControl/txss.py systemctl restart crond.service 8 supervisor 使用easy_install安装的supervisor的默认sock文件 会被定义在/tmp下面 而apt-get会在/var/run下面. 鉴于apt-get会出现各种问题 这里建议使用easy_install或是pip安装 supervisor.(yum同理) http://www.linuxidc.com/Linux/2017-02/140417.htm (有问题 改用pip)wget --no-check-certificate https://bootstrap.pypa.io/ez_setup.py -O - | sudo python (有问题 改用pip)easy_install supervisor yum -y install python-pip pip install --upgrade pip pip install supervisor mkdir /etc/supervisor mkdir /etc/supervisor/config.d echo_supervisord_conf > /etc/supervisor/supervisord.conf echo > /etc/supervisor/supervisord.conf vi 并填入supervisord.conf数据 cd /etc/supervisor/config.d touch ss.conf ssr.conf vnstat.conf nginx.conf firewall-cmd --permanent --zone=public --add-port=8801/tcp firewall-cmd --reload 开机启动Supervisor服务 配置systemctl服务 进入/lib/systemd/system目录,并创建supervisor.service文件 vi /lib/systemd/system/supervisor.service [Unit] Description=supervisor After=network.target [Service] Type=forking ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf ExecStop=/usr/bin/supervisorctl $OPTIONS shutdown ExecReload=/usr/bin/supervisorctl $OPTIONS reload KillMode=process Restart=on-failure RestartSec=42s [Install] WantedBy=multi-user.target 设置开机启动 systemctl enable supervisor.service systemctl daemon-reload 修改文件权限为766 chmod 766 /lib/systemd/system/supervisor.service 配置service类型服务 vi /etc/rc.d/init.d/supervisor -> 参见supervisor_bootstart.conf 将上述脚本内容保存到/etc/rc.d/init.d/supervisor文件中,修改文件权限为755,并设置开机启动 chmod 755 /etc/rc.d/init.d/supervisor chkconfig supervisor on 注意:修改脚本中supervisor配置文件路径为你的supervisor的配置文件路径 systemctl start supervisor systemctl restart supervisor supervisorctl 9 开机启动项清除 http://www.linuxidc.com/Linux/2015-04/116648.htm ls /etc/systemd/system/multi-user.target.wants/ systemctl disable shadowsocks /sbin/chkconfig shadowsocks off 10 为nginx配置https&静态服务器 https://www.centos.bz/2017/08/centos-7-nginx-ssl-lets-encrypt/ http://blog.yuansc.com/2015/04/29/nginx%E9%85%8D%E7%BD%AE%E9%9D%99%E6%80%81%E6%96%87%E4%BB%B6%E6%9C%8D%E5%8A%A1%E5%99%A8/ 参看nginx.conf # CentOS 7 yum install epel-release cd /root/ wget https://dl.eff.org/certbot-auto --no-check-certificate chmod +x ./certbot-auto ./certbot-auto -n #只是用来安装依赖包的,也可以跳过直接到下面的生成证书的步骤,国内VPS或服务器上使用的话建议先修改为国内的pip源。 ./certbot-auto certonly --email tlk@boomtlk.com --agree-tos --no-eff-email --webroot -w /usr/share/nginx/html -d vultr.boomtlk.com 证书续期 cerrbot的续期比原来的更加简单,因为证书只有90天,所以建议使用crontab进行自动续期: crontab 里加上如下规则:0 3 */30 * * /root/certbot-auto renew 这样每30天就会执行一次所有域名的续期操作。当然时间也可以自行进行调整,建议别太频繁,因为他们都有请求次数的限制,如果需要强制更新可以在前面命令上加上 –force-renew 参数。 具体方法参考:www.smusic.cc/2094.html systemctl restart crond.service nginx -t nginx -s reload 注意检查443端口占用 11 查看防火墙规则 firewall-cmd --list-all firewall-cmd --permanent --zone=public --add-port=8899/udp firewall-cmd --reload 12 syncthing http://www.jianshu.com/p/4235cc85c32d cd ~ wget https://github.com/syncthing/syncthing/releases/download/v0.14.37/syncthing-linux-amd64-v0.14.37.tar.gz tar xzvf syncthing-linux-amd64-v0.14.37.tar.gz cd syncthing-linux-amd64-v0.14.37 cp syncthing /usr/local/bin cd ~ rm -rf syncthing* syncthing 等到出现 INFO: Detected 0 NAT devices Ctrl+C退出 vi ~/.config/syncthing/config.xml 127.0.0.1->0.0.0.0 cd /etc/supervisor/config.d/ vi syncthing.conf supervisorctl update firewall-cmd --permanent --zone=public --add-port=8384/tcp firewall-cmd --permanent --zone=public --add-port=22000/tcp firewall-cmd --permanent --zone=public --add-port=21027/udp firewall-cmd --reload 13 查看vps类型的脚本 wget https://people.redhat.com/~rjones/virt-what/files/virt-what-1.11.tar.gz tar zxf virt-what-1.11.tar.gz #解压 cd virt-what-1.11 #进入目录 ./configure #设置 make && make install #编译安装 运行 virt-what -> kvm