严格按照 Github 主页 README.md 给出的条件进行环境配置。
make clean
重新编译。还可以执行 make menuconfig
去掉这个 package 编译一次,只需要几分钟,然后重新选上再编译一次就行了。make dir
删除相应的内容,但它往往只报错,并不显示出错的模块。如果配置搞乱了,不要试图改回来,最方便的方法是重新编译: make clean
清除之前编译的可执行文件及配置文件,比如 bin 路径下面的文件,config 配置文件不会清除。或者用 make distclean
清除所有生成的文件。它连 feeds 也会干掉,只留下 git clone
完成时候的初始状态。
内核版本一般不用动,用默认的就行。但确实要动的话,首先需要确定到底要给哪个平台的固件改内核版本。
比如要给 x86 平台的固件修改内核版本,只要在 lede/target/linux/x86/Makefile 文件中把 KERNEL_PATCHVER 的值改成对应的内核版本即可。
通常,源代码会包含多个版本的内核: 注意到 lede/target/linux/ 路径下会有名为 config-<kernel_version>
的配置文件,这就是针对版本号为 <kernel_version>
的内核的编译选项。
内核版本号也只能在源码包含的内核版本中选择。
因为众所周知的原因,Lean 删除了相关插件的 feed。需要用户自己加回来:
# 进入源代码根目录开始操作 (就是 lean 目录)
# 删除 feeds.conf.default 文件中包含 hwlloworld 的行
sed -i "/helloworld/d" "feeds.conf.default"
# 添加对应的 feed
echo "src-git helloworld https://github.com/fw876/helloworld.git" >> "feeds.conf.default"
# 然后从上游拉取代码
./scripts/feeds update helloworld
./scripts/feeds install -a -f -p helloworld
要删除这个 feed 的话:
sed -i "/helloworld/d" "feeds.conf.default"
./scripts/feeds clean
./scripts/feeds update -a
./scripts/feeds install -a
执行 make menuconfig
后,可以在 LuCI -> Applications 中的 ssrp 条目上选择要使用的 v2ray 内核,有 v2ray 和 xray 两个可选。下面讲怎么更改内核版本,以 xray 内核为例。
在从上游拉取代码之后,feeds.conf.default 中指定的插件会出现在 lede/feeds 目录下。经过上面的操作,会多一个 lede/feeds/helloworld 目录,这个目录就是魔法上网相关插件的目录。
可以在 lede/feeds/helloworld/xray-core 目录下找到一个名为 "Makefile" 的文件,这个文件描述了要编译进 ssrp 的 xray 内核的相关信息。
如果需要指定 xray 内核版本的话,需要改 "Makefile" 文件的 2 个地方:
给个例子,现在 lede/feeds/helloworld/xray-core/Makefile 的头几行被改成了这样:
...
PKG_NAME:=Xray-core
PKG_VERSION:=1.5.5
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/XTLS/Xray-core/tar.gz/v$(PKG_VERSION)?
PKG_HASH:=3f8d04fef82a922c83bab43cac6c86a76386cf195eb510ccf1cc175982693893
...
此时需要用 PKG_VERSION 和 PKG_SOURCE_URL 两个变量组合出下载链接,组合结果是 https://codeload.github.com/XTLS/Xray-core/tar.gz/v1.5.5 。用这个链接下载文件到本地然后执行 sha256sum <tar.gz-file-name>
得到的结果就是 PKG_HASH 变量的值。
如果编译出的系统最终会跑在虚拟机里,比如 Proxmox 或者 ESXi,就需要在编译时加入相关的包。
执行 make menuconfig
后:
执行 make menuconfig
后, Utilities -> Disc 中可以自行选择需要的工具。
luci-app-accesscontrol 是用来限制设备的上网时间的,用 MAC 地址区分设备。
luci-app-adbyby-plux 是用来去广告的。如果有专门的网关设备的话,推荐把去广告的部分放在网关上。以降低这种不带硬件转发的设备的负载。
执行 make menuconfig
后:
如果选中了 ipv6healper 那么以下内容会被自动选中:
执行 make menuconfig
后: Utilities -> coremark 取消选择
但是去掉之后系统日志会报错:
Fri Jun 24 22:06:59 2022 daemon.err uhttpd[2287]: cat: can't open '/etc/bench.log': No such file or directory
Fri Jun 24 22:06:59 2022 daemon.err uhttpd[2287]: cat: can't open '/etc/bench.log': No such file or directory
Fri Jun 24 22:08:09 2022 daemon.err uhttpd[2287]: cat: can't open '/etc/bench.log': No such file or directory
ssh 连到 OpenWrt 之后执行下面的命令即可解决日志报错问题:
touch /etc/bench.log
coremark >> /etc/bench.log
去掉 coremark 主要是为那些散热不好的设备考虑。如果有这个 app 的话,系统会找个时间自动开始跑分,这个操作会占满 CPU,有些散热不好的设备还没跑完分就暴毙了。如果机器的散热没问题的话这个包可以留着。
执行 make menuconfig
后:
执行 make menuconfig
后:
执行 make menuconfig
后,进入 Target Images:
在 lede/package/lean/default-settings/files/zzz-default-settings 文件的第 49 行左右找到:
echo "DISTRIB_REVISION='R22.3.13'"
把它改成:
echo "DISTRIB_REVISION='R22.3.13 Compiled By Shouzhong Li'"
编译出固件以后会在 web ui 的底部显示:
Powered by LuCI Master (git-22.161.56906-efa5cfe) / OpenWrt R22.6.16 Compiled by Shouzhong Li
web ui 中的 状态 -> 总览 的 固件版本 也会显示:
OpenWrt R22.6.16 Compiled by Shouzhong Li / LuCI Master (git-22.161.56906-efa5cfe)
打开 /etc/config/network 网络配置文件,可以看到配置了静态 IP 的接口上没有配网关和 dns,写上以后 /etc/init.d/network restart
重启一下网络就行了。
option ipaddr '192.168.2.1'
option netmask '255.255.255.0'
option gateway '192.168.2.3'
option dns '192.168.2.10'
旧版 OpenWrt 在 LuCI -> Applications 里能找到 luci-app-turboacc 这个 app。
但是后来 luci-app-turboacc 这个 app 只有在选中 Include Flow Offload 之后才会出现。
除此之外 Include DNSForwarder 和 Include DNSProxy 也是旧 luci-app-turboacc 的部分,需要自行选中。
LuCI —> Applications —> luci-app-accesscontrol #访问时间控制
LuCI —> Applications —> luci-app-acme #ACME自动化证书管理环境
LuCI —> Applications —> luci-app-adblock #ADB广告过滤
LuCI —> Applications —> luci-app-adbyby-plus #广告屏蔽大师Plus +
LuCI —> Applications —> luci-app-advanced-reboot #Linksys高级重启
LuCI —> Applications —> luci-app-ahcp #支持AHCPd
LuCI —> Applications —> luci-app-airplay2 #AirPlay音乐推流 (安卓 + IOS)
LuCI —> Applications —> luci-app-amule #aMule下载工具
LuCI —> Applications —> luci-app-aria2 # Aria2下载工具
LuCI —> Applications —> luci-app-arpbind #IP/MAC绑定
LuCI —> Applications —> luci-app-asterisk #支持Asterisk电话服务器
LuCI —> Applications —> luci-app-attendedsysupgrade #固件更新升级相关
LuCI —> Applications —> luci-app-autoreboot #支持计划重启
LuCI —> Applications —> luci-app-baidupcs-web #百度网盘管理
LuCI —> Applications —> luci-app-bcp38 #BCP38网络入口过滤 (不确定)
LuCI —> Applications —> luci-app-bird1-ipv4 #对Bird1-ipv4的支持
LuCI —> Applications —> luci-app-bird1-ipv6 #对Bird1-ipv6的支持
LuCI —> Applications —> luci-app-bmx6 #BMX6路由协议
LuCI —> Applications —> luci-app-bmx7 #BMX7路由协议
LuCI —> Applications —> luci-app-cifs-mount #CIFS/SMB挂载设置
LuCI —> Applications —> luci-app-cifsd #CIFS/SMB网络共享
LuCI —> Applications —> luci-app-cjdns #加密IPV6网络相关
LuCI —> Applications —> luci-app-clamav #ClamAV杀毒软件
LuCI —> Applications —> luci-app-commands #Shell命令模块
LuCI —> Applications —> luci-app-cshark #CloudShark捕获工具
LuCI —> Applications —> luci-app-ddns #动态域名 DNS (集成阿里DDNS客户端)
LuCI —> Applications —> luci-app-diag-core #core诊断工具
LuCI —> Applications —> luci-app-diskman #磁盘管理工具
—luci-app-diskman —> Include btrfs-progs #新型的写时复制 (COW)
—luci-app-diskman —> Include lsblk #lsblk命令 用于列出所有可用块设备的信息
—luci-app-diskman —> Include mdadm #mdadm命令 用于创建、管理、监控RAID设备的工具
—luci-app-diskman —> Include kmod-md-raid456 #RAID 4,5,6 驱动程序模块
—luci-app-diskman —> Include kmod-md-linear #RAID 驱动程序模块
LuCI —> Applications —> luci-app-dnscrypt-proxy #DNSCrypt解决DNS污染
LuCI —> Applications —> luci-app-dnsforwarder #DNSForwarder防DNS污染
LuCI —> Applications —> luci-app-dockerman #Docker容器
LuCI —> Applications —> luci-app-dump1090 #民航无线频率 (不确定)
LuCI —> Applications —> luci-app-dynapoint #DynaPoint (未知)
LuCI —> Applications —> luci-app-e2guardian #Web内容过滤器
LuCI —> Applications —> luci-app-familycloud #家庭云盘
LuCI —> Applications —> luci-app-filetransfer #文件传输 (该功能支持浏览器安装ipk包)
LuCI —> Applications —> luci-app-firewall #添加防火墙
LuCI —> Applications —> luci-app-flowoffload #Turbo ACC网络加速 (集成FLOW,BBR,NAT,DNS…)
LuCI —> Applications —> luci-app-freifunk-diagnostics #freifunk组件 诊断 (未知)
LuCI —> Applications —> luci-app-freifunk-policyrouting #freifunk组件 策略路由 (未知)
LuCI —> Applications —> luci-app-freifunk-widgets #freifunk组件 索引 (未知)
LuCI —> Applications —> luci-app-frpc #内网穿透Frp客户端
LuCI —> Applications —> luci-app-frps #内网穿透Frp服务端
LuCI —> Applications —> luci-app-fwknopd #Firewall Knock Operator服务器
LuCI —> Applications —> luci-app-guest-wifi #WiFi访客网络
LuCI —> Applications —> luci-app-haproxy-tcp #HAProxy负载均衡-TCP
LuCI —> Applications —> luci-app-hd-idle #硬盘休眠
LuCI —> Applications —> luci-app-hnet #Homenet Status家庭网络控制协议
LuCI —> Applications —> luci-app-ipsec-vpnd #VPN服务器 IPSec
LuCI —> Applications —> luci-app-kodexplorer #KOD可道云私人网盘
LuCI —> Applications —> luci-app-lxc #LXC容器管理
LuCI —> Applications —> luci-app-meshwizard #网络设置向导
LuCI —> Applications —> luci-app-minidlna #完全兼容DLNA / UPnP-AV客户端的服务器软件
LuCI —> Applications —> luci-app-mjpg-streamer #兼容Linux-UVC的摄像头程序
LuCI —> Applications —> luci-app-mtwifi #联发科 MT WiFi驱动的支持,其它硬件配置不要选这个
LuCI —> Applications —> luci-app-music-remote-center #DAAP遥控音乐服务器
LuCI —> Applications —> luci-app-mwan3 #MWAN3负载均衡
LuCI —> Applications —> luci-app-mwan3helper #MWAN3分流助手
LuCI —> Applications —> luci-app-n2n_v2 #N2N内网穿透 N2N v2 VPN服务
LuCI —> Applications —> luci-app-netdata #Netdata实时监控 (图表)
LuCI —> Applications —> luci-app-nfs #NFS网络共享
LuCI —> Applications —> luci-app-nft-qos #QOS流控 Nftables版
LuCI —> Applications —> luci-app-nlbwmon #网络带宽监视器
LuCI —> Applications —> luci-app-noddos #NodDOS Clients 阻止DDoS攻击
LuCI —> Applications —> luci-app-ntpc #NTP时间同步服务器
LuCI —> Applications —> luci-app-ocserv #OpenConnect VPN服务
LuCI —> Applications —> luci-app-olsr #OLSR配置和状态模块
LuCI —> Applications —> luci-app-olsr-services #OLSR服务器
LuCI —> Applications —> luci-app-olsr-viz #OLSR可视化
LuCI —> Applications —> luci-app-openvpn #OpenVPN客户端
LuCI —> Applications —> luci-app-openvpn-server #易于使用的OpenVPN服务器 Web-UI
LuCI —> Applications —> luci-app-p910nd #打印服务器模块
LuCI —> Applications —> luci-app-pagekitec #Pagekite内网穿透客户端
LuCI —> Applications —> luci-app-polipo #Polipo代理 (是一个小型且快速的网页缓存代理)
LuCI —> Applications —> luci-app-pppoe-relay #PPPoE NAT穿透 点对点协议 (PPP)
LuCI —> Applications —> luci-app-privoxy #Privoxy网络代理 (带过滤无缓存)
LuCI —> Applications —> luci-app-qbittorrent #BT下载工具 (qBittorrent)
LuCI —> Applications —> luci-app-qos #流量服务质量 (QoS) 流控
LuCI —> Applications —> luci-app-radicale #CalDAV/CardDAV同步工具
LuCI —> Applications —> luci-app-ramfree #释放内存
LuCI —> Applications —> luci-app-rp-pppoe-server #Roaring Penguin PPPoE Server 服务器
LuCI —> Applications —> luci-app-samba #网络共享 (Samba)
LuCI —> Applications —> luci-app-samba4 #网络共享 (Samba4)
LuCI —> Applications —> luci-app-sfe #Turbo ACC网络加速 (flowoffload二选一)
LuCI —> Applications —> luci-app-s-s-libes #SS-libev服务端
LuCI —> Applications —> luci-app-shairplay #支持AirPlay功能
LuCI —> Applications —> luci-app-siitwizard #SIIT配置向导 SIIT-Wizzard
LuCI —> Applications —> luci-app-simple-adblock #简单的广告拦截
LuCI —> Applications —> luci-app-softethervpn #SoftEther VPN服务器 NAT穿透
LuCI —> Applications —> luci-app-splash #Client-Splash是无线MESH网络的一个热点认证系统
LuCI —> Applications —> luci-app-sqm #流量智能队列管理 (QOS)
LuCI —> Applications —> luci-app-squid #Squid代理服务器
LuCI —> Applications —> luci-app-ssr-plus #ShadowsocksR Plus+
—luci-app-ssr-plus —> Include Shadowsocks V2ray Plugin #SS V2Ray插件
—luci-app-ssr-plus —> Include V2Ray #V2ray客户端
—luci-app-ssr-plus —> Include Trojan #Trojan客户端
—luci-app-ssr-plus —> Include redsocks2 #redsocks2代理
—luci-app-ssr-plus —> Include Kcptun #Kcptun加速
—luci-app-ssr-plus —> Include ShadowsocksR Server #SSR服务器
LuCI —> Applications —> luci-app-ssrserver-python #SSR Python服务器
LuCI —> Applications —> luci-app-statistics #流量监控工具
LuCI —> Applications —> luci-app-syncdial #多拨虚拟网卡 (原macvlan)
LuCI —> Applications —> luci-app-tinyproxy #Tinyproxy是 HTTP (S) 代理服务器
LuCI —> Applications —> luci-app-transmission #BT下载工具
LuCI —> Applications —> luci-app-travelmate #旅行路由器
LuCI —> Applications —> luci-app-ttyd #网页终端命令行
LuCI —> Applications —> luci-app-udpxy #udpxy做组播服务器
LuCI —> Applications —> luci-app-uhttpd #uHTTPd Web服务器
LuCI —> Applications —> luci-app-unblockmusic #解锁网易云灰色歌曲3合1新版本
—UnblockNeteaseMusic Golang Version #Golang版本
—UnblockNeteaseMusic NodeJS Version #NodeJS版本
LuCI —> Applications —> luci-app-unblockneteasemusic-go #解除网易云音乐 (合并)
LuCI —> Applications —> luci-app-unblockneteasemusic-mini #解除网易云音乐 (合并)
LuCI —> Applications —> luci-app-unbound #Unbound DNS解析器
LuCI —> Applications —> luci-app-upnp #通用即插即用UPnP (端口自动转发)
LuCI —> Applications —> luci-app-usb-printer #USB 打印服务器
LuCI —> Applications —> luci-app-v2ray-server #V2Ray服务器
LuCI —> Applications —> luci-app-verysync #微力同步
LuCI —> Applications —> luci-app-vlmcsd #KMS服务器
LuCI —> Applications —> luci-app-vnstat #vnStat网络监控 (图表)
LuCI —> Applications —> luci-app-vpnbypass #VPN BypassWebUI 绕过VPN设置
LuCI —> Applications —> luci-app-vsftpd #FTP服务器
LuCI —> Applications —> luci-app-watchcat #断网检测功能与定时重启
LuCI —> Applications —> luci-app-webadmin #Web管理页面设置
LuCI —> Applications —> luci-app-webshell #网页命令行终端
LuCI —> Applications —> luci-app-wifischedule #WiFi计划任务
LuCI —> Applications —> luci-app-wireguard # WireGuard VPN
LuCI —> Applications —> luci-app-wirelessregdb #WiFi无线
LuCI —> Applications —> luci-app-wol #WOL网络唤醒
LuCI —> Applications —> luci-app-wrtbwmon #实时流量监测
LuCI —> Applications —> luci-app-xlnetacc #迅雷快鸟
LuCI —> Applications —> luci-app-zerotier #ZeroTier内网穿透