WiFi 配置 IPv6 指南

根据工信部的要求,2018 是 IPv6 大力推进部署的一年。截止到年底 12 月份,对于普通用户来说,三大运营商对 IPv6 的支持已经从宽带上网落实到手机移动网络的双栈支持。不管是 Android 用户还是 iOS 用户(12.1.1 已提供联通描述文件),都能直接使用到原生的 IPv6。

不过,因为老旧路由器的限制,即使光纤宽带上网早早就已支持 IPv6,但绝大多数 WiFi 并不支持 IPv6。

具体来说,家庭 WiFi 要支持 IPv6 需要满足三个条件:

  1. 运营商支持 IPv6(三大运营商在大多数城市都已支持)
  2. 光猫支持 IPv6(最近两年运营商赠送的光猫均支持)
  3. WiFi 路由器支持 IPv6(很遗憾,国内主流路由器很少支持)

所以,配置 WiFi 的 IPv6 首先要选择支持 IPv6 的路由器。当然,还有一种选择就是,路由器可以刷第三方固件。大多数第三方固件目前都提供有 IPv6 支持。

另外,运营商提供的光猫现在也提供有 WiFi 和路由功能,也能直接开启 IPv6 支持。

对于中国电信的光猫,建议使用 telecomadmin 账号和 nE7jA%5m 密码以超级管理员登录。然后在“状态总览”的“业务信息”下“上网业务”查看是否有 IPv4 和 IPv6 两个连接。使用路由器的用户,将看到连接方式为“桥接(电脑拨号)”。

如果没有看到 IPv6,请转到“网络”的“网络设置”页面。找到“网络连接”的“连接名称”类似于“3_INTERNET_B_VID_41”选项,其“封装方式”为“PPPoE”,“业务类型”为“上网”,“连接方式”为“桥接”(如果是路由表示开启了光猫的路由功能)。请将其“IP 模式”修改为“IPv4 & IPv6”即可开启双栈支持。

对于路由器,比如潘多拉固件。在 WAN 口 IPv6 设置页面:“IPv6 连接类型”选择“Native DHCPv6”,“获取 IPv6 外网地址”选择“Stateless: RA”,“启用 LAN DHCPv6 服务器”选择“Stateless (*)”;然后开启“自动获取 IPv6 DNS”、“通过 DHCPv6 获取内网 IPv6 地址”、“启用 LAN 路由器通告”。

Ubuntu LVM 增加新硬盘

办公室放着一台测试机,想着做备份用,但只有一块 500G 的硬盘,不太够。所以得增加硬盘。

Ubuntu 12.04 LTS 就已经支持 LVM 安装,14.04 LTS 默认会选择 LVM 了。而且对于 500G 硬盘,也会默认使用 GPT 分区。

(更多…)

Ubuntu 16.04 安装 certbot-dns-dnspod 插件

因为 Certbot 是使用的 python3,而 Ubuntu 16.04 默认还是 python2.7。所以,默认情况下,使用 sudo easy_install pip 安装的是 python2.7 的 pip。那就无法通过 pip 去安装 certbot-dns-dnspod

解决方法如下:

sudo apt-get install python3-setuptools
sudo easy_install3 pip
sudo pip install certbot-dns-dnspod

然后,升级 certbot 为 0.22 以上版本,并指定新的认证服务器就可以申请泛域名证书了:

sudo certbot certonly --server https://acme-v02.api.letsencrypt.org/directory -a certbot-dns-dnspod:dns-dnspod --certbot-dns-dnspod:dns-dnspod-credentials /etc/letsencrypt/dnspod.conf -d larryli.cn -d "*.larryli.cn"

Orange Pi Zero 无需网线或 USB-TTL 登录系统

通常对于新刷了 Armbian 系统的开发板,初次使用需要准备一条网线或者 USB 串口线才能进入系统连接 Wifi

而实际上,Orange Pi 开发板的 USB OTG 供电口本身就已经集成了 USB-TTL 芯片。插上电脑给开发板供电就可以识别到新的串口,Win10 和 Mac 都自带驱动,Linux 下更不用说。

在 Armbian 系统里也可以找到这个串口,就是 /dev/ttyGS0 设备。不过,ttyGS0 虽然和 ttyS0 一样开启了控制台,但没有 ttyS0 调试口的开机关机输出信息。当然,对于初次登录系统就足够用了。

Padavan 固件配置 6plat 的 6in4 隧道开启内网 IPv6 支持

上个周末入手了一台斐讯 K2,然后刷机了 Padavan 固件
开启了 SS 和 Adbyby 之后,发现路由器 CPU 负载和空闲内存都还很理想,所以就申请了 6Plat 个人用企业账号(需填写《6Plat企业模块申请单》,申请方为个人,附上姓名、身份证号码和手机,另外还需要公网 IP,动态 IP 需要设置 DDNS)。
发送申请邮件后,很快就收到配置信息,有五项配置,分别是:

  • 6plat 端公网 IPv4 地址:118.145.*.*
  • 6plat 端 6in4 隧道 IPv6 地址:*:*:*::1/64
  • 您的设备 6in4 隧道 IPv6 地址:*:*:*::2/64
  • 您可用 IPv6 网段:*:*:*::/48
  • IPv6 防污染 DNS:240c::6666

但 Padavan 是 WAN 中配置 IPv6,相关配置项目名称并不是一一对应,特别是 IPv6 内网地址的配置。

  • IPv6 连接类型: Tunnle 6in4
  • IPv6 硬件加速:
  • 6in4 远程端点 (IPv4): 118.145.*.* 对应 6plat 端公网 IPv4 地址
  • 隧道 MTU: 1480
  • 隧道 TTL: 64
  • IPv6 外网地址: *:*:*::2 对应 您的设备 6in4 隧道 IPv6 地址,不需要 /64 见下
  • IPv6 外网前缀长度: 64
  • IPv6 外网默认网关: *:*:*::1 对应 6plat 端 6in4 隧道 IPv6 地址,不需要 /64 见上
  • DNSv6 服务器 1: 240c::6666 对应 IPv6 防污染 DNS
  • DNSv6 服务器 2: 2001:4860:4860::8888 备用的 Google IPv6 DNS
  • DNSv6 服务器 3: 2001:4860:4860::8844 备用的 Google IPv6 DNS
  • IPv6 内网地址: *:*:*:1::1 对应 您可用 IPv6 网段,只需要选用一个子网段,所以在原有配置中间加了一个 :1
  • IPv6 内网前缀长度: 64 只使用了 /64
  • 启用 LAN 路由器通告:
  • 启用 LAN DHCPv6 服务器: Stateless (*)

网站开启 HSTS 与 HPKP

HSTS 是 HTTP Strict Transport Security,即 HTTP 严格传输安全。也就是强制使用 https 访问网站。之前有过配置,但现在 Chrome 有内置离线数据库支持 HSTS,直接在 Chrome 安装时就知道指定的域名开启了 HSTS。
HPKP 是 HTTP Public Key Pinning,即 HTTP 公钥固定。让浏览器可以缓存服务器证书指纹,因为服务器证书会经常性更新,所以一般提供的指纹是上级颁发者的中级证书指纹。
加上前段时间配置了 IPv6 访问,现在剩下的就只有 DNSCrypt 没有配置了。

使用 Caddy 和 Dnspod 自动申请 Let’s Encrypt 证书

Let’s Encrypt 申请证书的 ACME 协议支持三种认证,分别是:

  1. 基于 80 端口的 http-01
  2. 基于 443 端口的 tls-sni-02
  3. 无需端口的 dns-01

dns-01 需要在 DNS 服务器增加对应的 TXT 记录来完成验证。

Caddy 现在有官方的 tls.dns.dnspod 插件支持托管在 Dnspod 的域名使用 dns-01 来申请 Let’s Encrypt 证书。

首先,需要在 Dnspod 用户中心的安全设置中申请 API Token,复制其 ID 和 TOKEN。

然后,修改 Caddy 服务配置脚本,比如 sysvinit 系统的 /etc/init.d/caddyexport CADDYPATH=/etc/ssl/caddy 后面增加一行:


export DNSPOD_API_KEY="$ID,$TOKEN"

就是用 ID 和 TOKEN 以英文逗号分割的字符串。

最后,就是在对应的 Caddyfile 文件配置中启用:


tls {
dns dnspod
}

如果有配置多个域名,第一次启动会比较缓慢。因为需要每个域名依次申请证书。

题外话:

  • 树莓派 1 代在下载 Caddy 时需要在 PLATFORM 选择 Linux ARMv6,然后在 PLUGINS 中选择 tls.dns.dnspod 即可。
  • 如果 Dnspod 自己支持 DDNS 接口,不过一般路由器比如 TP-LINK 系都会支持花生壳 DDNS,自动在路由连接时登记,比定时脚本要靠谱很多。自己的域名只需要在 Dnspod 中 CNAME 到花生壳的免费域名。
  • 一般情况,运营商不会开放 80 端口,但 443 端口是开放的。只需要在路由器将 443 端口转发给内网设备。
  • Caddy 可以作为前端反向代理系统的其他的 http 服务,只需要每个服务多建一个域名即可。