OpenWrt编译

 

 

1. 编译网站

  官方: 

      ① : ImmortalWrt   : https://firmware-selector.immortalwrt.org/
      ② : OpenWrt:  https://firmware-selector.openwrt.org/

  第三方: 

     ① : bozi  : https://openwrt.ai/

 

2. 软件包: 

  出厂软件包

  常用软件包

  定制软件包

 

3.  系统初始化shell脚本

# ==============================================================================
# ImmortalWrt 自动配置脚本 - 模块化 带开关 全注释
# 作用:刷完固件自动配置 旁路由、IP、WiFi、密码、主题、防火墙等
# ==============================================================================

# ======================== 【一、总开关区】 ========================
# 1 = 开启  |  0 = 关闭
ENABLE_ROOT_PASSWD=1      # 开启ROOT密码自动设置
ENABLE_LAN_IP=1           # 开启LAN口IP(旁路由)自动设置
ENABLE_DHCP_OFF=1        # 开启关闭DHCP(旁路由必须开)
ENABLE_FIREWALL=1        # 开启旁路由防火墙直通(必须开)
ENABLE_WIFI=1            # 开启AX200双频WiFi自动配置
ENABLE_THEME=1           # 开启Argon主题自动设置

# ======================== 【二、自定义参数区】 ========================
# 管理员密码
ROOT_PASSWORD=""

# 旁路由固定IP
LAN_IP="192.168.1.6"
GATEWAY="192.168.1.1"
DNS="192.168.1.1"
NETMASK="255.255.255.0"

# WiFi名称与密码
WLAN_NAME=""
WLAN_PASSWD=""

# 主题(默认argon)
THEME_NAME="argon"

# ======================== 【三、自动执行脚本】 ========================
# 日志输出到 /tmp/setup.log 方便排错
exec >/tmp/setup.log 2>&1
echo "===== 开始自动配置 ====="

# --------------------------
# 功能1:设置ROOT密码
# --------------------------
if [ $ENABLE_ROOT_PASSWD -eq 1 ]; then
echo "→ 配置ROOT密码"
(echo "$ROOT_PASSWORD"; sleep 1; echo "$ROOT_PASSWORD") | passwd >/dev/null
fi

# --------------------------
# 功能2:配置LAN口固定IP(旁路由)
# --------------------------
if [ $ENABLE_LAN_IP -eq 1 ]; then
echo "→ 配置LAN IP: $LAN_IP"
uci set network.lan.ipaddr="$LAN_IP"
uci set network.lan.gateway="$GATEWAY"
uci set network.lan.dns="$DNS"
uci set network.lan.netmask="$NETMASK"
uci commit network
fi

# --------------------------
# 功能3:旁路由基础优化(关闭DHCP / 关闭WAN / 开启IP转发)
# --------------------------
if [ $ENABLE_DHCP_OFF -eq 1 ]; then
echo "→ 关闭DHCP、关闭WAN、开启IP转发"

# 关闭LAN口DHCP(旁路由不分配IP)
uci set dhcp.lan.ignore=1
uci commit dhcp

# 关闭无用的WAN/WAN6接口(单网口旁路由用不到)
uci set network.wan.proto=none
uci set network.wan6.proto=none
uci commit network

# 开启系统IP转发(旁路由必须开启)
uci set network.@globals[0].ip_forward=1
uci commit network
fi

# --------------------------
# 功能4:旁路由防火墙全开 + NAT(单网口WiFi必须开)
# --------------------------
if [ $ENABLE_FIREWALL -eq 1 ]; then
echo "→ 配置旁路由防火墙"
uci set firewall.@zone[0].input=ACCEPT
uci set firewall.@zone[0].output=ACCEPT
uci set firewall.@zone[0].forward=ACCEPT
uci set firewall.@zone[0].masq=1  # NAT开启,WiFi必须依赖此项
uci commit firewall
fi

# --------------------------
# 功能5:AX200 双频WiFi自动配置(2.4G + 5G)
# --------------------------
if [ $ENABLE_WIFI -eq 1 ]; then
echo "→ 配置AX200双频WiFi"

# 先删除系统默认无线配置,防止冲突
uci -q delete wireless.radio0
uci -q delete wireless.radio1
uci -q delete wireless.default_radio0
uci -q delete wireless.default_radio1

# ========== 2.4G WiFi配置 ==========
uci set wireless.radio0=wifi-device
uci set wireless.radio0.type=mac80211
uci set wireless.radio0.band=2g
uci set wireless.radio0.channel=auto
uci set wireless.radio0.htmode=HT20
uci set wireless.radio0.country=CN
uci set wireless.radio0.disabled=0

uci set wireless.default_radio0=wifi-iface
uci set wireless.default_radio0.device=radio0
uci set wireless.default_radio0.network=lan
uci set wireless.default_radio0.mode=ap
uci set wireless.default_radio0.ssid="$WLAN_NAME"
uci set wireless.default_radio0.encryption=psk2
uci set wireless.default_radio0.key="$WLAN_PASSWD"

# ========== 5G WiFi配置 ==========
uci set wireless.radio1=wifi-device
uci set wireless.radio1.type=mac80211
uci set wireless.radio1.band=5g
uci set wireless.radio1.channel=auto
uci set wireless.radio1.htmode=VHT80
uci set wireless.radio1.country=CN
uci set wireless.radio1.disabled=0

uci set wireless.default_radio1=wifi-iface
uci set wireless.default_radio1.device=radio1
uci set wireless.default_radio1.network=lan
uci set wireless.default_radio1.mode=ap
uci set wireless.default_radio1.ssid="${WLAN_NAME}_5G"
uci set wireless.default_radio1.encryption=psk2
uci set wireless.default_radio1.key="$WLAN_PASSWD"

# 保存并重启WiFi
uci commit wireless
wifi reload
fi

# --------------------------
# 功能6:设置Argon主题
# --------------------------
if [ $ENABLE_THEME -eq 1 ]; then
echo "→ 设置主题为 $THEME_NAME"
uci set luci.main.theme="$THEME_NAME"
uci set luci.main.mediaurlbase="/luci-static/$THEME_NAME"
uci commit luci
/etc/init.d/uhttpd restart
fi

# 配置完成
echo "===== 所有自动配置完成 ====="

 

posted @ 2026-04-28 09:43  D-Simin  阅读(20)  评论(0)    收藏  举报