惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
云风的 BLOG
云风的 BLOG
IT之家
IT之家
C
Check Point Blog
T
The Blog of Author Tim Ferriss
S
SegmentFault 最新的问题
人人都是产品经理
人人都是产品经理
H
Hackread – Cybersecurity News, Data Breaches, AI and More
美团技术团队
M
MIT News - Artificial intelligence
Jina AI
Jina AI
Blog — PlanetScale
Blog — PlanetScale
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Microsoft Security Blog
Microsoft Security Blog
G
Google Developers Blog
F
Fortinet All Blogs
V
Visual Studio Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
T
Tailwind CSS Blog
Hugging Face - Blog
Hugging Face - Blog
MyScale Blog
MyScale Blog
爱范儿
爱范儿
The Cloudflare Blog
博客园 - 三生石上(FineUI控件)

任霏博客

我将关闭服务器:AI彻底掐死了奄奄一息的个人博客 - 博客文章 - 任霏的个人博客网站 Vibe Coding 实现本地模型 Token 自由 IntelliJ IDEA + LM Studio + LM Link + Continue - 博客文章 - 任霏的个人博客网站 1Password涨价后,别急着退订1Password,这个操作能帮你省25% - 博客文章 - 任霏的个人博客网站 我,吃饱了撑的注册了个域名,Cloudflare账号没了,不建议将域名放在Cloudflare - 博客文章 - 任霏的个人博客网站 临时邮箱:保护隐私与免骚扰的新方式 - 博客文章 - 任霏的个人博客网站 价值4100万美元SOL被盗SwissBorg在Solana上遭遇安全事件超200万枚ETH排队退出质押 - 博客文章 - 任霏的个人博客网站 注意 Web3 钱包遭遇 NPM 超大规模供应链攻击投毒事件 - 博客文章 - 任霏的个人博客网站 我受到以太坊ERC-20假代币地址投毒攻击记录一下大家谨防上当受骗 - 博客文章 - 任霏的个人博客网站 在2025年使用显卡 NVIDIA RTX 2080 Ti 挖矿收益记录和分析还能不能挖矿 - 博客文章 - 任霏的个人博客网站 分享我是如何成功戒烟的经验(包含失败的经验) - 博客文章 - 任霏的个人博客网站 在 OpenWRT 中配置 PassWall2 插件的教程记录 - 博客文章 - 任霏的个人博客网站 Office Professional Plus 2019 VL 版下载与 KMS 激活 - 博客文章 - 任霏的个人博客网站 最近几天我的 CDN 流量受到来自电信[山东烟台]、[江苏扬州]两地家庭宽带的攻击 - 博客文章 - 任霏的个人博客网站 自建AI服务器使用PVE配置显卡直通虚拟机安装驱动、CUDA和cuDNN运行LLM大模型进行AI炼丹 - 博客文章 - 任霏的个人博客网站 各代英特尔Intel芯片组主板适配兼容的CPU和DDR内存数据统计 - 博客文章 - 任霏的个人博客网站 GitLab Global 国际站将在60天内删除中国大陆、香港、澳门地区的账号 - 博客文章 - 任霏的个人博客网站 Github Copilot Free 开放免费版所有人均可使用 OpenAI GPT-4o、Anthropic Claude 3.5 AI 代码生成服务 - 博客文章 - 任霏的个人博客网站 Cloudflare 更新了订阅协议明确禁止优选IP和搭建梯子的行为 - 博客文章 - 任霏的个人博客网站 Linux(systemd)手动离线安装二进制(binary)MairaDB数据库指定版本 - 博客文章 - 任霏的个人博客网站 流程引擎 Flowable/Activiti 无法启动报错:liquibase - Waiting for changelog lock.... - 博客文章 - 任霏的个人博客网站 Spring Boot 全局异常捕获 ControllerAdvice 无法捕获 过滤器(Filter)和拦截器(Interceptor)中的异常 - 博客文章 - 任霏的个人博客网站 Freenom 收回了全部免费域名(.tk/.cf/.gq/.ga/.ml) - 博客文章 - 任霏的个人博客网站 Alibaba Druid 数据库连接池 takeLast() AQS 死锁导致程序无响应 - 博客文章 - 任霏的个人博客网站 你的网站加入 HSTS preload 预加载列表了吗 - 博客文章 - 任霏的个人博客网站 我的博客网站接入使用 Cloudflare 的架构分享 - 博客文章 - 任霏的个人博客网站 在 Ubuntu 上的 Nginx 高并发配置实践 - 博客文章 - 任霏的个人博客网站 技术分析黑客敲诈勒索站长的新手法百度对此也无能为力 - 博客文章 - 任霏的个人博客网站 百度站长平台快速收录权限和sitemap提交权限被全部收回 - 博客文章 - 任霏的个人博客网站 极狐 GitLab 免费时代结束不升级付费账号将禁止登陆 - 博客文章 - 任霏的个人博客网站 免费.ml域名10年委托合同到期被马里共和国收回域名经营权 - 博客文章 - 任霏的个人博客网站
软路由 OpenWRT(LEDE)自己编译教程记录 - 博客文章 - 任霏...
任霏 · 2021-07-09 · via 任霏博客

最近博主买了一个小工控机,开始玩软路由,顺便将我的经历记录下来,分享给后人避免我走过的坑,本篇文章主要写自己编译OpenWRT(LEDE),后面我还会写一个 利用 Github 的 Actions Workflows 进行自动化的编译教程和 x86 软路由系统安装的教程。

先展示一下我的硬件,是从咸鱼上收的一台工控机,并没有任何品牌,J1900 的 CPU,板载 4G 内存,硬盘是个 32G 的 msata 硬盘,双网口,就是下面的小家伙:

IMG_2992 copy.jpg

软路由系统

说到为什么要玩软路由,除了硬件性能以外,必须得是丰富的插件,让路由器有丰富的功能,软件才是软路由的灵魂!现在软路由系统主流的分为两大派:爱快和OpenWRT,爱快网络速度更快限流比较好,OpenWRT插件多功能多,有的人两个都装了,我只装了一个OpenWRT,因为我不用限流也没有多 WAN 口多加运营商接入。

OpenWRT和LEDE

在2016年,从 OpenWRT 中分离出一个分支子项目 LEDE,2018年又合并回 OpenWRT,现在基本没啥区别,所以不用纠结 LEDE 不是纯正的 OpenWRT。

我选用了 Lean 的 LEDE,也就是网上常说的 L大 的项目,里面加入了很多功能和插件,更适合中国人使用,Lean 的 LEDE 仓库地址:https://github.com/coolsnowwolf/lede

修改源码与订阅

既然选择了自己编译,肯定要进行 DIY 定制,在里面加入自己想要的功能,所以我 Fork 了 Lean 的仓库到我自己的:https://github.com/renfei/lede,然后添加自己想要的插件源代码,因为有一些插件是无法在国内公开的,所以需要自己找然后自己加进去再编译,有两种方式:

  • 使用 feeds.conf.default 文件订阅别人的仓库,这个最方便,每次编译时就会去拉取订阅的仓库最新的代码进行编译。

  • 在文件夹 package 中加入源代码,例如 package/lean 里面就是各种插件的源代码。

根据自己的需要添加和修改一些插件,就形成了属于你的软路由系统。

编译环境准备

首先,在编译过程中会下载境外的代码仓库,所以你懂得,我选择了新加坡的服务器,因为编译时间非常长,需要几个小时,所以我选择购买新加坡的服务器进行编译,这样会快一些,并且不会因为网络问题导致依赖下载失败编译出错。服务器我选择了4核心8G内存,硬盘选择了50G容量,内存过小或硬盘过小也会导致编译失败,下面就是我购买的服务器:

WX20210706-222652.png

其次,操作系统要选择 Linux,推荐 Ubuntu 20.04 LTS x64,我也是用这个操作系统演示的。

开始编译

注意事项:要使用普通用户执行,不要使用 root 账户!否则会出现异常和失败。

首先我们需要更新和安装依赖的环境,使用如下命令:

sudo apt-get update
sudo apt-get -y install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch python3 python2.7 unzip zlib1g-dev lib32gcc1 libc6-dev-i386 subversion flex uglifyjs git-core gcc-multilib p7zip p7zip-full msmtp libssl-dev texinfo libglib2.0-dev xmlto qemu-utils upx libelf-dev autoconf automake libtool autopoint device-tree-compiler g++-multilib antlr3 gperf wget curl swig rsync

Screen Shot 2021-07-06 at 22.04.05.png

Screen Shot 2021-07-06 at 22.04.20.png

然后克隆我们的项目,使用如下命令:

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

克隆以后,我们进入项目:

cd lede

然后执行订阅的更新与安装,使用如下命令:

./scripts/feeds update -a && ./scripts/feeds install -a

Screen Shot 2021-07-06 at 22.06.07.png

使用下面的命令生成默认的配置文件:

make defconfig

Screen Shot 2021-07-06 at 22.09.30.png

使用下面的命令进入图形化配置:

make menuconfig
  • Target System:编译目标的架构,我这里编译的是 x86 架构的,你需要选择你自己的。

  • Subtarget:编译目标架构的子级,因为同一个架构还对应很多子级,比如我这里是 x86/64 ,x86架构64位的。

最主要的是 LuCI,我们进这里面选择要编译的插件

Screen Shot 2021-07-06 at 22.11.21.png

然后进入 Application,这里面就是插件了

Screen Shot 2021-07-06 at 22.11.28.png

我们看到插件前面有个尖括号,里面是星号<>的就是直接编译进系统,如果是大写字母的就是只编译成ipk包而不直接编译进系统,这个根据自己的想法选择。如果想直接编译进系统就按字母 y 选择成星号<>,如果只编译成ipk包就按字母 m 选择成大写字母,再按一遍就是取消选择。

Screen Shot 2021-07-06 at 22.11.39.png

这里有个大坑,最好不要无脑全选,因为有的插件相互依赖,有的相互排斥,全选必定编译失败,直选你需要的就好,不要贪心哦。

然后使用左右键选择,再回车,保存 .config 配置文件,再选择 一路退出到黑屏界面。

Screen Shot 2021-07-06 at 22.15.57.png

执行下面的命令开始下载依赖:

make -j8 download V=s

Screen Shot 2021-07-06 at 22.16.12.png

这里就体现出境外服务器的好处了,下载又快又不会失败,这步需要一些时间,不要退出或关闭命令行界面,否则就会停止,如果担心中途会断开,我们可以使用下面的命令让他后台运行:

nohup make -j8 download V=s > make.log & tail -f make.log

等日志不再滚动,我们就可以执行编译了,编译这一步需要好几个小时,所以必须得后台运行,并且建议单线程编译,所以是 -j1,命令如下:

nohup make -j1 V=s > make.log & tail -f make.log

Screen Shot 2021-07-06 at 22.45.07.png

经过N个小时的等待,日志不再滚动,我们就编译完成了,编译结果在 bin/targets 下面,我编译的是 x86_64 的所以编译好的系统文件路径是 bin/targets/x86/64,里面有多种格式。

编译好的插件包在 bin/packages 下面,我编译的是 x86_64 的所以编译好的系统文件路径是 bin/packages/x86_64,里面就是我们订阅的插件库,编译好的 ipk 包了。

Screen Shot 2021-07-07 at 13.31.21.png