本文基于恩山论坛Lean大神(L大)的OpenWrt固件源码进行编译,L大的GitHub地址如下:
https://github.com/coolsnowwolf/lede
之前我已经写了如何在Windows 10系统下安装VirtualBox虚拟机,并在其中搭建Ubuntu 18.04 server版。本系列文章将主要介绍如何在Ubuntu 18.04 server虚拟机中自编译OpenWrt固件。
在写这两篇文章之前,我已经完成了自己的第一版OpenWrt固件的编译。由于疫情,我在老家耽搁了很久,并未能使用。回到之后,我第一时间将自己编译的固件刷入路由器,稳定运行超过一个月后,才开始着手第二版固件的编译。第二版固件的编译完成于2020年06月07日,使用几天后没有发现问题,因此才撰写了本篇文章。
简而言之:L大的OpenWrt固件源码真是非常出色!!!
一、准备工作:
1、根据个人需求,提前列出需要编译的插件清单。恩山论坛上有大神提供了详细说明,链接:
https://www.right.com.cn/forum/thread-3682029-1-1.html
该清单最新更新于2020年05月08日(截止到本文发布时),不保证该大神会持续更新。
2、确保编译过程中的Ubuntu虚拟机可以科学上网,毕竟在下载程序和依赖包时可能会花费几个小时,所以一定要提前做好准备!
3、启动VirtualBox中的Ubuntu 18.04 server系统,并用Xshell连接上去。
二、简单问题解答:
1、为何称为简单问题?
答:因为我也是新手,对于复杂的问题可能无法解答!若遇到编译问题,请前往L大的GitHub提交问题。如果来询问我,我会仅仅建议你按照步骤重试。
2、主流的插件有哪些?
答:以下是常用插件的列表;(本文末尾提供了已编译好的固件下载链接)
`20230515更新:
1、主题皮肤:
luci-theme-argon……………………………………… Argon 主题
luci-theme-argon-mod………………………………. Argon Mod 主题
luci-theme-argonne………………………………….. Argonne kenzo 主题
luci-theme-atmaterial_new……………………… Atmaterial_new kenzo 主题
luci-theme-bootstrap……………………… 默认 Bootstrap 主题
luci-theme-design……………………………………. Design 主题
luci-theme-ifit……………………………………. Infit 主题
luci-theme-material………………………………… Material 主题
luci-theme-netgear………………………………….. Netgear 主题
luci-theme-opentopd………………….. LuCI luci-theme-opentopd 主题
luci-theme-tomato………………………………… Tomato new kenzo 主题
2、集成插件
luci-app-accesscontrol…………….. …………………访问时间控制
luci-app-adbyby-plus……………………………. 广告屏蔽大师Plus +
luci-app-adguardhome……………………………. AdGuardHome 去广告
luci-app-aliddns………………………….. LuCI 支持 aliddns
luci-app-aliyundrive-webdav………. LuCI 支持 aliyundrive-webdav
luci-app-argon-config……………………………….. Argon 主题设置
luci-app-argonne-config……………………………. Argonne 主题设置
luci-app-arpbind………………………………………..IP/MAC 绑定
luci-app-autoreboot……………………………………支持计划重启
luci-app-bypass……………………………………. Bypass 科学上网
….包含 Shadowsocks Libev 客户端
….包含 Shadowsocks Libev 服务器
….包含 Xray
….包含 Trojan
….包含 Hysteria
luci-app-ddns……………………………………….. 动态域名 DDNS
….ddns-scripts_aliyun……………….. AliYun 的 DDNS 扩展
….ddns-scripts_cloudflare.com-v4. CloudFlare.com API v4 (需要 cURL)
….ddns-scripts_dnspod………. Dnspod.com/Dnspod.cn 的 DDNS 扩展
….ddns-scripts_freedns_42_pl
….ddns-scripts_godaddy.com-v1…………… GoDaddy.com (需要 cURL)
….ddns-scripts_no-ip_com……………… No-IP.com 的 DDNS 扩展
….ddns-scripts_nsupdate…………. 使用 Bind nsupdate 的 DDNS 扩展
….ddns-scripts_route53-v1………………. Amazon AWS Route 53 API v1
luci-app-filetransfer……………………………………..文件传输
luci-app-firewall……………………………………….添加防火墙
luci-app-frpc…………………………………… 内网穿透 Frp 客户端
luci-app-ipsec-server……………………………… VPN 服务器 IPSec
luci-app-mwan3………………………………………. MWAN 负载均衡
luci-app-mwan3helper………………………………….MWAN3 分流助手
luci-app-netdata………………………………………实时负载监控
luci-app-nlbwmon…………………………………….网络带宽监视器
luci-app-openclash…………………. 运行在 OpenWrt 上的 Clash 代理客户端
luci-app-openvpn-server…………….. 易于使用的 OpenVPN 服务器 Web-UI
luci-app-passwall………………………………… PassWall 科学上网
….包含 Brook
….包含 Haproxy
….包含 Hysteria
….包含 Shadowsocks Libev 客户端
….包含 Shadowsocks Libev 服务器
….包含 Simple-Obfs (Shadowsocks 插件)
….包含 Trojan-Plus
….包含 V2ray
….包含 V2ray-Plugin (Shadowsocks 插件)
….包含 Xray
….包含 Xray-Plugin (Shadowsocks 插件)
luci-app-pptp-server……………………………….. VPN 服务器 PPTP
luci-app-ramfree………………………………………….释放内存
luci-app-samba4…………….. 网络共享 - Samba 4 SMB/CIFS 模块
luci-app-smartdns………………………………….. smartdns 防污染
luci-app-softethervpn………………….. SoftEther VPN 服务器 NAT穿透
luci-app-sqm………………………………….流量智能队列管理(QOS)
luci-app-ssr-plus………………………………….SSR 科学上网 Plus+
….包含 Shadowsocks Libev 客户端
….包含 Shadowsocks Libev 服务器
….包含 ChinaDNS-NG
….包含 Shadowsocks Simple Obfs 插件
….包含 Shadowsocks V2ray 插件
….包含 Xray
….包含 Trojan
luci-app-syncdial……………………………多拨虚拟 WAN(原 macvlan)
luci-app-unblockmusic…………………..解锁网易云音乐灰色歌曲 3合 1 新版本
….UnblockNeteaseMusic Golang 版本
….UnblockNeteaseMusic NodeJS 版本
luci-app-upnp…………………………通用即插即用 UPnP(端口自动转发)
luci-app-uugamebooster……………………………….. UU 网游加速器
luci-app-v2ray-server…………………. LuCI 支持 V2ray 服务器
luci-app-vlmcsd……………………………….KMS 服务器(激活工具)
luci-app-vsftpd………………………………………….FTP 服务器
luci-app-vssr……………………………. VSSR 科学上网(je 大佬插件)
….包含 Xray
….包含 Trojan
….包含 Shadowsocks Xray 插件
….包含 ShadowsocksR Libev 服务器
….包含 Hysteria
luci-app-webadmin………………………………………….Web 管理
luci-app-wol…………………………………………..WOL 网络唤醒
luci-app-xlnetacc…………………………………………迅雷快鸟
luci-app-zerotier…………………………………内网穿透 ZeroTier`
3、如果L大删除了SSR科学上网Plus+的源码,该怎么处理?
答:仔细阅读文章,你就能找到答案。
4、Ubuntu虚拟机启动后是命令行界面,为什么还需要使用Xshell?
答:本文重心在于编译,不是讨论为何使用某个工具。使用Xshell是因为我习惯用它作为SSH工具,但在实际操作中,进入menuconfig(系统与插件选择)界面后,出现了界面错位的问题,虽然不影响操作,但看起来不舒服。因此,我决定直接在VirtualBox使用Ubuntu虚拟机进行menuconfig配置。使用Putty连接时没有出现错位,所以我认为可能是Xshell的设置问题。与其花时间解决这个问题,不如直接跳过。本文旨在自编译OpenWrt固件,而非解决Xshell的各种问题。
5、为什么不直接使用Putty?
答:因为我不喜欢。
6、自编译L大的OpenWrt固件需要多长时间?
答:这与科学上网节点的网速以及宿主机的CPU性能有密切关系。网速决定更新系统和下载程序及依赖包的时间,CPU性能则决定编译的时长。我个人使用搬瓦工官方机场Just My Socks的洛杉矶 CN2 GIA线路,宿主机是八年前的I5笔记本,下载时间约为20分钟,首次编译耗时150分钟。
7、如何确保全局科学上网?
答:你能看到这儿,说明你已经有软路由,直接在路由器上将宿主机的所有连接限制在全局模式下即可。无需过于担心Ubuntu系统通过宿主机的shadowsocks、v2ray或trojan代理,也无需关注使用sstap、Proxifier、Sockscap64、Netch、Mellow等方法使VirtualBox走全局。
8、能否介绍一下上述客户端的下载及使用方式?
答:不想说,建议自行搜索。
9、能否告知搬瓦工机场的购买与使用方法?
答:当然可以!告诉你,这个机场有洛杉矶CN2 GIA节点和东京 CN2 GIA & NTT节点,即买即用,IP被封后会自动更换IP,不再需要担心节点问题。Just My Socks推荐方案如下:
10、还有什么其他问题吗?
答:应该没有了,我只是凑个整数。
听到这儿,你是不是觉得我在开玩笑?几千字下来,怎么能不提L大的OpenWrt源码编译固件呢?别着急,这篇文章主要是关于注意事项,如果你不先阅读,你可能会掉入各种坑里。再者,内容实在太多,一篇文章写不完,具体的编译步骤会在后面的文章中提供。
什么?你不想继续看文章了?那我直接分享我编译好的固件给你可以吗?真想要?好的,集成了常用插件(详细见本文简单问题2)的固件下载链接在下方;请先查看固件目录,再决定下载哪个版本。
固件功能预览请见
博主自编译常规插件集成及个人精简版下载链接如下:
鉴于有网友反馈百度网盘速度不佳,启用新的下载站(测试中)
固件的默认IP:192.168.1.1,用户名:root,密码:password
重要提醒,博主并不是每个版本都亲自使用过,请务必在虚拟机中检查固件是否存在BUG。
更新:本站自编译的固件提供四个版本
`openwrt-x86-64-generic-squashfs-combined.img———适用于BIOS启动的物理机
openwrt-x86-64-generic-squashfs-combined.vmdk——适用于BIOS启动的虚拟机
openwrt-x86-64-generic-squashfs-combined-efi.img———适用于UEFI启动的物理机
openwrt-x86-64-generic-squashfs-combined-efi.vmdk——适用于UEFI启动的虚拟机`
博主自用精简版集成插件如下:
`更新:
1、主题皮肤:
luci-theme-bootstrap……………………… 默认 Bootstrap 主题
2、集成插件
luci-app-accesscontrol…………….. LuCI 访问控制配置
luci-app-adbyby-plus……………………….. LuCI 支持 Adbyby
luci-app-arpbind……………………………………… ARP 绑定
luci-app-autoreboot……………….. LuCI 支持计划重启
luci-app-ddns……… LuCI 支持动态 DNS 客户端(ddns-scripts)
….ddns-scripts_aliyun…………………… DDNS 扩展 AliYun.com
….ddns-scripts_cloudflare.com-v4….. CloudFlare.com API v4 (需要 cURL)
….ddns-scripts_dnspod………….. DDNS 扩展 Dnspod.com/Dnspod.cn
….ddns-scripts_freedns_42_pl
….ddns-scripts_godaddy.com-v1………………. GoDaddy.com (需要 cURL)
….ddns-scripts_no-ip_com…………………. DDNS 扩展 No-IP.com
….ddns-scripts_nsupdate…………….. 使用 Bind nsupdate 的 DDNS 扩展
….ddns-scripts_route53-v1………………….. Amazon AWS Route 53 API v1
luci-app-filetransfer……………………… LuCI 页面用于 IPK 上传
luci-app-firewall……………. Firewall 和端口转发应用
luci-app-ramfree…………………………………. luci-app-ramfree
luci-app-samba4…………….. 网络共享 - Samba 4 SMB/CIFS 模块
luci-app-ssr-plus………………………………….SSR 科学上网 Plus+
….包含 Shadowsocks Libev 客户端
….包含 Shadowsocks Libev 服务器
….包含 Xray
luci-app-upnp…………….. 通用即插即用配置模块`
本文完结。