Blog

  • 申请 ssl 证书

    教程都在这里:酷壳

    如何免费的让网站启用HTTPS

    原来用的证书是阿里云上申请的免费Symantec证书,结果发现chrome上提示警告,以后的版本不会再支持。

    Google Chrome正式宣布将不再信任赛门铁克所有SSL证书

    教程里使用的Let’s Encrypt 是一个于2015年三季度推出的数字证书认证机构,将通过旨在消除当前手动创建和安装证书的复杂过程的自动化流程,並推廣使萬維網服務器的加密連接無所不在,为安全网站提供免费的SSL/TLS证书。

    安装cerbot-nginx,运行报错了

    urlib3

    ImportError: No module named 'requests.packages.urllib3'

    PyOpenssl

    raise ImportError("'pyOpenSSL' module missing required functionality. "
    ImportError: 'pyOpenSSL' module missing required functionality. Try upgrading to v0.14 or newer.

    网上都是说镜像里的软件版本太低,影响了apache cerbot。

    更新系统阿里云镜像为163镜像,再把软件都更新了一遍。

    然后用pip又把软件所有软件package更新一遍。

    yum remove certbot-nginx -y
    
    #更新为163源
    cd /etc/yum.repos.d
    #backup
    mv CentOS-Base.repo CentOS-Base.repo.bak
    
    wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
    mv CentOS6-Base-163.repo CentOS-Base.repo
    
    yum clean all && yum makecache
    
    yum update -y
    
    #升级所有python module
    pip2 freeze --local | grep -v '^-e' | cut -d = -f 1  | xargs -n1 pip2 install -U
    
    yum install  certbot-nginx -y

    终于好了

  • 自定义tagline为网易邮箱greetings

    自定义tagline为网易邮箱greetings,api是从网上找的
    修改wp-includes/option.php

    最后加入获取问候语的函数(因为返回来是数组,做了个简单随机)

    /**
    * getrandom greetings form 163.com 
    */
    function tagline_from_mail() {
            $URL = 'http://jy4-app.mail.163.com/jy4-app/xhr/mbox/greetings/get.do';
            $data = file_get_contents($URL);
            if($data === false){
                    return '梦, I LOVE YOU';
            }
            //print_r($data);
    
            $json = json_decode(trim($data), true);
            //print_r($json);
    
            $greet_contents = $json['data']['contents'];
            //print_r($greet_contents);
    
            $index = rand(0, sizeof($greet_contents)-1);
            $greet_content = $greet_contents[$index];
    
            if(stripos($greet_content, '姓名,') !== FALSE){
                     return mb_substr($greet_content, 3, -1, "utf-8");
            }
            return $greet_content;
    }
    

    然后文件中调用函数

    // If home is not set use siteurl.
    if ( 'home' == $option && '' == $value )
        return get_option( 'siteurl' );
    //在上面添加函数调用。修改tagline的值,blogdescription是数据库对应的tagline名
    if ( 'blogdescription' == $option){
        $value = tagline_from_mail();
    }
    
  • 自定义首页图片为bing每日美图

    将workpress 自定义为bing搜索的背景图片的方法,我这里改的是twentyseventeen theme。

    将站点下的wp-content/themes/twentyseventeen/inc/custom-header.php中

    twentyseventeen_custom_header_setup函数修改为如下函数:

    function twentyseventeen_custom_header_setup() {
            //bing api
            $url = 'http://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=';
            $resolution = '1920x1080';
    
            // language options
            $locale = array(
                            "zh-CN",
                            "en-US",
                            "ja-JP",
                            "en-AU",
                            "en-UK",
                            "de-DE",
                            "en-NZ"
                           );
    
            // parameters
            foreach ($locale as $lang) {
                    $URL = $url.$lang;
        //print_r($URL);
                    $data = file_get_contents($URL);
        if( $data === FALSE){
                     	continue;
        }
                    $json = json_decode(trim($data), true);
                    if ($json) {
                            $images = $json['images'];
                            foreach ($images as $image) {
                                    $urlbase = $image['urlbase'];
                                    $image_url = 'https://www.bing.com' . $urlbase . '_' . $resolution . '.jpg';
            break;
                                    // $copyright = $image['copyright'];
                                    // now you can save the picture at $image_url with the title $copyright
                            }
                    }
        if($image_url){
          break;
        }
            }
    
            //此函数来源于原主题下的/inc/custom-header.php
            add_theme_support( 'custom-header', apply_filters( 'twentyseventeen_custom_header_args', array(
                                            'default-image'      => $image_url,
                                            'width'              => 2000,
                                            'height'             => 1200,
                                            'flex-height'        => true,
                                            'video'              => true,
                                            'wp-head-callback'   => 'twentyseventeen_header_style',
                                            ) ) );
           register_default_headers( array(
                    'default-image' => array(
                            'url'           => $image_url,
                            'thumbnail_url' => $image_url,
                            'description'   => __( 'Default Header Image', 'twentyseventeen' ),
                    ),
            ) );
    
    }
    add_action( 'after_setup_theme', 'twentyseventeen_custom_header_setup' );

    参考:

    自定义 Twenty Seventeen 页头媒体

     

  • 工具使用shadowsocks代理接口

    一般使用代理的时候,一个是为了资料,另一个是为了下载。

    用的系统是osx,经常会使用brew安装软件。但是很多软件的源或者它们的依赖库是被墙了。配置代理后,就方便了,不用到处去找替代源

    brew 下载软件是基于curl,vim的管理软件Vim Bundle下载是基于wget的。

    curl

    cat ~/.curlrc 
    
    socks5=127.0.0.1:1080 
    

    polipo

    #Via ~/.polipoc file:
    logSyslog = true
    logFile = ~/log/polipo/polipo.log
    
    socksParentProxy = "127.0.0.1:1080"
    socksProxyType = socks5
    
    proxyAddress = "127.0.0.1"
    proxyPort = 8123
    

    shadowsocks使用的是socket代理,可以使用polipo转化为http代理,方便一些没有办法直接配置socket代理的工具:wget

    wget

    Via ~/.wgetrc file:
    
    use_proxy=yes
    http_proxy=127.0.0.1:8123
    https_proxy=127.0.0.1:8123

    git

    #git use http proxy
    git config --global https.proxy http://127.0.0.1:1080
    #git use https proxy
    git config --global https.proxy https://127.0.0.1:1080
    
    #unset
    git config --global --unset http.proxy
    git config --global --unset https.proxy
    
    #git socks5 proxy
    git config --global http.proxy 'socks5://127.0.0.1:1080'
    git config --global https.proxy 'socks5://127.0.0.1:1080'
    

    npm

    npm config set proxy http://localhost:8080/
    npm config set https-proxy http://localhost:8080/
    npm config set strict-ssl false
    
    #Remove All NPM Proxy
    npm config delete http-proxy
    npm config delete https-proxy
    
    npm config rm proxy
    npm config rm https-proxy
    
    set HTTP_PROXY=null
    set HTTPS_PROXY=null

     

     

  • 如何搭梯子

    这里介绍一下搭梯子用到的网站

    centos7一监安装脚本:来自老高博客

    这个脚本配置了自动启动和自动重启。

    yum update -y
    
    yum install -y python-setuptools net-tools
    
    easy_install pip
    
    pip install --upgrade pip shadowsocks
    
    cat>/etc/systemd/system/shadowsocks-server.service<<EOF
    [Unit]
    Description=Shadowsocks Server
    After=network.target
    
    [Service]
    ExecStart=/usr/bin/ssserver -c /etc/ss-config.json
    Restart=always
    
    [Install]
    WantedBy=multi-user.target
    EOF
    
    num=$((30000 + RANDOM))
    pass=`date +%s | sha256sum | base64 | head -c 12`
    
    cat>/etc/ss-config.json<<EOF
    {
        "server_port":$num,
        "password":"$pass",
        "timeout":60,
        "method":"rc4-md5"
    }
    EOF
    
    
    systemctl daemon-reload
    systemctl enable shadowsocks-server
    systemctl restart shadowsocks-server
    systemctl status shadowsocks-server
    
    cat /etc/ss-config.json

    配置shadowsocks,包括服务点和客户端。来自archlinux

    我的server配置:

    cat /etc/ss-config.json
    {
        "method":"rc4-md5",
        "timeout":600,
        "port_password":
        {
          "50720":"password1",
          "50721":"password2"
        }
    }

    开了两个端口。相当于开了两个用户。自己用使用rc4-md5,加密就够了,简单一点,速度也可以快一些。

    如果想要开启kcptun,我也收集了一个centos7的一键脚本,这里是地址,这里是作者博客

    如果是centos7 想要开启bbr,需要内核4.9以上,具体操作可以参考这里

    开启TCP BBR拥塞控制算法

    一般开启选择使用开启bbr就没有必要kcptun,详情看这里:KCP可以和BBR一起用么?

    命令式安装教程:http://shadowsocks.org/en/download/servers.html