博客¶
Openwrt Mesh 和快速漫游配置
背景
家里原本有两个路由器,一个负责楼上,一个负责楼下。但是仍然有许多覆盖不到的地方,比如厨房。并且更影响体验的是楼上楼下的 WIFI 使用不同的 SSID,手机无法很好地自动切换。经常是楼上连接到楼下的网络导致信号很差。因此决定对家里的网络改造一番。
以前听过 mesh 这个技术,可以将很多台路由器通过无线连接起来,共同提供一个网络。于是去搜索了 openwrt 是否支持 mesh,发现是可以的。并且经过进一步的了解,纠正了自己之前对无线网络的一些错误认知。
- 首先,mesh 解决的并不是如何让设备自动切换网络,而是如何进行无线组网,可以避免布线的困难。mesh 节点通过同一个信道的的无线相互连接,而通过另一个无线提供 WIFI。
- 快速漫游(fast roaming) 协议,准确来说叫做 802.11r 协议,可以减少设备切换无线网络的耗时。
硬件设备上,我选择使用小米路由 3G 来搭建,主要是因为硬件配置上在 wifi5 的路由器中算是很不错的了,且某鱼上一个只需要 50 元。于是又买了两个,加上原本的,现在有 4 台 openwrt 路由器,一个红米 AC2100 作为主路由,3 个 R3G 作为 AP 节点。
为了方便配置还实现了一个自动配置脚本放在 github:TheRainstorm/my-openwrt-config (github.com)
使用 openwrt 路由器和 usb 摄像头进行延时摄影
作用
放在楼顶,拍摄一天 24h 的户外录像、延时摄影。像超级小桀每天的直播录屏 p1 那样。
- 可以远程通过网页实时查看摄像头直播画面
openwrt DNS 详解
openwrt DNS 说明
参考:
- openwrt DNS 和 DHCP 配置均位于/etc/config/dhcp
-
openwrt 使用 dnsmasq 和 odhcpd。它们功能如下:

- 总结来说:
- dnsmasq 将自己设置为 DHCP 客户端的 DNS
- dnsmasq 使用缓存来提升性能。到达的 dns 请求如果没有命中则转发给上游 DNS
Dnsmasq serves as a downstream caching DNS server advertising itself to DHCP clients. This allows better performance and management of DNS functionality on your local network. Every received DNS query not currently in cache is forwarded to the upstream DNS servers.
linux 系统迁移
linux 系统迁移
买了一条三星的 PM9A1 SSD,想要把原本的 linux 迁移到新的固态上。
系统信息
- 原本的系统(windows 和 ubuntu 双系统)安装在固态上,包含 EFI 分区。
- 系统引导方式:EFI/GPT(其它方式有 BIOS/MBR, BIOS/GPT)
BIOS system
On a BIOS/GPT system there is no MBR and therefore no place to store the loader. The GPT partition specification allows for an unformatted partition of the BIOS boot partition type (0xEF02). The size of this partition can be as small as 1 mebibyte. The Calamares installer uses a fixed size of 32 mebibyte. On a BIOS/MBR system a part of the bootloader is written to the Master Boot Record for the primary disk.
vnc 和 rdp 远程
说明
写这个的原因是,网络上的教程真的太烂了。比如:
- 没有说明就默认用 centos
- 默认是服务器版本的 Linux 发行版,没有桌面环境
- 桌面环境默认用 xfce,而很少有 gnome 的
- vnc 各种版本,默认只说明其中一种
- xstartup 没有任何说明,如何配置
各种 remote desktop 软件,可以看到最近更新时间
Linux 安装 windows 虚拟机并显卡直通
说明
在 linux 上使用 KVM 安装 windows 虚拟机。然后将显卡直通 (pci passthrough) 进虚拟机,从而可以在 Windows 虚拟机上打游戏。
达到一台机器同时运行两个系统,充分利用硬件。
使用 docker 配置 hexo 博客环境
由于 nodejs 版本较多,直接在宿主机上安装 nodejs 环境不容易管理。因此可以使用 docker 维护一个专门用于 hexo 的环境。
读 x86 手册记录
常见看名字猜测不了功能的指令
lea //Load Effective Address
test //Logical Compare, Computes the bit-wise logical AND of first operand
//(source 1 operand) and the second operand (source 2 operand) and
//sets the SF, ZF, and PF status flags according to the result. The result is then discarded.
incl //Adds 1 to the destination operand, while preserving the state of the CF flag.
//The destination operand can be a register or a memory location. This instruction
//allows a loop counter to be updated without disturbing the CF flag. (Use a ADD
//instruction with an immediate operand of 1 to perform an increment operation that does updates the CF flag.)
如何实现网络自由
如何实现网络自由:-)
这里说的网络自由,是指通过网络工具极大地便利生活的某些方面。这篇文章是我自己对折腾路由器刷机、openwrt、ipv6 的总结,并尽量说明了各种玩法的实际用途。其中有些操作确实给我带来了极大便利,比如其中使用 iSCSI 通过网络挂载其它设备的硬盘,这充分解放了我只有 500GB 的轻薄本。在上面安装游戏后,又可以实现在不同设备上无缝玩同一个游戏的体验。
openwrt 配置
openwrt 换源
OpenWRT/LEDE 源使用帮助 — USTC Mirror Help 文档
常用软件
# shell
zsh
# better ternminal dev
vim-full tmux htop
# downlaod
curl wget
# networking
tcpdump mtr-json ss ip-full iputils-arping ncat iperf3 ethtool-full
# VPN
luci-app-wireguard
# system
记录红米 AC2100 折腾
第一次尝试自己刷路由器,网上搜索了很多资料,忙活了 2 天,期间差点以为将路由器刷成砖了。
红米 AC2100 这款路由器确实算是很火,网上有很多资料。刚开始在恩山论坛查找各种资料,但是觉得恩山论坛的帖子有点乱,对新手不太友好。看精华帖时帖子之间的联系性不大,要是有一个板块进行总结性的介绍就好了。
网络挂载磁盘 (iSCSi)
网络挂载磁盘 (iSCSI)
iSCSI is an IP-based standard for transferring data that supports host access by carrying SCSI commands over IP networks. The iSCSI standard is defined by RFC 3720. (iSCSI overview - IBM Documentation)
使用 iSCSI 可以将远程服务器上的存储设备映射为本地的一个块设备
不同情况下的内网穿透
技术说明
- ddns:将动态的公网 ip 地址绑定到一个域名上
- 通过 VPN 访问内网:在互联网上建立一个隧道,通过隧道可实现访问内网设备
- 端口转发:将发送给 A 的某个端口的数据转发给 B 的某个端口。对于访问者来说,访问的是 A,实际响应的是 B
网络状况
设备 A 位于路由器后,设备 B 想要远程连接 A。以下是设备 B 分别使用 ipv4 和 ipv6 访问 A 时不同情况的处理方式。
移动光猫开启 ipv6
- 移动光猫使用桥接模式 + 路由器使用拨号上网
- 移动光猫开启 ipv6 步骤 1. 删除原本 ipv4 的 PPPoE 2. 协议选择 ipv4/ipv6,创建新的PPP连接