怕刺 - openwrt
type: channel
link: https://pa.ci/tag/openwrt/
items: OpenWrt代理下split-horizon DNS导致的DNS分流失效
items: OpenWrt 25.12 快速预览
items: 用 https-dns-proxy 彻底解决 OpenWrt + TPROXY 的 DNS 卡顿/解析失败
items: Cudy TR3000 256M安装OpenWrt系统和救砖
items: 友善R3S安装OpenWRT做主路由并设置相关软件
items: 光猫下路由器与电脑的互相访问：静态路由设置
items: OpenWRT安装samba实现共享文件
items: 树莓派4B安装OpenWrt旁路由并设置相关软件（保姆式教程）
items: 【教程】小米路由器mini安装OpenWrt系统

OpenWrt代理下split-horizon DNS导致的DNS分流失效
type: item
date: 2026-04-08T06:43:57+00:00
description: 公司网站采用了split-horizon DNS，内网接入的时候DNS解析返回内网IPv4地址，外网接入的时候DNS解析返回公网IPv4地址和IPv6地址。再使用OpenWrt安装某些代理之后，会导致所有的DNS查询都返回IPv6地址，而本地没有IPv6致使无法正常使用。本质上是：接入 OpenWrt 后，DNS 没走内网 DNS，而走了外部 DNS / 代理接管的 DNS，于是 split-horizon DNS 被破坏了。解决方法也很简单，进入OpenWrt后：在代理软件中，关闭DNS 重定向在接口>WAN中，关闭自动获取 DNS 服务器，勾选使用自定义的 DNS 服务器，填入223.5.5.5等国内的DNS。重启OpenWrt和电脑。之后，DNS将返回公网IPv4和IPv6地址，至此正常连接。

OpenWrt 25.12 快速预览
type: item
date: 2026-01-23T05:52:05+00:00
description: 时间买入2026年，OpenWrt也例行大版本更新，从OpenWrt 24.10更新至OpenWrt 25.12，当前（2026-01-23）已经发布了两个RC版本。主要改动软件包管理器从 opkg 切换到 apk 这是本次更新中最具变革性的。opkg因为功能陈旧、性能难以适应现代化软件体系，且维护人员有限，已经制约了OpenWrt的发展。因此，OpenWrt社区决定采用源自Alpine Linux的现代化轻量级包管理器apk（Alpine Package Keeper）。虽然在24.10版本周期内就已在主开发分支的快照（nightly）版本中开始测试，但出于系统性限制和兼容性考虑，直到现在才正式将其作为默认的包管理器。交互式系统升级（Attended Sysupgrade）功能集成到默认的 LuCI 安装中 现在可以直接通过Web界面将设备从24.10升级到25.12，并自动保留配置，直接简化升级流程，对于部分不方便的设备不再需要各种半手动操作了。Shell 命令历史记录存储在内存中，直到下次重启 OpenWrt可以有类似现代化Linux桌面系统的终端体验了。集成视频流（Video Feed）功能 OpenWrt 25.12默认集成了基于Qt5的视频流应用，这为路由器在家庭监控、视频网关等新应用场景上打开了大门。Wi-Fi 脚本已转换为 ucode 格式 这项底层改动旨在提高Wi-Fi配置的效率和一致性。组件与软件更新Linux kernel 更新到了 6.12工具链也对应更新：musl libc 1.2.5glibc 2.41gcc 14.3.0binutils 2.44核心包例行更新：hostapd 2025年8月版本dnsmasq 2.91dropbear 2025.89busybox 1.37.0

用 https-dns-proxy 彻底解决 OpenWrt + TPROXY 的 DNS 卡顿/解析失败
type: item
date: 2025-09-04T06:07:00+00:00
description: 网络环境踩坑后的完整复盘与做法，给同样用 OpenWrt + TPROXY 透明代理使用者作为参考。问题现象Ubuntu Server 在 apt update 或 ping 时先卡一阵再恢复。关闭代理中的“仅 DNS 劫持（快速）”后，部分域名解析失败；但直接指定 1.1.1.1 就能解析，比如：nslookup www.ict.ac.cn 192.168.1.1 # 失败 nslookup www.ict.ac.cn 1.1.1.1 # 成功Ubuntu 侧 systemd-resolved 使用本机 stub（127.0.0.53），上游指向路由器 192.168.1.1。根因解析（两类问题叠加）UDP→TCP 回退没有被正确处理 部分域名响应很大或被截断（TC 位=1）时，客户端会从 UDP/53 改用 TCP/53 再查。如果路由/上游没接好 TCP/53（只拦或只代理了 UDP/53），就会超时或卡顿数秒。路由器的“上游 DNS”质量/路径不可靠 关闭代理的 DNS 项后，LAN 客户端的查询经由 dnsmasq →（默认）ISP DNS，容易被劫持/污染/限速；于是出现“路由器上查不到，直接问 1.1.1.1 能查到”的错觉。一句话：DNS 路径要么加密，要么把 TCP+UDP 53 都管好。否则就会时好时坏、时快时慢。整体思路让 DNS 专业的做 DNS：OpenWrt 上用 https-dns-proxy（DoH） 或同类（AdGuard Home/SmartDNS/dnsproxy）做加密上游；dnsmasq 只负责给 LAN 设备递送结果和缓存。让TPROXY专心做透明代理：关闭代理软件的 DNS 劫持/接管，避免与 53 端口抢占或双链路冲突。（可选，不建议）把 LAN 的 TCP+UDP 53 都“收拢”到路由器，避免客户端绕路直连外部 DNS。实施步骤1) 在 OpenWrt 安装并启用 DoHapk update # 注意，我采用的是OpenWrt snapshot版本，当前其他版本是opkg命令 apk add luci-i18n-https-dns-proxy-zh-cn luci-app-https-dns-proxy打开 LuCI → Services → HTTPS DNS Proxy，选择一两个上游（Cloudflare/DNSPod 等）。建议同时启用第二实例做备用端口（例如 5053/5054）。2) 让 dnsmasq 只走本地 DoH 端口 （默认不需要手动设置此项）uci set dhcp.@dnsmasq[0].noresolv='1' uci -q del dhcp.@dnsmasq[0].resolvfile uci -q del dhcp.@dnsmasq[0].server uci add_list dhcp.@dnsmasq[0].server='127.0.0.1#5053' uci add_list dhcp.@dnsmasq[0].server='127.0.0.1#5054' uci commit dhcp /etc/init.d/dnsmasq restart之后 LAN 客户端依旧只填路由器做 DNS（192.168.1.1），但路由器上游已经是加密的 DoH 了。3) 代理侧的设置保持 TPROXY 透明代理（转发流量）。关闭 DNS 劫持/防污染/接管 53（避免占用 53 端口或与 dnsmasq/DoH 双重解析）。（可选，不建议）如果你所在网络直连某个 DoH 端点不稳，将该端点域名加入 “走代理” 列表；同时排除本地回环与 代理自身流量，避免回环。4) （可选，不建议）防止终端绕过：拦截 LAN 的 TCP+UDP 53uci add firewall redirect uci set firewall.@redirect[-1].name='Intercept-DNS' uci set firewall.@redirect[-1].src='lan' uci set firewall.@redirect[-1].proto='tcpudp' uci set firewall.@redirect[-1].src_dport='53' uci set firewall.@redirect[-1].dest_ip='192.168.1.1' uci set firewall.@redirect[-1].dest_port='53' uci set firewall.@redirect[-1].target='DNAT' uci commit firewall /etc/init.d/firewall restart这样即使触发了 TCP 回退，…

Cudy TR3000 256M安装OpenWrt系统和救砖
type: item
date: 2025-08-24T05:12:00+00:00
description: Cudy之前推出的TR3000只有128M硬盘，稍微安装一些软件就不够用了。最近发布了256M硬盘的新版本，实际可用空间来到了190M，于是入手了一个，并安装了OpenWrt官方系统。OpenWrt 系统下载和注意事项自2025年9月26日起，OpenWrt 24.10.3 正式支持了 256MB 版本，以下删除线中的内容无须理会。由于256M版本还没有被OpenWrt正式支持，当前只有snapshot版本而不是特别稳定版，比如luci-app-statistics没有完美支持，但作为一个路由器的功能是正常且稳定的。 OpenWrt官方固件的下载，请参考树莓派4B安装OpenWrt旁路由并设置相关软件（保姆式教程） ，直接选择对应的固件即可。其中提到的自定义定制，尽量不要使用，尤其是默认IP的修改，确实需要的，可以在安装完系统之后，手动配置。 当前的固件名称为openwrt-24.10.3-mediatek-filogic-cudy_tr3000-256mb-v1-squashfs-sysupgrade.bin，名称仅供参考，以实际下载为准。准备事项在cudy的下载页面，下载更换系统的中间固件。解压后将获得cudy_tr3000-256mb-v1-sysupgrade.bin固件，一定要注意是带有256mb的版本。安装OpenWrt系统进入cudy的原厂系统，在高级设置中找到固件升级，选择上传刚才的cudy_tr3000-256mb-v1-sysupgrade.bin，系统安装完成之后，将自动重置，IP地址将变为192.168.1.1。进入中间件的系统，在系统中找到升级与备份，刷写新的固件中上传此前在OpenWrt官方下载的固件（openwrt-b6ae25713364-mediatek-filogic-cudy_tr3000-256mb-v1-squashfs-sysupgrade.bin）。等待系统重启且白色灯亮起即可使用192.168.1.1进入。救砖教程准备工作TR3000支持TFTP救砖，在设备无法正常启动时，将一个可用的固件文件传输到设备的内存中，然后由设备执行该文件以恢复其操作系统。需要一下程序和文件：TFTP程序，点此下载。官方固件，如下图，当前是2.3.9版本，一定要注意是256M版，下载链接也是上述的在cudy的下载页面。将程序和固件都放到一个文件夹中，并将固件重命名为recovery.bin。救砖恢复官方系统路由器断电。将电脑的其他网络关闭，使用网线将电脑和路由器的LAN口连接，并将电脑的IP地址设置为手动的192.168.1.88，掩码为255.255.255.0，网管和DNS都为192.168.1.1。按住路由器的reset按键，接上电源，TFTP将自动下载固件到路由器中。这时，松开按键即可，系统将在几分钟后恢复到cudy出厂系统。

友善R3S安装OpenWRT做主路由并设置相关软件
type: item
date: 2024-12-12T09:21:00+00:00
description: 之前在树莓派4B上安装OpenWrt作为旁路由，使用了三个月后逐渐发现一些问题，比如安卓手机因为IPv6 SLAAC和内置IPv6 DNS的缘故，导致代理和IPv6只能二选一，无法使用代理。在尝试了众多方法依旧无效之后，选择购买一个双网口软路由作为主路由，现有的路由器改作AP提供WiFi信号。软路由选择家用软路由首选arm盒子。虽然我有一个N100的双网口小主机，但是因为性能实在过剩，以及对All In One的不放心，并没有采用这台主机，包括裸机和PVE等虚拟机形式。期间，考虑了友善 nanoipi r3s，瑞莎 radxa E20C，H28K 和芒果派M28K等。友善 r3s 采用了瑞芯微RK3566的CPU，4核A55@1.8Ghz，性能比后面几个采用瑞芯微RK3528（4核A53）要好上一些。更重要的是，RK3566拥有OpenWRT的官方支持，而后面几个因为固件和驱动的问题，只被一些私有固件支持，比如istore os、qwrt等。个人是非常不建议这些追求稳定性和安全性的设备，使用闭源第三方的系统。此前，OpenWRT对R3S的支持，还处于snapshot的程度（类似于每日更新的测试版），正好最近推出了OpenWRT 24.10，正式支持R3S，于是直接入手买了一个。外观和配置购入了2+32G EMMC带CNC外壳版本，裸板的尺寸是57mm见方，加上外壳会稍大一圈，整体小巧厚重，质感很好。虽然提供MicroSD版本，但是考虑到EMMC的稳定性要更好一些，最终选择了EMMC。外壳是因为喜欢CNC的精巧，反正也只要20元，自己买亚克力制作的费用也差不多。内存是2GB的LPDDR4X，因为是长久使用，为了尽可能的延长使用寿命，所以买了大内存版本。2个1Gbps网口，一个是原生，另外一个是PCIe引出，比此前R2S的USB转网口，不仅稳定了，也减少了发热。USB3.0的接口，最大速率5Gbps，最大电流2A，可以外接一个2.5寸硬盘盒或者外接供电的3.5寸硬盘盒，不过我已经有了N100，就没有这个需求了。系统下载友善提供自己编译的OpenWRT，称为FriendlyWRT，包含完整的驱动和很多可能需要的功能。因为Openwrt官方已经提供了支持，所以直接使用原版了，在OpenWRT Selector中，右侧选择24.10，然后在左侧输入R3S找到FriendlyARM NanoPi R3S。具体操作参考此前的教程，专版构建完成之后，下载Sysupgrade(EXT4)版本。需要注意首次启动时运行的脚本（uci-defaults）中的lan_ip_address="192.168.1.1"，如果是光猫拨号，那么需要将IP地址改变，比如改成192.168.2.1，如果是这个软路由拨号，那么不需要更改。此外，有些时候，修改192.168.2.1会导致DHCP错误，比如Windows系统获取的IP变成169.254.x.x，这时就不要在构建的时候修改IP地址，而是等安装好了再手动修改。安装OpenWrt官方系统尝试了多种方法，以下方法虽然绕一些，但是最可靠也一定能成功的方法，首先使用友善提供的程序安装FriendlyWRT，然后在FriendlyWRT中刷写OpenWrt官方系统。下载友善镜像和驱动在官方提供的网盘 https://download.friendlyelec.com/NanoPiR3S 中下载下载带有usb字样的FriendlyWRT固件，2025年1月14日时为rk3566-usb-friendlywrt-23.05-20241112.zip下载友善提供的瑞芯驱动，当前是5.12版本DriverAssitant_v5.12.zip，解压后运行并安装驱动，如果后面连接的时候找不到设备，说明是这里没有安装好，需要卸载之后重新安装通过USB安装FriendlyWRT系统解压rk3566-usb-friendlywrt-23.05-20241112.zip，运行RKDevTool.exe程序按住Mask按键不放, 用USB C数据线, 将R3S与电脑进行连接, 保持按住Mask键, 状态灯亮起3秒后或者听到电脑提示音即可松开，程序将出现发现一个Maskrom设备字样，此处如果没有找到，就是上述的驱动没有准确安装点击写入镜像，稍等一会（1-3分钟），系统将自动安装并重启通过FriendlyWRT安装OpenWrt系统使用网线连接只R3S的LAN口，然后登录。在菜单栏中找到eMMC刷机助手，上传最开始准备的OpenWrt镜像，注意需要解压后上传img格式的等待系统刷写，完成后会提示。此时，先不要直接连接至光猫，先使用网线连接到LAN口，设置密码和IP等相关内容。随后需要对硬盘扩容，继续参考树莓派4B的教程即可。

光猫下路由器与电脑的互相访问：静态路由设置
type: item
date: 2024-08-29T04:06:42+00:00
description: 场景光猫下接了一台路由器和一台电脑，实现路由器下的设备能够访问电脑光猫拨号，IP地址为192.168.1.1OpenWRT路由器接入光猫获得IP地址192.168.1.2，自身的IP为192.168.2.1在OpenWRT路由器中，编辑路由表vi /etc/config/network，在最末尾的地方添加一个新的静态路由：config route option interface 'wan' # wan名称取决于设置 option target '192.168.1.0' option netmask '255.255.255.0' option gateway '192.168.1.2'保存后重启路由器，使用route命令查看，有如下内容即可：192.168.1.0 192.168.1.2 255.255.255.0 UG 0 0 0 eth1 # eth1名取决于设置如果是临时性的，下次重启就不需要，可以使用route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.2

OpenWRT安装samba实现共享文件
type: item
date: 2024-08-01T17:01:16+00:00
description: samba用于跨平台文件共享和传输，OpenWRT也提供LuCI，简简单单就能实现。安装opkg update # 更新 opkg install luci-app-samba4 # 安装samba第四版 opkg install uci-i18n-samba4-zh-cn # 安装中文设置共享的文件夹如果只有一块硬盘，直接新建一个文件夹，这个文件夹将用于储存共享的文件，例如mkdir -P /mnt/sharing，以后将文件储存/mnt/sharing文件夹即可。如果是挂载其他硬盘，需要安装文件系统：opkg install kmod-fs-ext4 kmod-fs-exfat kmod-fs-ntfs3 # 这三个分别是ext4格式，exfat格式和ntfs格式硬盘的读写，按需即可如果挂载是通过USB的(推荐至少要USB3.0接口)，还需要安装相关驱动和模块：opkg install kmod-usb3 kmod-usb-storage-uas usbutils block-mount mount-utils luci-app-hd-idle设置用户如果使用root用户设置root用户，将要求输入两次samba的访问密码。smbpasswd -a root # 为root创建samba服务的密码如果新建用户useradd sambauser # 添加名为sambauser的新用户 smbpasswd -a sambauser # 为sambauser创建samba服务的密码 chown -R sambauser:sambauser /mnt/sharing # 让sambauser获得文件夹权限设置samba照着下面设置即可，如果是低性能设备，如ARM CPU和低端x86-64/amd64 CPU，推荐开启强制同步 I/O。至于netBIOS，以下的关闭只是为了提高些许安全性，如果是安全的内网环境（如旁路由），可以不关闭（关闭了可能会导致某些性能下降和功能确实）。非常不推荐开启允许旧协议和身份验证，非常不安全！共享目录的名称随便写，但是不要有空格、中文、不常见的字符等。路径即刚才设置的/mnt/sharing。强制root如果勾选了，那将禁止root用户登录，所以如果刚才使用的是root用户，那这里就不应该勾选。允许用户就填写刚才设置的用户，如果是root那就写root，如果是其他的，比如sambauser，那就写sambauser。如果是root用户，使用的时候被拒绝访问，需要在编辑模板中，将invalid users = root注释掉，即变成#invalid users = root。

树莓派4B安装OpenWrt旁路由并设置相关软件（保姆式教程）
type: item
date: 2024-03-13T15:27:00+00:00
description: 闲置一个树莓派4B，正好之前的N1退休了，于是在给树莓派4B装上了OpenWrt，作为旁路由替代N1的工作。具体流程包括：OpenWRT系统安装1.1 下载定制版系统1.2 刷写镜像旁路由设置系统基础设置3.1 更新与安装必要软件包3.2 更换语言为中文分区扩容应用软件的设置5.1 新增软件源5.2 dnsmasq和软件配置1. OpenWRT系统安装1.1 下载定制版系统OpenWRT默认版本是没有开启WiFi的，首次连接需要网线。但是官网提供的固件自定义功能，可以直接开启WiFi功能。点击https://firmware-selector.openwrt.org，输入Raspberry Pi 4B/400/CM4 (64bit)，一定要是64位的，不然软件会不兼容，后续性能也会受影响。版本选择最新的稳定版，不要选择snapshot版本。点击“自定义”功能，然后点击右下角的“齿轮”，就会出现如图中第三步所示的内容。将wlan_name和wlan_password这两行前面的#号去掉。后面的root_password也相同操作，这是路由器的管理密码，需要自己输入密码，并且删去前面的#号。点击“请求构建”，后台会构建自定义系统，等工作完成，点击下载factory版本。1.2 刷写镜像使用树莓派官方提供的Raspberry Pi Imager将系统写入。教程很多，此处略过。2. OpenWRT系统安装使用树莓派的WiFi连接，在OpenWRT的后台中，“网络 > 接口”中选择Lan口进行修改。传输协议需要修改为静态地址而不是DHCPIP地址填任意一个主路由的内网IP，只要不是冲突的就可以了。比如主路由是192.168.1.1，没有其他设备使用192.168.1.100，那就填写192.168.1.100IPv4子网掩码不需要修改，使用默认的255.255.255.0IPv4网关为主路由IP地址，即上述的192.168.1.1IPv4广播地址不用修改DNS修改为主路由IP地址，即上述的192.168.1.1完成后，点击“保存并应用”，最好重启一下，然后插上网线，连接到主路由。其他设备使用的时候，将网关和DNS修改为192.168.1.100即可。如果不使用IPv6，要在“接口>lan>DHCP服务器>IPv6设置”中，将“RA服务”和“DHCPv6服务”都修改为禁用。同时，在“接口>DHCP/DNS>过滤器”中，勾选“过滤 IPv6 AAAA 记录”。3. 系统基础设置3.1 更新与安装必要软件包使用SSH进入OpenWRT进行更新而不是网页，网页有时候可能会因为网络波动而报错。执行以下命令，更新系统并安装必要软件：opkg update opkg install cfdisk fdisk block-mount3.2 更换语言为中文OpenWRT默认是英文，换成中文需要安装中文包，执行一下命令，然后重启系统“opkg install luci-i18n-base-zh-cn # 安装中文包 reboot # 重启系统4. 分区扩容默认的分区只有100MB左右的空间，无论SD卡多大，都会被浪费。而且100MB的空间，软件一多就不够用了。SSH中执行:fdisk -l将看到类似如下的内容：Device Boot Start End Sectors Size Id Type /dev/mmcblk0p1 * 65536 131071 65536 64M 83 Linux /dev/mmcblk0p2 196608 1425407 1228800 100M 83 Linux以上输出还有很多内容，找到SD卡的名字（盘符），比如上述的就是mmcblk0，执行分区和扩容操作：cfdisk /dev/mmcblk0找到空间最大的那个分区，一般是最后一个，选中这个分区然后依次执行如下操作：Free space > New > Primary > Write > 手动输入 yes > Exit (退出)再次执行fdisk -l程序，将看到新的分区：Device Boot Start End Sectors Size Id Type /dev/mmcblk0p1 * 65536 131071 65536 64M 83 Linux /dev/mmcblk0p2 196608 1425407 1228800 100M 83 Linux /dev/mmcblk0p3 1425408 61067263 59641856 29.3G 83 Linux对新分区进行格式化：mkfs.ext4 /dev/mmcblk0p3在系统的“系统 > 挂载点”里面，先点击“生成配置”，随后在下方的“挂载点”部分，选中刚才的新分区，然后点击新增。在弹出的页面中，启用此挂载点，UU…

【教程】小米路由器mini安装OpenWrt系统
type: item
date: 2017-09-03T12:27:00+00:00
description: OpenWrt是一个嵌入式的Linux发行版，具有高效、简洁、通用性良好等众多特点；可以实现包括代理，KMS，内网穿透等众多功能。目前，OpenWRT的最新版本是chaos calmer（15.05.1）。小米路由器mini使用的CPU是ramips架构的mt7620，在OpenWrt的官网上下载时一定要选择对应的系统，否则刷机会变砖。前期准备1.OpenWrt系统包：点击这里下载chaos calmer（15.05.1）版本，也可以点击这里自行在官网上查询最新版本。2.ssh工具软件，windows下建议使用xshell或者putty。3.scp软件，windows下建议使用winscp。刷机过程1.开启路由器的ssh功能，并活得root权限。去小米路由器的官网获得root密码和ssh软件包。注意！获得root意味着路由器会失去保修！如图所示，开启ssh需要开发版本的系统，可以去下载对应的开发版系统。刷入过程和图示的一模一样。2.当开发版系统和ssh包都已经刷入完成后，使用ssh工具连接到路由器中。并且使用scp将刚才下载的OpenWrt系统包上传到小米路由器中，建议将其放到/tmp文件夹中scp openwrt*.bin root@192.168.31.1:/tmp/ //Linux/Unix可以使用此命令上传包文件，windows请直接使用winscp。 然后就是直接刷机了，刷机过程中会交替出现w，不要被吓着了，w/e其实时代表writing/erasuring不是warning/error。在ssh中执行下面的命令mtd -r write /tmp/openwrt*.bin OS1 3.等一会当系统安装好并且重启后就会看到路由器上的黄灯亮了起来，表示系统正常运行，颜色是可以随意修改的。优化与安装软件1.OpenWrt默认是英文的界面，第一次使用需要登陆并设置root密码，这时候wifi是默认关闭的，所以必须使用网线才能连接。当设置好密码后，请使用ssh连接到路由器中（此时的ip是192.168.0.1）。执行下面的命令opkg update //更新系统源 opkg install luci-i18n-base-zh-cn //安装中文界面，如果无法更新，可以登陆路由器的网页控制中心进行安装 2.OpenWrt具有众多优秀的软件来实现各种便捷的服务，如果有需要可以留言。