openwrt_imagebuilder_修改缺省配置_network_firewall_root密码
转载注明来源: 本文链接 来自osnosn的博客,写于 2023-01-29.
参考和方法
- 【官方文档:使用Image Builder】
【官方文档:Using the Image Builder】 - 【imagebuilder快速编译OpenWrt固件使用教程+高级自定义+在线编译】
- 【自定义一个无需配置即可使用的 OpenWrt 固件】
ImageBuilder 自定义配置有两种方式,- 一种是通过 files 写死配置文件,如写一份网络的配置,放在 files/etc/config/network,并在构建时带上 FILES 参数,新系统启动时,就会使用自己写的配置,这样就达到了自定义的目的。
- 另一种是 uci-defaults,在系统第一次启动时(恢复出厂后也算第一次启动)运行其定义的 UCI 命令,以达到自定义的目的,这个方案相比自定义 files 有一个好处是,OpenWrt 有一些配置是在启动时动态生成的,而 files 会覆盖掉这些逻辑生成的配置,不太科学,而 uci-defaults 只会覆盖想要自定义的配置项,不会影响系统本身的运行逻辑,比较科学。
- 帖子中有uci-defaults脚本的例子。
- 【OpenWrt config_generate分析】
帖子中有分析,如果network或system文件存在,就不会自动生成,也不会被修改。
简单读一下这两个脚本/etc/rc.d/S10boot
,/bin/config_generate
就明白了。 - UCI 的参考
用imagebuilder定制固件
- 【armvirt:用ImageBuilder打包自定义img】
- 【Newifi Y1/D2:用imagebuilder打包一个自定义bin文件】
- 修改 system, network, 建议用 uci-defaults 脚本。
这两个配置文件,如果存在,并且大于0字节,刷机后第一次启动,就不会自动生成,不会被修改。
其他配置,直接编辑一个新版,覆盖掉原文件就行。 - 这是基于 op-21.02 , op-22.03 版。旧版可能不合适。
样例: /etc/uci-defaults/80-custom (脚本无需设置执行权限)#!/bin/sh #修改root密码 passwd root << EOI pass1234 pass1234 EOI #修改时区 uci -q batch << EOI set system.@system[0].hostname='OpenWrt-MY' set system.@system[0].zonename='Asia/Shanghai' set system.@system[0].timezone='CST-8' set system.ntp.enable_server='1' add_list system.ntp.server='myntp.server.local' commit system EOI #修改lan IP uci -q batch << EOI set network.lan.ipaddr='192.168.7.1' commit network EOI #修改wan IP,静态地址 uci -q batch << EOI set network.wan.proto='static' set network.wan.ipaddr='10.10.10.99' set network.wan.netmask='255.255.255.0' set network.wan.gateway='10.10.10.1' add_list network.wan.dns='10.10.10.1' commit network EOI #如果wan有多个IP #add_list network.wan.ipaddr='10.10.10.88' #add_list network.wan.ipaddr='10.10.10.99' #添加ipv4静态路由 uci -q batch << EOI add network route set network.@route[-1].interface='wan' set network.@route[-1].target='10.222.0.0/16' set network.@route[-1].gateway='10.101.10.1' commit network EOI #开放tcp端口, 22 88 uci -q batch << EOI add firewall rule set firewall.@rule[-1].name='allow-ssh-pxy' set firewall.@rule[-1].src='wan' add_list firewall.@rule[-1].proto='tcp' set firewall.@rule[-1].dest_port='22 88' set firewall.@rule[-1].target='ACCEPT' commit firewall EOI #tcp端口映射 uci -q batch << EOI add firewall redirect set firewall.@redirect[-1].name='web-https' set firewall.@redirect[-1].src='wan' set firewall.@redirect[-1].dest='lan' add_list firewall.@redirect[-1].proto='tcp' set firewall.@redirect[-1].src_dport='8443' set firewall.@redirect[-1].dest_ip='192.168.7.1' set firewall.@redirect[-1].dest_port='443' set firewall.@redirect[-1].target='DNAT' commit firewall EOI
- 修改了 system 或 network,用
reload_config
生效。
修改了 firewall,用/etc/init.d/firewall restart
生效。
----end----
转载注明来源: 本文链接 https://www.cnblogs.com/osnosn/p/17072528.html
来自 osnosn的博客 https://www.cnblogs.com/osnosn/ .
标签:imagebuilder,network,自定义,缺省,修改,defaults,uci From: https://www.cnblogs.com/osnosn/p/17072528.html