WireGuard初體驗

工作和生活很忙的緣故,一直沒有好好維護Shadowsocks的Qt/C++分支,最近下定決心索性聲明好放棄維護了。偶然看到關於WireGuard的新聞,宣稱是一款現代、快速、安全的VPN工具,今天總算抽出來一點時間來試驗一番,下面來分享一下WireGuard之初體驗。

首先,在伺服器和客戶端安裝好WireGuard,官方文檔寫的很詳細。

然後在伺服器和客戶端都創建好一套密鑰文件,命令如下:

Continue reading “WireGuard初體驗”

修復WordPress更新出現的Inconsistent Permission錯誤

最近部落格的WordPress更新頻頻提示出現錯誤,log就簡單地說一句inconsistent permission error,就這樣在網路上搜尋了一會兒才發現,同樣的錯誤提示很可能是有不同的underlying issue,比如可能文件與目錄的權限有被人為修改過(文件必須是644,而目錄必須是755,可以用find指令批量更改),又或者可能是owner和group不一致(chown -R批量更改)。而發生在我的VPS的卻是第三種情況,SELinux導致某些文件無法寫入……

甄別此情況很簡單,在WordPress目錄下執行ls -Z(注意是大寫Z)查看一下WordPress目錄和其內文件,比如被我強制用unzip解壓最新的WordPress替換過的目錄就顯示:

drwxr-xr-x. nginx nginx unconfined_u:object_r:user_home_t:s0 wordpress

我們關心的是第四列SELinux的標籤設定,這樣的權限是不夠的,在終端執行下面這條語句把WordPress目錄和其內容遞歸性地更新好便解決了問題!

chcon -R -t httpd_sys_rw_content_t wordpress

知其然還需知其所以然,繼續Google了一下,在Red Hat的文檔庫找到配置Apache HTTP Server的權限管理文章,裡面有提到httpd_sys_rw_content_t標籤(以及其他標籤),任何有此標籤的文件都可以被有httpd_sys_script_exec_t標籤的腳本修改,但不能被其他腳本修改。

libQtShadowsocks项目介绍和备忘

shadowsocks应该是继各种VPN和GoAgent之后,目前最受欢迎的代理协议了。VPN不灵活,而且能够被防火墙识别特征,能够轻松封锁,GoAgent则面临可用IP越来越少的困境。懒得介绍原项目了,不知道shadowsocks的自己去Google查吧。

libQtShadowsocks就像名字暗示的一样,是一个Library(库),用Qt(C++)写的,实现了shadowsocks的各项功能。

Continue reading “libQtShadowsocks项目介绍和备忘”

即日起提供Google学术搜索反向代理服务

Google在大陆是彻底沦陷了,虽然鄙人马上就肉翻了,但是不能置广大同胞于水深火热之中啊,特别是目前无可替代的Google学术搜索(有关部门也真是弱智,居然一口气直接封*.google.com……)。并不是每个人都会爬墙出去的,所以临走前送一个小福利,让大家能顺利访问Google学术搜索,助力科研!

先上普罗大众小白都能看懂的使用指南,技术部分在文章后半段。

Continue reading “即日起提供Google学术搜索反向代理服务”

IPv6开启转发并保持自动获取PPP提供的IPv6地址

标题想了好久……请不要吐槽晦涩难懂

先说一下应用场景:

  • 一台Linux-based box(ARM开发板如ODROID U3、Raspberry Pi,或者OpenWRT神马的)当作Host + Router,通过有线网卡连接交换机Hub作为局域网网关和服务器,再通过PPPoE拨号连接外网(PPPoE能自动配置并获取IPv6地址)。
  • 局域网PC配置好本地的IPv6地址透过局域网网关(上面那台Linux Box)连接外网,要求能以IPv4和IPv6协议访问Internet,但是获得的IPv4和IPv6地址都是内网地址

Continue reading “IPv6开启转发并保持自动获取PPP提供的IPv6地址”

让Shadowsocks服务器同时监听IPv4和IPv6端口

中国电信的天翼校园宽带客户端简直令人发指,现在封锁越发厉害了,已经无法使用系统自带的PPPoE拨号了(所以刚买几天用来作服务器的ODROID-U3暂时下岗了……)。还好,学校有免费的IPv6网络,速度虽然不快,但是至少免费不限流量。正好我的VPS有IPv6地址,于是寻思着怎么利用VPS每月500G的流量来供我上网……一开始看了L2TP、OpenVPN等VPN的办法,发现让它们支持IPv6很麻烦。转念一想,不是还有Shadowsocks嘛!!!Shadowsocks支持IPv4/IPv6协议,但是一开始发现连上去显示套接字连接失败。

Continue reading “让Shadowsocks服务器同时监听IPv4和IPv6端口”

Nginx监听IPv6地址端口的正确操作方法

先在终端下输入以下指令,看看输出结果有没有–with-ipv6,没有的话就需要重新编译带有ipv6支持的nginx了。

nginx -V

编译nginx就不在这里说了,下面讲一下正确地配置nginx让其同时监听IPv4和IPv6的端口(包括http协议的80和https协议的443端口),同时介绍一下只监听IPv6和特定IPv6地址的方法。

Continue reading “Nginx监听IPv6地址端口的正确操作方法”

Apache服务器启用SPDY协议加快传输本博客内容

Apache确实占用资源比较多……嗯,不过博客访问量也不大,还能应付过来。今天看到SPDY的已获得Chrome、Firefox、Opera、IE等众多浏览器的支持,于是萌生念头让博客的https访问使用SPDY协议(不用担心,不支持的会自动fallback到普通https协议)!嗯,没错,SPDY协议是一个全新的加密层传输协议,你的站点得先有SSL证书并能顺利通过普通https访问上!

Apache、Nginx都支持SPDY协议,Apache是通过mod_spdy这个模块来实现的,但是博客使用的是WordPress(PHP内容),需要禁用mod_php改用mod_fcgid来确保PHP的线程安全。下面分享一下做法。

Continue reading “Apache服务器启用SPDY协议加快传输本博客内容”

MySQL数据引擎InnoDB和MyISAM互相转换

MySQL(或者社区开源fork的MariaDB)5.5以上支持InnoDB引擎,并将其作为默认数据库引擎。InnoDB带来很多改进,但是对系统资源占用明显增加,对于还在128MB~512MB内存VPS挂WordPress博客的筒子们来说,InnoDB是不合适的,还是得换回MyISAM这批老马!

Continue reading “MySQL数据引擎InnoDB和MyISAM互相转换”

Fedora Linux连接l2tp(东南大学Bras校园网)指南

多亏了Networkmanager的l2tp插件啊,现在只要使用NetworkManager来管理网络,就能创建l2tp类型的VPN(包括l2tp+ipsec类型的VPN)。我们学校的校园网就是l2tp类型的VPN,在我们学校(东南大学)其正式名称为b-ras.

下面以Fedora 19 KDE环境为例(最新版的Ubuntu也是可以的,不过要安装的软件包名称可能不同哦),结合东南大学B-ras网络设置(具体诸如网关、用户名、密码等请参考你自己的情况),首先在终端下运行下面这个指令来安装l2tp相关的软件包,

Continue reading “Fedora Linux连接l2tp(东南大学Bras校园网)指南”