feat: 增加交互式修改lan口ip功能

This commit is contained in:
Olia Lisa
2026-07-22 18:37:36 +08:00
parent c1e72bba9a
commit bc0c518947
5 changed files with 85 additions and 11 deletions
+1 -1
View File
@@ -60,6 +60,6 @@ update_lan_ip(){
} }
# update_lan_ip "192.168.50.100" 修改lan口ip update_lan_ip 192.168.1.1 # 修改lan口ip
exit 0 exit 0
+20 -1
View File
@@ -46,6 +46,11 @@ build() {
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
BUILDER_DIR="$1" BUILDER_DIR="$1"
# ────────────────────────────────────────────
# lan口ip
# ────────────────────────────────────────────
LAN_IP=${2}
# ============================================================= # =============================================================
# 固件输出目录 # 固件输出目录
# ============================================================= # =============================================================
@@ -97,6 +102,15 @@ build() {
mkdir -p "$FILES_DIR" mkdir -p "$FILES_DIR"
# 如果存在 LAN IP 设置脚本,则修改默认 LAN 地址
LAN_SETTING_FILE="${SCRIPT_DIR}/files/etc/uci-defaults/98-network-setting"
if [ -e "$LAN_SETTING_FILE" ]; then
# 根据用户输入的 LAN_IP 修改默认 IP
sed -i \
"s/^update_lan_ip .*/update_lan_ip ${LAN_IP}/" \
"$LAN_SETTING_FILE"
fi
# ============================================================= # =============================================================
# 复制自定义 files 目录(如果存在) # 复制自定义 files 目录(如果存在)
# ============================================================= # =============================================================
@@ -104,6 +118,7 @@ build() {
cp -rf "${SCRIPT_DIR}/files/." "$BUILDER_DIR/files/" cp -rf "${SCRIPT_DIR}/files/." "$BUILDER_DIR/files/"
fi fi
# ============================================================= # =============================================================
# 校验 ImageBuilder 环境 # 校验 ImageBuilder 环境
# ============================================================= # =============================================================
@@ -167,8 +182,12 @@ cd "$project_dir"
default_version="25.12.1" default_version="25.12.1"
version=$(ask_input "请输入 ImmortalWrt 版本" "$default_version") version=$(ask_input "请输入 ImmortalWrt 版本" "$default_version")
# lan口ip
default_lan_ip="192.168.1.1"
lan_ip=$(ask_input "请输入lan口ip" $default_lan_ip)
install_dependencies install_dependencies
builder_dir="$(download_imagebuilder "$version")" builder_dir="$(download_imagebuilder "$version")"
build "$builder_dir" build $builder_dir $lan_ip
+19 -1
View File
@@ -65,6 +65,11 @@ build() {
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
BUILDER_DIR="$1" BUILDER_DIR="$1"
# ────────────────────────────────────────────
# lan口ip
# ────────────────────────────────────────────
LAN_IP=${2}
# ============================================================= # =============================================================
# 固件输出目录 # 固件输出目录
# ============================================================= # =============================================================
@@ -116,6 +121,15 @@ build() {
mkdir -p "$FILES_DIR" mkdir -p "$FILES_DIR"
# 如果存在 LAN IP 设置脚本,则修改默认 LAN 地址
LAN_SETTING_FILE="${SCRIPT_DIR}/files/etc/uci-defaults/98-network-setting"
if [ -e "$LAN_SETTING_FILE" ]; then
# 根据用户输入的 LAN_IP 修改默认 IP
sed -i \
"s/^update_lan_ip .*/update_lan_ip ${LAN_IP}/" \
"$LAN_SETTING_FILE"
fi
# ============================================================= # =============================================================
# 复制自定义 files 目录(如果存在) # 复制自定义 files 目录(如果存在)
# ============================================================= # =============================================================
@@ -168,6 +182,10 @@ cd "$project_dir"
default_version="25.12.1" default_version="25.12.1"
version=$(ask_input "请输入 ImmortalWrt 版本" "$default_version") version=$(ask_input "请输入 ImmortalWrt 版本" "$default_version")
# lan口ip
default_lan_ip="192.168.1.1"
lan_ip=$(ask_input "请输入lan口ip" $default_lan_ip)
# 安装依赖 # 安装依赖
install_dependencies install_dependencies
@@ -175,4 +193,4 @@ install_dependencies
builder_dir="$(download_imagebuilder "$version")" builder_dir="$(download_imagebuilder "$version")"
# 构建固件 # 构建固件
build "$builder_dir" build "$builder_dir" $lan_ip
+20 -1
View File
@@ -72,6 +72,11 @@ build(){
# ============================================================= # =============================================================
ROOTFS_PARTSIZE="${2:-}" ROOTFS_PARTSIZE="${2:-}"
# ────────────────────────────────────────────
# lan口ip
# ────────────────────────────────────────────
LAN_IP=${3}
# ============================================================= # =============================================================
# 插件包列表 # 插件包列表
# - 前面加 - 表示从固件中移除该包,例如 -dnsmasq # - 前面加 - 表示从固件中移除该包,例如 -dnsmasq
@@ -128,6 +133,15 @@ build(){
cd "$BUILDER_DIR" cd "$BUILDER_DIR"
# 如果存在 LAN IP 设置脚本,则修改默认 LAN 地址
LAN_SETTING_FILE="${SCRIPT_DIR}/files/etc/uci-defaults/98-network-setting"
if [ -e "$LAN_SETTING_FILE" ]; then
# 根据用户输入的 LAN_IP 修改默认 IP
sed -i \
"s/^update_lan_ip .*/update_lan_ip ${LAN_IP}/" \
"$LAN_SETTING_FILE"
fi
mkdir -p "$FILES_DIR" mkdir -p "$FILES_DIR"
# 复制 files 目录下的自定义文件到 Image Builder 的 files 目录 # 复制 files 目录下的自定义文件到 Image Builder 的 files 目录
if [ -d "${SCRIPT_DIR}/files" ]; then if [ -d "${SCRIPT_DIR}/files" ]; then
@@ -137,6 +151,7 @@ build(){
echo -e "${YELLOW}[提示] 未找到自定义 files/ 目录,跳过复制${NC}" echo -e "${YELLOW}[提示] 未找到自定义 files/ 目录,跳过复制${NC}"
fi fi
if [ ! -f "Makefile" ]; then if [ ! -f "Makefile" ]; then
echo -e "${RED}[错误] 未找到 Makefile,请在 imagebuilder 根目录下运行本脚本!${NC}" echo -e "${RED}[错误] 未找到 Makefile,请在 imagebuilder 根目录下运行本脚本!${NC}"
exit 1 exit 1
@@ -219,8 +234,12 @@ version=$(ask_input "请输入 ImmortalWrt 版本" "$default_version")
default_rootfs_partsize="600" default_rootfs_partsize="600"
rootfs_partsize=$(ask_input "请输入根分区大小(MB)" "$default_rootfs_partsize") rootfs_partsize=$(ask_input "请输入根分区大小(MB)" "$default_rootfs_partsize")
# lan口ip
default_lan_ip="192.168.1.1"
lan_ip=$(ask_input "请输入lan口ip" $default_lan_ip)
install_dependencies install_dependencies
builder_dir="$(download_imagebuilder "$version")" builder_dir="$(download_imagebuilder "$version")"
build $builder_dir $rootfs_partsize build $builder_dir $rootfs_partsize $lan_ip
+25 -7
View File
@@ -71,6 +71,11 @@ build(){
# ──────────────────────────────────────────── # ────────────────────────────────────────────
ROOTFS_PARTSIZE="${2:-}" ROOTFS_PARTSIZE="${2:-}"
# ────────────────────────────────────────────
# lan口ip
# ────────────────────────────────────────────
LAN_IP=${3}
# ============================================================= # =============================================================
# 插件包列表 # 插件包列表
# - 前面加 - 表示从固件中移除该包,例如 -dnsmasq # - 前面加 - 表示从固件中移除该包,例如 -dnsmasq
@@ -136,6 +141,21 @@ build(){
# 切换到 Image Builder 目录 # 切换到 Image Builder 目录
cd "$BUILDER_DIR" cd "$BUILDER_DIR"
# 创建 files 目录(如果不存在)
if [ ! -d "$FILES_DIR" ]; then
echo -e "${YELLOW}[提示] files/ 目录不存在,已自动创建${NC}"
mkdir -p "$FILES_DIR"
fi
# 如果存在 LAN IP 设置脚本,则修改默认 LAN 地址
LAN_SETTING_FILE="${SCRIPT_DIR}/files/etc/uci-defaults/98-network-setting"
if [ -e "$LAN_SETTING_FILE" ]; then
# 根据用户输入的 LAN_IP 修改默认 IP
sed -i \
"s/^update_lan_ip .*/update_lan_ip ${LAN_IP}/" \
"$LAN_SETTING_FILE"
fi
# 复制 files 目录下的自定义文件到 Image Builder 的 files 目录 # 复制 files 目录下的自定义文件到 Image Builder 的 files 目录
if [ -d "${SCRIPT_DIR}/files" ]; then if [ -d "${SCRIPT_DIR}/files" ]; then
echo -e "${YELLOW}[提示] 复制自定义 files/ 目录到 Image Builder${NC}" echo -e "${YELLOW}[提示] 复制自定义 files/ 目录到 Image Builder${NC}"
@@ -160,12 +180,6 @@ build(){
exit 1 exit 1
fi fi
# 创建 files 目录(如果不存在)
if [ ! -d "$FILES_DIR" ]; then
echo -e "${YELLOW}[提示] files/ 目录不存在,已自动创建${NC}"
mkdir -p "$FILES_DIR"
fi
mkdir -p "$OUTPUT_DIR" mkdir -p "$OUTPUT_DIR"
# 执行构建 # 执行构建
@@ -246,6 +260,10 @@ version=$(ask_input "请输入 ImmortalWrt 版本" "$default_version")
default_rootfs_partsize="600" default_rootfs_partsize="600"
rootfs_partsize=$(ask_input "请输入根分区大小(MB)" "$default_rootfs_partsize") rootfs_partsize=$(ask_input "请输入根分区大小(MB)" "$default_rootfs_partsize")
# lan口ip
default_lan_ip="192.168.1.1"
lan_ip=$(ask_input "请输入lan口ip" $default_lan_ip)
# 安装依赖 # 安装依赖
install_dependencies install_dependencies
@@ -253,4 +271,4 @@ install_dependencies
builder_dir="$(download_imagebuilder "$version")" builder_dir="$(download_imagebuilder "$version")"
# 构建固件 # 构建固件
build $builder_dir $rootfs_partsize build $builder_dir $rootfs_partsize $lan_ip