Site icon T.T.T

VPS 折腾记

一切的起因是去年九月,在本人用了两年有余的 richCloud 即将过期时,本人听闻瓦工的机房接入了 CN2,速度很是不错,于是就购买了一年的 19.99 方案。后来不久瓦工又推出了著名的 29.99 CN2 GT 方案,果断退款后重新购买。(后来瓦工故技重施,又推出了 39.99 的 CN2 GIA 方案,笔者就没有尝试了。)

由于还有注册 Google Voice 等需求,笔者比较喜欢美国 VPS。

半年来一些反复折腾的加密方式、端口等按住不表。这篇主要来说说建本站的过程。最早有试过在 CentOS 上用秋水逸冰的一键 LAMP 脚本,无奈编译安装实在太吃内存,512M 内存的小鸡根本招架不住。一键 LNMP、LNMP-YUM 脚本等也总是存在各种问题。后来有尝试过宝塔面板,傻瓜化的安装比较适合我这个懒人,但宝塔也同样存在吃内存的问题。512M 的小鸡装好了宝塔和 LNMP 就只剩 30 多 MB 可用了,SWAP 分区愣是开到了 1G 也不够用。

啊,一切都是偷懒惹的祸啊!

昨日惊闻一个好朋友喜欢手动配置 LNMP,我的折腾热情突然又被点燃。恰好在某乎上看到一个非常良心的 手把手建站教程 专栏,又仗着自己多年的 Linux 经验,趁着深夜月黑风高小伙伴们没在网上研究科学的时间,在瓦工的 KiwiVM 面板重新安装了 Ubuntu 18.04 LTS。折腾之路就此开始。

SSH 登录

科班学生总归或多或少有一些需要 Linux 救场的时刻。笔者在 WSL (Windows Subsystem for Linux) 安装了 Ubuntu 子系统。按住 Windows 徽标键 + R,输入 Ubuntu,回车即可打开 Bash 界面。输入以下代码连接瓦工 SSH:

ssh root@YOUR_IP -p YOUR_PORT

笔者曾是多年的 PuTTY 用户,但近期觉得这种方案连接 SSH 更加方便,于是自寒假重装 Win 10 以来,再没有安装过 PuTTY。

开启 BBR 加速

参考原文

瓦工面板安装的 Ubuntu 18.04 使用了 4.15 内核,原生支持 BBR,只需要手动开启即可。

1、修改系统变量

echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf

2、保存生效

sysctl -p

3、查看内核是否已开启BBR

sysctl net.ipv4.tcp_available_congestion_control

显示以下即已开启:

# sysctl net.ipv4.tcp_available_congestion_control
net.ipv4.tcp_available_congestion_control = bbr cubic reno

4、查看BBR是否启动

lsmod | grep bbr

显示以下即启动成功:

# lsmod | grep bbr
tcp_bbr                20480  14

开启 IPv6 Tunnel

参考原文

KVM 架构的瓦工是没有原生 IPv6 支持的,本地电信的宽带也还没有下发 IPv6 配置。为了能够访问一些 IPv6 站点,或者说为了使 test-ipv6.com 变得好看一些,笔者决定将瓦工作为 IPv6 跳板。

首先在 TunnelBroker 官网上注册并 Create Regular Tunnel,选择 Los Angeles 机房。TunnelBroker 是一个老牌的隧道服务商,已经为我们提供了丰富的配置指导。切换到 Example Configurations,然后选择 Debian/Ubuntu。执行以下代码即可获得 IPv6 访问。

auto he-ipv6
iface he-ipv6 inet6 v4tunnel
address 2001:xxx:xxx:xxx::x
netmask 64
endpoint 66.xxx.18.42
local xxx.xxx.xxx.xxx
ttl 255
gateway 2001:xxx:xxx:xxx::x

再执行 ping6 google.com,能 ping 通则证明机器能够正常访问 IPv6。之后就可以配置开机启动。执行 nano /etc/network/interfaces,将以上代码插入文件末尾,Ctrl + O 保存,Ctrl + X 退出即可。这样开启的好处是重启依然能够生效。

安装 Docker

笔者安装的是 Docker Community Edition (CE) 版本,曾尝试过无脑 apt install docker,然而 gg。老老实实查阅官方文档,也是很顺利地就完成了安装。

Docker 的 IPv6 Support 默认是关闭的,参见官方文档。需要在 /etc/docker/daemon.json 中加入以下代码:

{
    "ipv6": true,
    "fixed-cidr-v6": "此处填写 TunnelBroker 提供的 Routed IPv6 Prefixes /64"
}

安装 LNMP 与 WordPress

LNMP 即 Nginx/MySQL/PHP 生产环境,相对 LAMP 而言对低配小鸡更加友好。安装过程全部参阅某乎 手把手建站教程 专栏的教程,在这里给专题主一万个小花花!要注意的是知乎专栏写作时 PHP 版本是 7.0,如今已经有 7.2 了。相关的目录要手动改改。

贴几个教程中以后要经常用到的配置文件所在地:

Nginx 配置文件 /etc/nginx/sites-available/default

# 再次警告低配小鸡不要使用一键脚本编译安装 #

解决 Nginx 环境下 WordPress Permalinks 404 错误的问题

找到 Nginx 默认配置文件,如果你完全参照教程,那么应当在 /etc/nginx/sites-available/default 这个位置,加入这一个 if 语句:

server {
[....]
    if (!-e $request_filename) {
        rewrite ^.*$ /index.php last;
    }
[....]
}

好吧我承认写到这里有一些偷懒,总之本站就这么诞生了。(完)