sunnysab.cn Open in urlscan Pro
150.138.110.41  Public Scan

URL: https://sunnysab.cn/2022/06/24/Build-OpenWrt/
Submission: On June 19 via api from US — Scanned from DE

Form analysis 0 forms found in the DOM

Text Content

CODING 的痕迹

一位互联网奔跑者的网上日记


 * 首页
 * 标签45
 * 分类20
 * 归档60

0%


OPENWRT (LEDE) 编译记录

发表于 2022-06-24 分类于 随笔
本文字数: 3.3k 阅读时长 ≈ 3 分钟

月初的时候组建了一台 All-in-One,想在里面装一台软路由,于是开始了漫漫选型与试错之旅。尝试了 OpenWrt 官方 21、22
版本,恩山论坛网友修改过的两个版本、OPNsense、LEDE 自动编译版本,最终选择了自编译 lean 发布的 LEDE。


踩坑史

下面简要说明一下选择的原因和遇到的问题。

 * 官方 OpenWrt 发行版
   官方的发行版最为精简,个人觉得除了插件需要安装外,很好用、放心,实测可以跑到最大带宽。主要问题:
   
   1. 安装完后默认可用空间大小不到 100M,如果需要安装 smartdns、AdGuardHome
      及其他网络插件,将导致可用空间非常有限,并出现重启系统丢失的情况。
   2. 在安装一些网络插件时,由于系统版本过新/旧,导致 opkg 报错提示找不到依赖 libubus20220228 (openwrt 22 默认带
      202206 的版本,而 openwrt 21 带有 2021 的版本,此时软件源中移除了 20220228 版本)。
   3. 在使用一些网络插件时,不知道是系统还是插件原因, dns 相关设置有严重 bug 导致无法使用。
   
   另外还有一个小坑:如果给软路由分配了多网卡,那么在你调整网卡后,也需要适当修改一下对应网卡的防火墙区域。如果没有正确地配置 LAN 和 WAN
   防火墙区域,将导致 LAN 口客户端无法访问网络。

 * 网友发布版本
   这一部分中我使用过 koolshare 和 lusty 编译的版本。个人感觉问题如下:
   
   1. 由于不支持定制,两个版本均存在很多不需要的功能。作为软路由系统,界面略有花哨,尤其是 koolshare
      使用的橙色+黑色主题,使用起来不方便。当然,这一点属于个人喜好。
   2. lusty 版本无法跑满带宽。
   3. lusty 版本上面的 l2tp 在 windows 10 下可以正常连接,但 Android 下遇到了困难。可能是我配置问题。

 * OPNsense
   OPNsense 是一款基于 FreeBSD 内核的企业级防火墙系统。自己对 FreeBSD 简洁、低占用的印象很好,加之曾经使用过 pfSense,
   在网上比较了 pfSense 和 OPNsense 之后选择了它。其优点是作为企业级系统,在“计算机网络学习”这一角度看功能全面,甚至有一些第三方软件(如
   iperf3、speedtest)的 Web UI 集成,但缺点也较为明显,不支持一些中国特色的网络工具。
   
   OPNsense 总体资源占用比 OpenWrt 略大:CPU 占用在 30% 左右,内存占用至少在 300M,开启 IDS 后内存占用逼近
   1G。相比之下,OpenWrt 内存占用在 100M 左右,CPU 使用率也很低。我比较喜欢的是它的防火墙支持实时预览 ACCEPT 和 DROP
   的包的概要,有利于快速调整防火墙设置。尽管如此,配置它的防火墙仍然常让人摸不着头脑。


选择 LEDE

LEDE 是国人 lean 基于 OpenWrt 开发的、最后又合并到 OpenWrt 主线的版本,现在统一使用 OpenWrt
的名称。国内很多网友生成的固件都是基于它的代码制作的,因而它也最接近原生。我先开始使用了 LEDE 仓库 Release 的版本,感觉这就是我理想的
OpenWrt 发行版!但该版本缺少 IPv6 支持,后来便起了自己编译的念头。


编译步骤

源仓库 中有着完整的编译说明,在这一过程中只要网络通常,不大会出现莫名其妙的问题。lean 使用的是 Debian/Ubuntu,而我是在 Manjaro
上编译的,因此需要安装相关编译环境(issue 2309):

1


yay -S openwrt-devel




接着可以按照官方的说明,克隆代码:

1
2


git clone https://github.com/coolsnowwolf/lede
cd lede




(可选)注意,如果需要集成一些官方源中没有的软件,克隆仓库后应当修改根目录下的 feeds.conf.default,在其后添加一行:

1


src-git helloworld https://github.com/fw876/helloworld




拉取软件源并配置:

1
2
3


./scripts/feeds update -a
./scripts/feeds install -a
make menuconfig




(强烈建议)(issue 3797)如果需要完整的 IPv6 支持,请在 make menuconfig 时,选择 Extra packages —>
ipv6helper,此时下面几项也会自动选择上:

 * Network —> odhcp6c
 * Network —> odhcpd-ipv6only
 * LuCI —> Protocols —> luci-proto-ipv6
 * LuCI —> Protocols —> luci-proto-ppp

接着就可以编译了:

1
2


make download -j8
make V=s -j1




官方编译说明上建议第一次编译时使用单线程(即 -j1),我在编译时直接使用了全部 16 个核心,好像问题也不大。 download
过程受网络影响较大,编译过程在我的机器上花费了约半小时,二次编译时只需 3 分钟左右。


导入 PVE

将 bin/targets/x86/64/openwrt-x86-64-generic-squashfs-combined-efi.img 上传到 PVE
中,使用 importdisk 导入磁盘即可,存储名称一般为 local-zfs 或 local-lvm:

1


qm importdisk 虚拟机号 /var/lib/vz/template/iso/openwrt-x86-64-generic-squashfs-combined-efi.img 存储名称




和其他编译版本一样,默认用户名/密码为 root/password, IP 地址 192.168.1.1, 可在 /etc/config/network
中修改。

(建议)如果官方软件源不能满足自己的要求,可以在 feeds 设置中添加一个第三方软件源:src/gz openwrt_kiddin9
https://op.supes.top/packages/x86_64。由于该源为个人用户创立,使用时需要删除 option check_signature
以关闭签名验证。


后话

偶然发现在 2019 年底的时候,lean 发了一个 issue,其中是这样写的:

> 终归到底,这个又是一个失败的项目而已 #2648
> 
> 我一直想象的那种人人为我,我为人人,大家一起来维护一个项目的景象始终没有出现,也没有出现的迹象。
> 
> 维护这个项目的过程中,主动分享的同学并不多。很多来汇报问题的人是以一种小白求大大免费解决问题,解决完就走人的方式来的。
> 
> 然而既不愿提供足够的信息,截图日志什么都没有,也不愿写一些自己尝试的过程供后人参考。
> 
> issues 那边,一堆随随便便的一句话问题,却想着别人认认真真的去帮他分析解决的,比比皆是。
> 
> 退一步来说,就算有些 issue 是很简单的问题,5000 多个 fork ,却也没有多少人愿意回复下,就好像这个完全就是作者一个人服务所有人的项目一样。
> 
> 更别提pulls 区那边的一堆垃圾 yml 了,关都关不过来。
> 
> 互帮互助的气氛就是搞不起来。对比下国外的社区差好远。
> 
> 国内的开源环境到底是什么样呢?他们使用现成的开源的成果,却很少有人遵守开源协议。
> 
> 更有甚者,毫无贡献、拿来就用,然后宣传开源后就属于全人类的了,然后说是自己的成果(即使不是公开说出来,也是暗示性的影响。为数不多的人遵守 GPL
> ,更别提哪怕在 Credit 注明一下来源的人),甚至反骂开源的作者。
> 
> 这个项目已经让我觉得越来越无趣,罢了吧。

庆幸作者至今仍然坚持了下来。看到这么好的开源项目的作者被逼到如此境地,不禁有些难过。其实,专业刷路由器固件的同学恐怕也只是一少部分,更多的人在实现功能后便“撤离”也无可厚非。在这个
issue 下,一些评论建议区分专业用户和非专业用户,便是一个不错的思路。

其实 lede 项目本身,乃至这个仓库,知道的人还是有限的。仅浏览一下恩山上的帖子,红火的往往是各路“大神”基于 lede
所做的固件,而甚至有些还对用户收费——这也难怪 lean 会生气。

感叹自己错过了手机和路由器刷机最火的时候,谨纪念第一次编译路由器固件。

 * 本文作者: sunnysab
 * 本文链接: https://sunnysab.cn/2022/06/24/Build-OpenWrt/
 * 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!

欢迎关注我的其它发布渠道

RSS
# 随笔 # OpenWrt
使用 WireGuard 连接校园网
PDF 去水印

 * 文章目录
 * 站点概览

 1. 1. 踩坑史
 2. 2. 选择 LEDE
    1. 2.1. 编译步骤
    2. 2.2. 导入 PVE
 3. 3. 后话

sunnysab

诗酒趁年华
60 日志
20 分类
45 标签
GitHub E-Mail Weibo
友情链接
 * Ne0AC2G
 * Peanuts
 * Zhangzqs
 * Jimyag
 * 晚风吹行舟
 * 自由灵的梦境
 * 泠泫凝的异次元空间


沪ICP备20002980号
© 2020 – 2022 sunnysab | 247k | 3:45
由 Hexo & NexT.Gemini 强力驱动