• centos中查看用户和用户组的命令

    在linuxt系统中要如何查看用户和用户组呢,下面一聚教程小编来给各位朋友介绍一下centos中查看用户和用户组的命令的方法,希望例子能给各位带来帮助哦。
    用户列表文件:/etc/passwd
    user
    用户组列表文件:/etc/group
    查看系统中有哪些用户:cut -d : -f 1 /etc/passwd
    查看可以登录系统的用户:cat /etc/passwd | grep -v /sbin/nologin | cut -d : -f 1
    查看用户操作:w命令(需要root权限)
    查看某一用户:w 用户名
    查看登录用户:who
    查看用户登录历史记录:last
  • 将mysql升级到最新版(5.1->5.7)

    mysql

    1. 备份数据库,升级MySQL通常不会丢失数据,但保险起见,我们需要做这一步。输入命令

    mysqldump -u xxx -h xxx -P 3306 -p --all-databases > databases.sql

    2.  停止MySQL服务,输入命令:

    service mysqld stop

    3.  卸载旧版MySQL,输入命令:

    yum remove mysql mysql-*

    4.  移除命令执行后,可再看看是否有残余的mysql,输入命令:

    yum list installed | grep mysql

    如果有,可输入命令删除:

    yum remove mysql-xxx

    5.  下载安装最新的rpm文件

    ####  下载RPM  ##########

    ——————On RHEL/Centos 7———————————————————————

     wget http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm

    ——————On RHEL/Centos 6———————————————————————

    wget http://dev.mysql.com/get/mysql57-community-release-el6-7.noarch.rpm

    ——————On RHEL/Centos 5———————————————————————

    wget http://dev.mysql.com/get/mysql57-community-release-el5-7.noarch.rpm

    ——————On Fredora 23———————————————————————

    wget http://dev.mysql.com/get/mysql57-community-release-fc23-7.noarch.rpm

    ——————On Fredora 22———————————————————————

    wget http://dev.mysql.com/get/mysql57-community-release-fc22-7.noarch.rpm

    ——————On Fredora 21———————————————————————

    wget http://dev.mysql.com/get/mysql57-community-release-fc21-7.noarch.rpm
    ####  安装RPM  ##########

    ——————On RHEL/Centos 7———————————————————————

    yum localinstall mysql57-community-release-el7-7.noarch.rpm

    ——————On RHEL/Centos 6———————————————————————

    yum localinstall mysql57-community-release-el6-7.noarch.rpm

    ——————On RHEL/Centos 5———————————————————————

    yum localinstall mysql57-community-release-el5-7.noarch.rpm

    ——————On Fredora 23———————————————————————

    dnf localinstall mysql57-community-release-fc23-7.noarch.rpm

    ——————On Fredora 22———————————————————————

    dnf localinstall mysql57-community-release-fc22-7.noarch.rpm

    ——————On Fredora 21———————————————————————

    dnf localinstall mysql57-community-release-fc21-7.noarch.rpm

    6. 安装Mysql,输入命令:

    可以使用命令来确认安装的sql版本

    yum-config-manager --disable mysql57-community
    yum-config-manager --enable mysql56-community

    正式安装

    yum install mysql-community-server

    7.  安装完成后,输入命令查看MySQL版本号:

    mysql -V

    启动MySQL,输入命令:

    service mysqld start

    这样一般不会有事,不过有次我忘记删除,直接升级,然后无法启动,找了一些资料后执行以下语句后启动成功

    • cd /var/lib/mysql/
    • rm ibdata1 ib_logfile0 ib_logfile1
    • mysqld_safe –skip-grant-tables
    • mysql_upgrade

     

  • KCPTUN一键安装脚本(实现类似finalspeed功能)

    因KCP-Server最近被干扰的严重,所以后期可能不会再更新了,好在S大为我们提供了KCP for SS支持,大家在固件中更新SS插件后即可,我用ac68u,

    已开机时间
    8 天 3 时 35 分 19 秒

    现在SS还稳定运行,YTB可以流畅的1080P。
    为了配合新的SS插件,制作了“KCPTUN for XX一键安装脚本”,但是写脚本写的想吐,实在是不想再一步步写教程了,放几张图片吧,安装的时候大家注意每一步的提示,应该都可以顺利安装的,不明白的地方可以留言。着急忙荒的发布脚本,果然存在无数个坑,大家跟帖留言,我尽量修复。

    首先还是感谢,感谢 秋水逸冰 ,因为代码中很多都是借鉴了秋水大大的脚本,在此非常感谢大神的付出。

    下面开始简单的教程:
    已测试过的平台(docker下测试,很折磨人):

    CentOS 6 32/64bit
    CentOS 7 32/64bit
    Debian 6 32/64bit
    Debian 7 32/64bit
    Debian 8 32/64bit
    Ubuntu 14 32/64bit

    一、安装命令,这个命令都是在你的服务器上运行的
    安装时间较长,网络不稳定的建议使用screen或者tmux进行安装,这两个东东请自行百度使用方法吧:

    wget --no-check-certificate https://raw.githubusercontent.com/clangcn/onekey-install-shell/master/kcptun_for_ss_ssr/kcptun_for_ss_ssr-install.sh -O ./kcptun_for_ss_ssr-install.sh
    chmod 700 ./kcptun_for_ss_ssr-install.sh
    ./kcptun_for_ss_ssr-install.sh install
    二、安装步骤
    1、运行脚本时会自动检测脚本是否有更新,如有更新会自动更新,然后需要再次运行脚本继续。

    2、如果脚本是最新的,那么就会然你选择安装的内容:

    在这个过程中会下载软件和安装系统一些必备的组件,过程有可能会长,请耐心等待。

    三、卸载命令

    ./kcptun_for_ss_ssr-install.sh uninstall

     

    四、更新命令

    ./kcptun_for_ss_ssr-install.sh update

     

    好了, 先写到这,补图完毕。

  • Shadowsocks Python版一键安装脚本

    ishadowsocks

    本脚本适用环境:
    系统支持:CentOS 6,7,Debian,Ubuntu
    内存要求:≥128M
    日期:2016 年 08 月 18 日

    关于本脚本:
    一键安装 Python 版 Shadowsocks 的最新版,同时安装了 Python 包管理工具 pip。
    友情提示:如果你有问题,请先参考这篇《Shadowsocks Troubleshooting》后再问。

    默认配置:
    服务器端口:自己设定(如不设定,默认为8989)
    客户端端口:1080
    密码:自己设定(如不设定,默认为teddysun.com)
    备注:脚本默认创建单用户配置文件,如需配置多用户,安装完毕后参照下面的教程 sample 手动修改配置文件后重启即可。

    客户端下载:
    https://github.com/shadowsocks/shadowsocks-windows/releases

    使用方法:
    使用root用户登录,运行以下命令:

    wget --no-check-certificate https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks.sh
    chmod +x shadowsocks.sh
    ./shadowsocks.sh 2>&1 | tee shadowsocks.log

    安装完成后,脚本提示如下:

    Congratulations, shadowsocks install completed!
    Your Server IP:your_server_ip
    Your Server Port:your_server_port
    Your Password:your_password
    Your Local IP:127.0.0.1
    Your Local Port:1080
    Your Encryption Method:aes-256-cfb
    
    Welcome to visit:https://teddysun.com/342.html
    Enjoy it!

    卸载方法:
    使用root用户登录,运行以下命令:

    ./shadowsocks.sh uninstall

    单用户配置文件 Sample(2015 年 08 月 28 日修正):
    配置文件路径:/etc/shadowsocks.json

    {
        "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
    }

    多用户多端口配置文件 Sample(2015 年 08 月 28 日修正):
    配置文件路径:/etc/shadowsocks.json

    {
        "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
    }

    使用命令(2015 年 08 月 28 日修正):
    启动:/etc/init.d/shadowsocks start
    停止:/etc/init.d/shadowsocks stop
    重启:/etc/init.d/shadowsocks restart
    状态:/etc/init.d/shadowsocks status

    更多版本 Shadowsocks 服务端一键安装脚本:
    ShadowsocksR 版一键安装脚本(CentOS,Debian,Ubuntu)
    CentOS 下 Shadowsocks-libev 一键安装脚本
    Debian 下 Shadowsocks-libev 一键安装脚本
    Shadowsocks-go 一键安装脚本(CentOS,Debian,Ubuntu)

     

  • Upgrade VestaCP to PHP 7 (CentOS)

    PHP7性能大幅提升,为了更好的运行wordpress,我的网站也升级到了7,下面是当时的参考文档,步骤很简单。

    php7

    How to install PHP 7 (stable) on VestaCP server running on CentOS 7 with some test results of how VestaCP + PHP 7 can perform together serving WordPress site. For your information, PHP 7 has just been released and many rumors say it can perform multiple times faster than previous stable PHP version and also as fast as HHVM. This is the most anticipated PHP version ever bringing many new features, enhancements, and improved performance.

    Until the time I write this post, VestaCP is by default using PHP 5.4.x installed and running with web server (either Apache or Nginx). I’m not  really sure why its developer still pack PHP 5.4 within VestaCP installation but as far as I know PHP 5.4 is the most popular stable version after 5.3 that many scripts, web apps and CMS are supported (can still run well with the PHP environment).

    As per PHP 7, there are still not enough information of how many CMS / scripts except WordPress and OwnCloud those are already PHP 7 compatible. So if you are planning to build a WordPress site with VestaCP, you can try this tutorial and feel the awesomeness of PHP 7. But I must also remind you that since VestaCP doesn’t include PHP 7 by default yet, so I recommend you to not using VestaCP + PHP 7 on production websites unless you are a sysadmin Ninja. However, with default Vesta setup (Nginx as proxy + Apache + PHP), this method still can work properly so it is safe if you’ll just want to host personal blog or few blogs inside one server.

    上面的一堆话主要是介绍php7多牛逼,爱看看不看跳过,一点问题都没有

    安装前需要一些什么

    1. 需要SSH权限,以及SSH客户端 or Putty and basic knowledge about how to use it.
    2. 基本的指令会使用 Basic knowledge about common Unix command to SSH to your server.
    3. 一台VPS最好有1G以上的内存,2G的更好.
    4. 确信你的VestaCP 服务器已安装并运行在centos系统下。.
    5. 有30分钟空余时间(完全不需要,10分钟就搞定了)。
    6. 一杯饮料(哈哈).

    Confused on choosing which VPS provider to install VestaCP? Read my recommended VPS providers or top low end cloud server providers. Quick recommendation: Digital Ocean, Atlantic.net or Ramnode.

    如何安装  How to Install

    p.s: Please click any image you wish to see its larger version.

    Step 1 – Install VestaCP on your vps, cloud or dedicated server. You can follow the step by step tutorial posted previously. Despite this tutorial done on CentOS 7, but the steps are pretty much similar.  安装VestaCp到你的服务器上,这里尝试的是centos7,我的服务器是centos6的,也没问题。

    Step 2 – Once installed, still in Putty, you can do initial check of what PHP version is installed: 安装完毕后查看一下安装的版本,如果是7就别升了,哈哈。

     # php -V
    PHP 5.4.45 (cli) (built: Jul 22 2016 19:13:31)
    Copyright (c) 1997-2014 The PHP Group
    Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies

    it should look like this (PHP 5.4.45):

    Step 3 – Now we need to install remi repo or at least make it updated. PHP 7 is considered new and is not available via Yum at base CentOS repo.现在需要下载最新版的remi 与epel。

    我的版本是centos6,所以指令是:

     

    wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
    wget http://rpms.remirepo.net/enterprise/remi-release-6.rpm
    rpm -Uvh remi-release-6.rpm epel-release-latest-6.noarch.rpm

     

    centos7的指令如下:

    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

     

    cnetos5我就不说了,应该现在用的人越来越少了。
     下载文件的地址原文链接: How to enable Remi repository on CentOS 7, 6 and 5 还在使用5的可以去看。

    Step 4 – Now issue this command to update and enable it 现在update一下系统

    yum --enablerepo=remi update remi-release

    Step 5 – Now delete current PHP installation but make sure you stopped Apache first: 停止httpd以及删除原来的php版本

    备份一下依赖于php的roundmail,虽然phpMyAdmin没有影响,我还是备份了

    cd /etc/httpd/conf.d/
    mv roundcubemail.conf roundcubemail.conf.bak
    mv phpMyAdmin.conf phpMyAdmin.conf.bak
    cd /etc/
    mv phpMyAdmin/ phpMyAdminbak/
    mv roundcubemail/ roundcubemailbak/
    cd /usr/share/
    mv phpMyAdmin/ phpMyAdminbak/
    mv roundcubemail/ roundcubemailbak/
    ll
    service httpd stop
    yum -y remove php

    Step 6 – Finally, issue this command to install PHP 7.0 with all necessary modules: 现在开始安装php7.o,貌似命令有点长啊

    yum --enablerepo=remi-php70 install php70-php php70-php-pear php70-php-bcmath php70-php-pecl-jsond-devel php70-php-mysqlnd php70-php-gd php70-php-common php70-php-fpm php70-php-intl php70-php-cli php70-php php70-php-xml php70-php-opcache php70-php-pecl-apcu php70-php-pecl-jsond php70-php-pdo php70-php-gmp php70-php-process php70-php-pecl-imagick php70-php-devel php70-php-mbstring php70-php-pecl-zip php70-php-snmp -y

    安装完之后恢复一下备份文件

    cd /etc/httpd/conf.d/
    mv roundcubemail.conf.bak roundcubemail.conf
    mv phpMyAdmin.conf.bak phpMyAdmin.conf
    cd /etc/
    mv  phpMyAdminbak/ phpMyAdmin/
    mv  roundcubemailbak/ roundcubemail/
    cd /usr/share/
    mv  phpMyAdminbak/ phpMyAdmin/
    mv  roundcubemailbak/ roundcubemail/
    ll
    

     


     Step 7 – Next, at this point, you can simply stop the old PHP-fpm service and start the newly installed PHP70-fpm 将php-fpm改为php70-php-fpm
    service php-fpm stop
    service php70-php-fpm start
    原文是这样写的,但是貌似我的php卸载后php-fpm也找不到了
    # service php-fpm stop
    php-fpm: unrecognized service

    Step 8 – Finally you can delete the old php symblink and create a new one: 更改php的软连接

    rm /usr/bin/php
    ln -s /usr/bin/php70 /usr/bin/php
         Also do not forget to restart Apache service / httpd: 重新启动httpd
    service httpd restart
     Step 9 – Now you can check which version of PHP Vestacp is running:再次查看php版本
    php -v

    # php -v
    PHP 7.0.11 (cli) (built: Sep 14 2016 07:27:30) ( NTS )
    Copyright (c) 1997-2016 The PHP Group
    Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
    with Zend OPcache v7.0.11, Copyright (c) 1999-2016, by Zend Technologies

    大功告成!

    ps:原文中未加入zip模块,我的owncloud安装后报错,所以需要增加php70-php-pecl-zip安装,已加在安装文件指令中了。

  • Transmission一键安装包 以及CentOS环境安装Transmission 支持SSL的方法

    新增一键包下载

    cd /root
    wget --no-check-certificate https://raw.githubusercontent.com/kevin-cn/rotorrent-install-for-centos7/master/tr_install.sh
    chmod +x tr_install.sh
    ./tr_install.sh
    

    部分centos7环境会在 service transmission-deamon start 后卡死,必须按ctrl+C才能退出,导致后续防火墙设置以及配置没有生效,针对这种情况,请执行centos7补丁解决

    wget https://raw.githubusercontent.com/kevin-cn/rotorrent-install-for-centos7/master/tr_centos7_patch.sh
    chmod +x tr_centos7_patch.sh
    ./tr_centos7_patch.sh

     

    CentOS 6 64bit安装步骤(本文转自老左博客,最后加了部分支持SSL内容,毕竟你下载什么也不希望网络上其他人看到吧)

    第一、安装Transmission

    cd /etc/yum.repos.d/

    wget http://geekery.altervista.org/geekery-el6-x86_64.repo

    yum install transmission transmission-daemon


    不同的centos版本加载源不同,如果是以下Centos请使用对应的REPO源

    wget http://geekery.altervista.org/geekery-el5-i386.repo  (CentOS 5 x86

    wget http://geekery.altervista.org/geekery-el5-x86_64.repo (CentOS 5 x86_64

    wget http://geekery.altervista.org/geekery-el6-i686.repo  (CentOS 6 x86

    登入SSH,然后采用yum repo的方式安装,这样速度比较快一些。安装过程中看到Y/n,输入Y回车。

    2016-09-27_135605

    这里我们看到是否导入GPG Key,直接输入y回车就可以。

    第二、Transmission启动服务

    service transmission-daemon start

    第三、Transmission防火墙配置

    1、IPV4防火墙规则配置

    service iptables stop
    vi /etc/sysconfig/iptables

    这里我们iptables进行配置防火墙规则。

    -A INPUT -p tcp -m tcp –dport 9091 -j ACCEPT
    -A INPUT -p tcp -m tcp –dport 51413 -j ACCEPT
    -A INPUT -p tcp -m tcp –dport 49153:65534 -j ACCEPT

    添加到规则中保存且退出。

    2、IPV6防火墙规则配置

    service ip6tables stop
    vi /etc/sysconfig/ip6tables

    同样的添加规则。

    -A INPUT -p tcp -m tcp –dport 9091 -j ACCEPT
    -A INPUT -p tcp -m tcp –dport 51413 -j ACCEPT
    -A INPUT -p tcp -m tcp –dport 49153:65534 -j ACCEPT

    然后同样保存退出,重启防火墙就可以。

    第四、配置Transmission设置

    1、关闭进程

    service transmission-daemon stop
    killall transmission-daemon

    我们在配置Transmission之前,需要关闭,这样才有效。

    2、配置Transmission

    /var/lib/transmission/settings.json

    找到settings.json文件,然后进行修改配置。如果不修改,我们只能本地打开,不可以用我们服务器IP地址打开。

    “rpc-authentication-required”: true,
    “rpc-enabled”: true,
    “rpc-password”: “管理密码”,
    “rpc-username”: “管理用户”,
    “rpc-whitelist-enabled”: false,

    关于Transmission配置文件的设置网上内容较多,比如路径设置,最大连接数等,这些暂时默认,后面搜索后慢慢研究,这里我们主要是要通过服务器IP登入可以访问,不修改只能本地访问。上面几个参数我们需要找到设置,比如用户名和密码要设置。

    请注意,这里原先的地方没写清楚,如果启动的时候

    第五、启动transmission服务

    service transmission-daemon start

    保存配置文件之后,我们再启动transmission。

    第六、登录transmission客户端

    http://服务器IP地址:9091

    登入的时候需要输入我们上面设置的用户名和密码。

    这样我们就算安装完毕transmission,可以通过WEB客户端打开,这样就可以在线下载。

    支持SSL

    本身看来RPC上是没有支持SSL的方法的,不过目前主流的建站平台都支持nginx,LNMP,VESTACP等等都是自带Nginx,所以我们利用nginx的反向代理功能就可以支持SSL了

    首先是nginx打开了ssl服务端口443,然后就可以在nginx的配置中增加一下代理,比如你的网站叫 sadsu.com,那么就新增一个监听用二级域名 bt.sadsu.com

    server {
    listen xxx.xxx.xxx.xxx:443;
    server_name bt.sadsu.com;
    ssl on;
    ssl_certificate /etc/letsencrypt/live/bt.sadsu.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/bt.sadsu.com/privkey.pem;
    ssl_dhparam /etc/nginx/ssl/dhparam.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/bt.sadsu.com/root_ca_cert_plus_intermediates;
    error_log /var/log/httpd/domains/sadsu.com.error.log error;

    location / {
    proxy_pass http://xxx.xxx.xxx.xxx:9091;
    location ~* ^.+\.(jpg|jpeg|gif|png|ico|svg|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|odt|ods|odp|odf|tar|wav|bmp|rtf|js|mp3|avi|mpeg|flv|html|htm)$ {
    access_log /var/log/httpd/domains/sadsu.com.log combined;
    access_log /var/log/httpd/domains/sadsu.com.bytes bytes;
    expires max;
    try_files $uri @fallback;
    }
    }

    location /error/ {
    alias /home/admin/web/sadsu.com/document_errors/;
    }

    location @fallback {
    proxy_pass http://xxx.xxx.xxx.xxx:9091;
    }

    location ~ /\.ht {return 404;}
    location ~ /\.svn/ {return 404;}
    location ~ /\.git/ {return 404;}
    location ~ /\.hg/ {return 404;}
    location ~ /\.bzr/ {return 404;}

    include /home/admin/conf/web/snginx.sadsu.com.conf*;
    }

    请将上面的配置中的你的vps主机ip地址替换掉上面配置中xxx.xxx.xxx.xxx

    将你的bt下载域名替换掉sadsu.com,

    重启nginx就可以了

    service nginx restart

    2016-09-27_142533

    具体域名与下载文件名就匿了{邪恶}。

    后续:

    既然已经代理转发,那么可以编辑iptables表将9091只限本机端口打开,这样除非知道你的下载域名,不然没机会尝试破解你的密码啊,是不是感觉安全很多??

    -A INPUT -s 127.0.0.1/32 -p tcp -m tcp –dport 9091 -j ACCEPT

     

    再续:

    今天看了下老左的论坛发现了transmission的美化教程,这个我使用了下感觉很好,补充一下

    利用transmission-web-control开源工具美化默认的WEB面板,而且功能更加强大一些。

    工具地址:https://github.com/ronggang/transmission-web-control

    这里我们在安装了第一步的transmission之后,然后再进行安装美化版的WEB客户端。

    wget https://github.com/ronggang/transmission-web-control/raw/master/release/tr-control-easy-install.sh
    sh tr-control-easy-install.sh

    直接执行这段脚本安装就可以。

     

  • Speedtest-cli工具使用

     

    window平台上可以用网页speedtest进行速度测试,

    speedtest

    我们Linux就是文本显示了,虽然不如图形直观,可是该测试的都没少。

    安装speedtest-cli

    1)pip install

    打开一个终端,输入下面的命令:

    yum install python-pip -y  ##已安装好pip的不用执行这一步
    pip install --upgrade pip  ##已更新好pip的不用执行这一步 
    pip install speedtest_cli

    2)github安装

    想要直接从github安装,你得这么做:

    git clone https://github.com/sivel/speedtest-cli.git
    python speedtest-cli/setup.py install

    然后就可以使用了

    speedtest-cli -help

    Usage: speedtest-cli [options]

    Command line interface for testing internet bandwidth using speedtest.net.
    ————————————————————————–
    https://github.com/sivel/speedtest-cli

    Options:
    -h, –help show this help message and exit
    –bytes Display values in bytes instead of bits. Does not affect
    the image generated by –share
    –share Generate and provide a URL to the speedtest.net share
    results image
    –simple Suppress verbose output, only show basic information
    –list Display a list of speedtest.net servers sorted by
    distance
    –server=SERVER Specify a server ID to test against
    –mini=MINI URL of the Speedtest Mini server
    –source=SOURCE Source IP address to bind to
    –timeout=TIMEOUT HTTP timeout in seconds. Default 10
    –secure Use HTTPS instead of HTTP when communicating with
    speedtest.net operated servers
    –version Show the version number and exit

    一般使用方法是先查看下list,一般选择你自己的城市,或者邻近的,但是最好是同一种网络(电信,移动,或者联通)

    speedtest-cli --list|grep Shanghai

    5083) Shanghai Branch, China Unicom (Shanghai, China) [11840.90 km]
    9633) China Broadband Communications (Shanghai, China) [11840.90 km]

    比如我使用的是上海电信,但是没有列表里只有联通的和中宽网信上海节点,那就换下国家看看

    speedtest-cli --list|grep China

    4525) Heilongjiang-CMCC (Harbin, China) [10250.43 km]
    9484) China Unicom (Changchun, China) [10480.11 km]
    5017) China Unicom,Liaoning Branch (Shenyang, China) [10743.69 km]
    4713) China Mobile Group Beijing Co.Ltd (Beijing, China) [11239.54 km]
    6302) Beijing Fiber City (Beijing, China) [11239.54 km]
    5505) Beijing Broadband Network (Beijing, China) [11239.54 km]
    5145) Beijing Unicom (Beijing, China) [11239.54 km]
    4751) Beijing Telecom (Beijing, China) [11239.54 km]
    6714) Tianjin Telecom (Tianjin, China) [11283.75 km]
    5465) China Unicom (Hohhot, China) [11325.98 km]
    8554) Xinjiang Wireless Communication Co., Ltd. (Changji, China) [11465.75 km]
    3784) China Mobile Group Xinjiang Co.,Ltd. (Urumqi, China) [11488.11 km]
    6144) xjunicom (Urumqi, China) [11488.11 km]
    5039) China unicom Jinan branch (Jinan, China) [11532.73 km]
    5083) Shanghai Branch, China Unicom (Shanghai, China) [11840.90 km]
    9633) China Broadband Communications (Shanghai, China) [11840.90 km]
    4595) China Telecom HeNan Branch (Zhengzhou, China) [11859.31 km]
    5131) China unicom henan branch (Zhengzhou, China) [11859.31 km]
    6810) HENAN UNICOM (Zhengzhou, China) [11859.31 km]
    5122) China Mobile Group Jiangsu Co.,Ltd. (Wuxi, China) [11867.62 km]
    3927) China Mobile Jiangsu Co., Ltd. (Suzhou, China) [11876.04 km]
    5446) CHINA UNICOM JIANGSU COMPANY (Nanjing, China) [11897.16 km]
    6245) ningbo unicom (Ningbo, China) [11962.56 km]
    5509) Chinaunicom Ningxia branch (Ningxia, China) [11964.84 km]
    5724) ChinaUnicom (Hefei, China) [11985.19 km]
    4377) China Mobile Group Anhui Co.,Ltd (Hefei, China) [11985.19 km]
    7509) China Telecom ZheJiang Branch (Hangzhou, China) [11998.48 km]
    5300) Hangzhou , Zhejiang Unicom (Hangzhou, China) [11998.48 km]
    8173) 5UFVPN (Hangzhou, China) [11998.48 km]
    5992) Qinghai China Unicom (Xining, China) [12058.81 km]
    3973) China Telecom (Lanzhou, China) [12068.37 km]
    4690) China Unicom Lanzhou Branch Co.Ltd (Lanzhou, China) [12068.37 km]
    5292) China Mobile Group Shaanxi Company Limited (Xi’an, China) [12090.60 km]
    4863) Xi’an branch,Chinaunicom (Xi’an, China) [12090.60 km]
    6435) china Telecom hubei branch (Xiangyang, China) [12195.85 km]
    5485) China Unicom,Hubei Branch (Wuhan, China) [12247.03 km]
    6345) ChinaTelecom.JiangXi (Nanchang, China) [12359.57 km]
    7643) China Telecom.JiangXi.Network Center (Nanchang, China) [12359.57 km]
    6473) jxtelecom (Nanchang, China) [12359.57 km]
    5097) Chinaunicom.jx (Nanchang, China) [12359.57 km]
    7230) China Unicom.JiangXi Co.,Ltd (Nanchang, China) [12359.57 km]
    4884) China Unicom FuJian (Fuzhou, China) [12436.24 km]
    6132) ChinaTelecom.Hunan (Changsha, China) [12541.17 km]
    4870) Changsha, Hunan Unicom (Changsha, China) [12541.17 km]
    2461) China Unicom (Chengdu, China) [12626.83 km]
    4624) ChinaTelecom (Chengdu, China) [12626.90 km]
    5506) china unicom (Xiamen, China) [12654.04 km]
    6592) China Telecom Chongqing (Chongqing, China) [12658.47 km]
    5726) China Unicom Chong Qing Branch (Chongqing, China) [12658.47 km]
    5530) CCN (Chongqing, China) [12658.47 km]
    7404) GuiYang Mobile Group chor (Guiyang, China) [12956.61 km]
    5750) Lhasaunicom (Lhasa, China) [13023.02 km]
    9151) ChinaTelecom-GZ (Guangzhou, China) [13026.52 km]
    3891) Unicom-GZ (Guangzhou, China) [13026.52 km]
    5081) ShenZhen Telecom (Shenzhen, China) [13042.47 km]
    8170) Atombase Global Datamation (Hong Kong, China) [13061.74 km]
    6852) FPT Telecom (Chai Wan, China) [13062.64 km]
    1536) STC (Hong Kong, China) [13065.92 km]
    2993) Website Solution Limited (Hong Kong, China) [13068.27 km]
    8648) China Broadband Communications (Hong Kong, China) [13068.27 km]
    6168) China Telecom (Kunming, China) [13259.14 km]
    5674) GX-Unicom (Nanning, China) [13282.18 km]

     

    最新补充,目前有上海电信节点了(3633),查询指令是

    speedtest-cli --server=3633

    用的是洛杉矶的测试机进行的测试,显示结果是:

    [root@localhost ~]# speedtest-cli --server=3633
    Retrieving speedtest.net configuration...
    Testing from QuadraNet (192.161.xxx.xxx)...
    Retrieving speedtest.net server list...
    Selecting best server based on ping...
    Hosted by China Telecom (Shanghai) [10433.67 km]: 567.346 ms
    Testing download speed................................................................................
    Download: 13.81 Mbit/s
    Testing upload speed....................................................................................................
    Upload: 21.74 Mbit/s
    

     

     

     

  • Let’s Encrypt 给网站加 HTTPS 完全指南(转载后改为部分内容改为centos 6环境)

    原文链接 https://ksmx.me/letsencrypt-ssl-https/?utm_source=v2ex&utm_medium=forum&utm_campaign=20160529  

    使用 HTTPS 前的一些疑惑

    现在是 2016 年,使用 HTTPS 已经不像几年前是一件昂贵的事情。当然我也是自己了解了一圈才消除了自己的疑惑,主要是:

    1. 我的网站(一个简单的博客)可能没必要使用 HTTPS
    2. HTTPS 会不会让网站速度变慢?
    3. HTTPS 需要花钱吧?证书好像不便宜
    4. 配置和维护 HTTPS 代价很高

    我简单总结:

    1. 每个网站都应该用 HTTPS,就算是全静态站点也同样如此,运营商劫持严重干扰访问者的体验
    2. 有几项技术可以提高 HTTPS 的性能,包括 Strict Transport SecurityTLS False StartHTTP/2 ,这些技术让 HTTPS 速度不慢,某些情况下会甚至更快
    3. HTTPS 针对个人单个(或者几个)域名的使用来说,已经是免费的
    4. 配置和维护 HTTPS 异常简单,Let’s Encrypt 这个项目通过自动化把事情简单化了

    有哪些靠谱的免费 HTTPS 证书提供商?

    选择证书提供商有3个主要考量:1. 浏览器和操作系统支持程度 2. 证书类型 3. 维护成本

    1. 浏览器和操作系统支持程度

    基本你能查到的热门证书提供商,支持程度都不会太差。例如 Let’s Encrypt 的支持可以访问:Which browsers and operating systems support Let’s Encrypt

    可以看到,Android 2.3.6 以上,Firefox 2.0 以上,Windows Vista 以上,iOS 3.1 以上,Google Chrome全平台都是支持的。这一点就不用太担心了,看你你的网站受众情况来决定。对于我来说,我完全不在乎 Windows XP 的 IE 用户。

    2. 证书类型

    HTTPS 证书分为3类, 1. DV 域名验证证书 2. OV 组织机构验证证书 3. EV 增强的组织机构验证证书。每类证书在审核和验证方面要求严格程度不同,浏览器会在地址栏给予不同证书不一样的展现。

    一般个人使用DV证书完全够了,浏览器表现为地址栏前会有绿色的小锁。下面聊到的免费证书都是 DV 域名验证证书。

    3. 维护成本

    我调研不多,使用过 StartSSL,现在用 Let’s EncryptStartSSL 的免费证书有效期是1年,1年后需要手动更换。配置过程还挺麻烦的。

    更推荐 Let’s Encrypt,虽然有效期只有3个月,但可以用 certbot 自动续期,完全不受影响。而且 Let’s Encrypt 因为有了 certbot 这样的自动化工具,配置管理起来非常容易。

    生成 Let’s Encrypt 证书

    Let’s Encrypt 证书生成不需要手动进行,官方推荐 certbot 这套自动化工具来实现。3步轻松搞定:

    1. 下载安装 certbot (Let’s Encrypt项目的自动化工具)
    2. 创建配置文件
    3. 执行证书自动化生成命令

    下面的教程运行在 Arch Linux 上,其他操作系统也大同小异。你可以在 certbot 网站上,选择你的 Web Server 和 操作系统,就能看到对应的安装和配置教程。

    1. 下载安装 certbot

    在 Centos 6.5 上,安装很简单:

    sudo yum install epel-release
    wget https://dl.eff.org/certbot-auto
    chmod a+x certbot-auto
    $ ./certbot-auto

     

    2. 执行证书自动化生成命令

    一切就绪,我们现在可以运行 certbot 了。(注意:certbot 其实是一个 Python 脚本,在不同平台上的命令会不同,例如在 Arch Linux 上 certbot 的命令是 letsencrypt)。

    ./certbot-auto
    ## 片刻之后,看到下面内容就是成功了 
    IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at /etc/letsencrypt/live/example.com/fullchain.pem. 

    如果运行顺利,所有服务器所需要的证书就已经生成好了。他们被放在了 /etc/letsencrypt/live/example.com/ 下:

    $ ls /etc/letsencrypt/live/example.com/
    cert.pem #server cert only  
    privkey.pem #private key  
    chain.pem #intermediates  
    fullchain.pem #server cert + intermediates  
    

    3. 万一自动执行失败或者需要添加额外二级域名,可以手工运行

    ./certbot-auto certonly --webroot -w /var/www/example -d example.com -d www.example.com -w /var/www/thing -d thing.is -d m.thing.is

    如果这里的 参数 -w  指定网站物理绝对路径,-d 参数是你要在SSL里面认证的的域名。

    配置 Nginx 加入证书

    到这里已经成功一大半了,只需要配置 Nginx 支持刚刚生成的证书。而且这个配置有最佳实践可以参考,访问:Mozilla SSL Configuration Generator,这是 Mozilla 搞得一个 HTTPS 配置文件自动生成器,支持 Apache,Nginx 等多种服务器。按照这个配置文件,选择 Intermediate 的兼容性。这里生成的配置文件是业界最佳实践和结果,让 Nginx 打开了各种增加安全性和性能的参数。

    默认配置文件是这样的:

    server {  
        listen 80 default_server;
        listen [::]:80 default_server;
    
        # Redirect all HTTP requests to HTTPS with a 301 Moved Permanently response.
        return 301 https://$host$request_uri;
    }
    
    server {  
        listen 443 ssl http2;
        listen [::]:443 ssl http2;
    
        # certs sent to the client in SERVER HELLO are concatenated in ssl_certificate
        ssl_certificate /path/to/signed_cert_plus_intermediates;
        ssl_certificate_key /path/to/private_key;
        ssl_session_timeout 1d;
        ssl_session_cache shared:SSL:50m;
        ssl_session_tickets off;
    
        # Diffie-Hellman parameter for DHE ciphersuites, recommended 2048 bits
        ssl_dhparam /path/to/dhparam.pem;
    
        # intermediate configuration. tweak to your needs.
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
        ssl_prefer_server_ciphers on;
    
        # HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months)
        add_header Strict-Transport-Security max-age=15768000;
    
        # OCSP Stapling ---
        # fetch OCSP records from URL in ssl_certificate and cache them
        ssl_stapling on;
        ssl_stapling_verify on;
    
        ## verify chain of trust of OCSP response using Root CA and Intermediate certs
        ssl_trusted_certificate /path/to/root_CA_cert_plus_intermediates;
    
        resolver <IP DNS resolver>;
    
        ....
    }
    

    请根据自己的服务配置修改和添加内容,重点只需要关注6行:

    server {  
        listen 443 ssl http2;
        ....
        ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
        ssl_dhparam /etc/nginx/ssl/dhparam.pem;
        add_header Strict-Transport-Security "max-age=15768000;includeSubdomains;preload";
        ssl_trusted_certificate /etc/letsencrypt/live/example.com/root_ca_cert_plus_intermediates;
    
        resolver <IP DNS resolver>;
        ....
    }

    这6行中,部分文件还不存在,逐个说明。

    首先是第一行 listen 443 ssl http2;  作用是启用 Nginx 的 ngxhttpv2_module 模块 支持 HTTP2,Nginx 版本需要高于 1.9.5,且编译时需要设置 --with-http_v2_module 。Arch Linux 的 Nginx 安装包中已经编译了这个模块,可以直接使用。如果你的 Linux 发行版本中的 Nginx 并不支持这个模块,可以自行 Google 如何加上。

    ssl_certificatessl_certificate_key ,分别对应 fullchain.pemprivkey.pem,这2个文件是之前就生成好的证书和密钥。

    ssl_dhparam 通过下面命令生成:

    $ sudo mkdir /etc/nginx/ssl
    $ sudo openssl dhparam -out /etc/nginx/ssl/dhparam.pem 2048
    

    (可选)ssl_trusted_certificate 需要下载 Let’s EncryptRoot Certificates,不过根据 Nginx 官方文档 所说,ssl_certificate 如果已经包含了 intermediates 就不再需要提供 ssltrustedcertificate 了。这一步可以省略:

    $ cd /etc/letsencrypt/live/example.com
    $ sudo wget https://letsencrypt.org/certs/isrgrootx1.pem
    $ sudo mv isrgrootx1.pem root.pem
    $ sudo cat root.pem chain.pem > root_ca_cert_plus_intermediates
    

    resolver 的作用是 “resolve names of upstream servers into addresses”, 在這個配置中,resolver 是用來解析 OCSP 服務器的域名的,建议填写你的 VPS 提供商的 DNS 服务器,例如我的 VPN 在 Linode,DNS服务器填写:

    resolver 106.187.90.5 106.187.93.5;

    Nginx 配置完成后,重启后,用浏览器测试是否一切正常。

    $ sudo systemctl restart nginx
    

    这时候你的站点应该默认强制使用了 HTTPS,并且浏览器地址栏左边会有绿色的小锁:

    自动化定期更新证书

    Let’s Encrypt 证书有效期是3个月,我们可以通过 certbot 来自动化续期。

    在 Centos 6.5 上,我们通过 corntab 来自动执行证书续期任务。

    $ cp ./certbot-auto /usr/bin
    $ vim /etc/corntab 

    添加以下内容进行保证每日自动更新:

    10 1 * * * certbot-auto renew --quiet
    15 1 * * * service nginx restart
    

    在其他 Linux 发行版本中,可以使用 systemd 来设定定时任务,原文中有详细方案。

    用专业在线工具测试你的服务器 SSL 安全性

    Qualys SSL Labs 提供了全面的 SSL 安全性测试,填写你的网站域名,给自己的 HTTPS 配置打个分。

    如果你完全按照我上面教程配置,遵循了最佳实践,你应该和我一样得分是 A+

    这意味着你启用了HTTPS,现在足够的安全,并且使用了最新技术,保证了性能。

  • VestaCP 配置文件和日志文件位置

    VESTA官网 VESTACP.COM

    Config and log locations on a RHEL and CentOS

    Service Config Log
    Apache /etc/httpd/conf/httpd.conf
    /etc/httpd/conf.d/*
    /home/$user/conf/web/httpd.conf
    /home/$user/conf/web/shttpd.conf (ssl)
    /var/log/httpd/access_log
    /var/log/httpd/error_log
    /var/log/httpd/domains/$domain.log
    /var/log/httpd/domains/$domain.error.log
    PHP /etc/php.ini
    /etc/php.d/*
    /var/log/httpd/domains/$domain.error.log
    Nginx /etc/nginx/nginx.conf
    /etc/nginx/conf.d/*
    /home/$user/conf/web/nginx.conf
    /home/$user/conf/web/snginx.conf (ssl)
    /var/log/nginx/access.log
    /var/log/nginx/error.log
    /var/log/httpd/domains/$domain.log
    /var/log/httpd/domains/$domain.error.log
    Named /etc/named.conf
    /home/$user/conf/dns/$domain.db
    /var/log/messages
    Exim /etc/exim/exim.conf
    /home/$user/conf/mail/$domain/*
    /var/log/exim/main.log
    /var/log/exim/reject.log
    /var/log/exim/panic.log
    Dovecot /etc/dovecot/dovecot.conf
    /etc/dovecot/conf.d/*
    /etc/dovecot.conf (rhel5/centos5)
    /home/$user/conf/mail/$domain/passwd
    /var/log/dovecot.log
    ClamAV /etc/clamd.conf
    /etc/freshclam.conf
    /var/log/clamav/freshclam.log
    /var/log/messages
    /var/log/exim/main.log
    SpamAssassin /etc/mail/spamassassin/local.cf /var/log/exim/main.log
    Roundcube /etc/roundcubemail/main.inc.php
    /etc/roundcubemail/db.inc.php
    /etc/httpd/conf.d/roundcubemail.conf
    /var/log/roundcubemail/*
    /var/log/httpd/domains/$domain.log
    /var/log/httpd/domains/$domain.error.log
    MySQL /etc/my.cnf
    /root/.my.cnf
    /usr/local/vesta/conf/mysql.conf
    /var/log/mysqld.log
    phpMyAdmin /etc/phpMyAdmin/config.inc.php
    /etc/httpd/conf.d/phpMyAdmin.conf
    /var/log/httpd/domains/$domain.log
    /var/log/httpd/domains/$domain.error.log
    PostgreSQL /var/lib/pgsql/data/postgresql.conf
    /var/lib/pgsql/data/pg_hba.conf
    /usr/local/vesta/conf/pgsql.conf
    /var/lib/pgsql/pgstartup.log
    phpPgAdmin /etc/phpPgAdmin/config.inc.php
    /etc/httpd/conf.d/phpPgAdmin.conf
    /var/log/httpd/domains/$domain.log
    /var/log/httpd/domains/$domain.error.log
    Vsftpd /etc/vsftpd/vsftpd.conf /var/log/xferlog
    /var/log/messages
    Vesta /usr/local/vesta/conf/vesta.conf
    /usr/local/vesta/conf/mysql.conf
    /usr/local/vesta/conf/pgsql.conf
    /usr/local/vesta/conf/ftp.backup.conf
    /usr/local/vesta/conf/dns-cluster.conf
    /usr/local/vesta/nginx/conf/nginx.conf
    /usr/local/vesta/php/lib/php.ini
    /usr/local/vesta/php/etc/php-fpm.conf
    /var/log/vesta/system.log
    /var/log/vesta/backup.log
    /var/log/vesta/auth.log
    /var/log/vesta/nginx-error.log
    /usr/local/vesta/php/var/log/php-fpm.log

    vesta

    Config and log locations on a Debian and Ubuntu

    Service Config Log
    Apache /etc/apache2/apache2.conf
    /etc/httpd/conf.d/*
    /home/$user/conf/web/apache2.conf
    /home/$user/conf/web/sapache2.conf (ssl)
    /var/log/apache2/access.log
    /var/log/apache2/error.log
    /var/log/apache2/domains/$domain.log
    /var/log/apache2/domains/$domain.error.log
    PHP /etc/php5/apache2/php.ini
    /etc/php5/conf.d/*
    /var/log/apache2/domains/$domain.error.log
    Nginx /etc/nginx/nginx.conf
    /etc/nginx/conf.d/*
    /home/$user/conf/web/nginx.conf
    /home/$user/conf/web/snginx.conf (ssl)
    /var/log/nginx/access.log
    /var/log/nginx/error.log
    /var/log/apache2/domains/$domain.log
    /var/log/apache2/domains/$domain.error.log
    Named /etc/bind/named.conf
    /home/$user/conf/dns/$domain.db
    /var/log/syslog
    Exim /etc/exim4/exim4.conf.template
    /home/$user/conf/mail/$domain/*
    /var/log/exim4/mainlog
    /var/log/exim/rejectlog
    /var/log/exim/paniclog
    Dovecot /etc/dovecot/dovecot.conf
    /etc/dovecot/conf.d/*
    /home/$user/conf/mail/$domain/passwd
    /var/log/dovecot.log
    ClamAV /etc/clamav/clamd.conf
    /etc/clamav/freshclam.conf
    /var/log/clamav/clamav.log
    /var/log/clamav/freshclam.log
    /var/log/exim4/mainlog
    SpamAssassin /etc/spamassassin/local.cf /var/log/exim4/mainlog
    Roundcube /etc/roundcube/main.inc.php
    /etc/roundcube/db.inc.php
    /etc/apache2/conf.d/roundcube
    /var/log/roundcube/*
    /var/log/apache2/domains/$domain.log
    /var/log/apache2/domains/$domain.error.log
    MySQL /etc/mysql/my.cnf
    /root/.my.cnf
    /usr/local/vesta/conf/mysql.conf
    /var/log/mysql.log
    /var/log/mysql/error.log
    phpMyAdmin /etc/phpmyadmin/config.inc.php
    /etc/apache2/conf.d/phpmyadmin.conf
    /var/log/apache2/domains/$domain.log
    /var/log/apache2/domains/$domain.error.log
    PostgreSQL /etc/postgresql/*/main/postgresql.conf
    /etc/postgresql/*/main//pg_hba.conf
    /usr/local/vesta/conf/pgsql.conf
    /var/log/postgresql/postgresql-*-main.log
    phpPgAdmin /etc/phppgadmin/config.inc.php
    /etc/apache2/conf.d/phppgadmin
    /var/log/apache2/domains/$domain.log
    /var/log/apache2/domains/$domain.error.log
    Vsftpd /etc/vsftpd.conf /var/log/xferlog
    /var/log/syslog
    Vesta /usr/local/vesta/conf/vesta.conf
    /usr/local/vesta/conf/mysql.conf
    /usr/local/vesta/conf/pgsql.conf
    /usr/local/vesta/conf/ftp.backup.conf
    /usr/local/vesta/conf/dns-cluster.conf
    /usr/local/vesta/nginx/conf/nginx.conf
    /usr/local/vesta/php/lib/php.ini
    /usr/local/vesta/php/etc/php-fpm.conf
    /var/log/vesta/system.log
    /var/log/vesta/backup.log
    /var/log/vesta/auth.log
    /var/log/vesta/nginx-error.log
    /usr/local/vesta/php/var/log/php-fpm.log