Author Archives: 小f

openwrt动态域名解析增加noip支持

dnspod的域名解析搬到了cloudflare,路由器的动态域名解析换成了noip的服务。

ssh到路由器

vi /usr/lib/ddns/services

新增以下记录:

“noip.com”      “http://[USERNAME]:[PASSWORD]@dynupdate.no-ip.com/nic/update?hostname=[DOMAIN]&myip=[IP]”

在luci界面中填写域名 账号 密码吧(注意:账号请填写邮箱)

 

Nginx服务器一个IP地址配置多个SSL证书

060

根据传统HTTPS的工作原理,浏览器在访问一个HTTPS站点时,先与服务器建立SSL连接,建立连接的第一步就是请求服务器的证书。而服务器在发送证书的时候,是不知道浏览器访问的是哪个域名的,所以不能根据不同域名发送不同的证书

SNI(Server Name Indication)是为了解决一个服务器使用多个域名和证书的SSL/TLS扩展。一句话简述它的工作原理就是,在连接到服务器建立SSL连接之前先发送要访问站点的域名(Hostname),这样服务器根据这个域名返回一个合适的证书。目前,大多数操作系统和浏览器都已经很好地支持SNI扩展,OpenSSL 1.0.0已经内置这一功能,nginx1.0以上版本已经支持SNI,只需要在编译安装前安装最新的OpenSSL 1.0.0以上版本Nginx使用1.0以上版本!。在目前iPv4枯竭的时代一个IP是非常宝贵的且价格非常高,这个时候如果为了配置一个SSL证书而购买一个IP是非常不划算的。

以CentOS为例:
你可以使用以下命令查看Nginx是否开启SNI

/usr/local/nginx/sbin/nginx -V

(根据你的Nginx安装目录而定)
nginx: nginx version: nginx/1.1.0
nginx: TLS SNI support disable
如果提示:nginx: TLS SNI support enable(已开启)
如果已开启那么可直接使用和不使用SNI配置完全一样。
如果没有开启提示:如果提示:nginx: TLS SNI support disable(未开启)
那们我们需要重新编译安装Nginx

首先下载Nginx安装包

wget http://nginx.org/download/nginx-1.9.0.tar.gz

解压Nginx安装包

tar zxvf  nginx-1.9.0.tar.gz

进入解压文件夹

cd nginx-1.9.0

下载OpenSSL最新版本

wget http://www.openssl.org/source/openssl-1.0.1o.tar.gz

解压OpenSSL源码包

tar zxvf  openssl-1.0.1o.tar.gz

更新系统的OpenSSL组件(CentOS)

yum install -y openssl*
yum install -y openssl-devel

等待完成……..

执行以下命令编译Nginx
指定编译规则:

./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-ipv6 --with-openssl=./openssl-1.0.1o/

开启编译

make

等待完成(一般数分钟 视服务器而定)
备份旧文件

mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old

复制新文件到安装目录

cp objs/nginx /usr/local/nginx/sbin/nginx

测试Nginx配置是否正确

/usr/local/nginx/sbin/nginx -t

会得到以下提示:
the configuration file/usr/local/nginx/conf/nginx.conf syntax is ok
configuration file/usr/local/nginx/conf/nginx.conf test is successful
证明配置没有问题,如果有问题按错误提示修改!
编译更新

make upgrade

使新配置生效

/usr/local/nginx/sbin/nginx -s reload

再次使用查看Nginx开启的服务

/usr/local/nginx/sbin/nginx -V

(根据你的Nginx安装目录而定)
nginx: nginx version: nginx/1.1.0 nginx: TLS SNI support enable(已开启)

大功告成!接下来就是修改vhost的配置,加上SSL证书配置了。

via: https://qiaodahai.com/nginx-server-an-ip-address-to-configure-multiple-ssl-certificates.html

服务器配置:shadowsocks

1.安装pip055

wget --no-check-certificate https://bootstrap.pypa.io/get-pip.py
 python get-pip.py

2.通过pip安装

pip install shadowsocks

3.配置 shadowsocks

创建配置文件 /etc/shadowsocks.json. 例如:

{
    "server":"my_server_ip",
    "server_port":8388,
    "local_port":1080,
    "password":"barfoo!",
    "timeout":600,
    "method":"table"
}

Explanation of each field:

  • server: your hostname or server IP (IPv4/IPv6).
  • server_port: server port number.
  • local_port: local port number.
  • password: a password used to encrypt transfer.
  • timeout: connections timeout in seconds.
  • method: encryption method, “bf-cfb”, “aes-256-cfb”, “des-cfb”, “rc4”, etc. Default is table, which is not secure. “aes-256-cfb” is recommended.

 

To run in the foreground:

ssserver -c /etc/shadowsocks.json

To run in the background:

ssserver -c /etc/shadowsocks.json -d start
ssserver -c /etc/shadowsocks.json -d stop

将 CentOS 的 Python 升级到 2.7.10

1. 下载安装:

wget --no-check-certificate https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tgz
gunzip python-2.7.10.tgz
tar xvf python-2.7.10.tar
cd python-2.7.10
./configure
make
make install

查看版本,检测是否安装成功:/usr/local/bin/python2.7 -V034

2. 链接新版本:python2.7 安装成功后,系统默认指向的 python 仍然是低的版本;而 yum 需要用到低的版本,所以能卸载,需要建立软连接,使系统默认的 python 指向python2.7

mv /usr/bin/python  /usr/bin/python.bak
ln -s /usr/local/bin/python2.7 /usr/bin/python

查看系统默认指向版本:python -V

3. 系统 python 软链接新版本后,yum 不能正常工作;将 yum 文件第一行改为 #!/usr/bin/python2.4 即可:
注意:你的系统原来版本不一定是 Python2.4,请在第一步安装之前查看软件版本

vi /usr/bin/yum
i 变换为插入模式,
修改 #!/usr/bin/python 为
#!/usr/bin/python2.4
按 Esc 键回到命令模式 按住 Shift 敲:,输入 wq,保存退出

输入 yum 测试功能是否正常

Mac OS X上安装dnsmasq

安装Homebrew

请打开 终端 (应用程序>实用工具),并运行

ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”

安装完成之后,你就可以使用brew命令来安装dnsmasq了。

安装并配置dnsmasq组件

仍然在终端运行

brew install dnsmasq

To configure dnsmasq, copy the example configuration to /usr/local/etc/dnsmasq.conf  and edit to taste.

cp /usr/local/opt/dnsmasq/dnsmasq.conf.example /usr/local/etc/dnsmasq.conf

To have launchd start dnsmasq at startup:

sudo cp -fv /usr/local/opt/dnsmasq/*.plist /Library/LaunchDaemons

sudo chown root /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist

Then to load dnsmasq now:

sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist

安装提示非常友好,根据提示完成安装即可。

打开/usr/local/etc/dnsmasq.conf文件,增加以下内容:

listen-address=127.0.0.1
no-resolv
no-poll
server=208.67.222.220
server=8.8.4.4

 

鉴于国内网站很多使用CDN服务器,若采用国外的dns服务器,会被定向到国外访问速度较慢,采用国内的dns无法正常解析国外的部分网站(dns污染),可采用指定域名使用指定的dns服务器,格式如下:

server=/baidu.com/114.114.114.114

域名列表可参考:https://github.com/felixonmars/dnsmasq-china-list

 
重启dnsmasq

在终端运行:

sudo launchctl stop homebrew.mxcl.dnsmasq
sudo launchctl start homebrew.mxcl.dnsmasq
sudo killall -HUP mDNSResponder

即可刷新缓存并重新启动dnsmasq服务。