Unverified Commit b79e130d authored by wukongdaily's avatar wukongdaily Committed by GitHub
Browse files

设置eth0是wan口 其余网口为lan口

完成需求
https://github.com/wukongdaily/AutoBuildImmortalWrt/issues/109
parent 56f3cd8e
...@@ -11,25 +11,28 @@ uci add dhcp domain ...@@ -11,25 +11,28 @@ uci add dhcp domain
uci set "dhcp.@domain[-1].name=time.android.com" uci set "dhcp.@domain[-1].name=time.android.com"
uci set "dhcp.@domain[-1].ip=203.107.6.88" uci set "dhcp.@domain[-1].ip=203.107.6.88"
# 检查配置文件pppoe-settings是否存在 该文件由build.sh动态生成
SETTINGS_FILE="/etc/config/pppoe-settings"
if [ ! -f "$SETTINGS_FILE" ]; then
echo "PPPoE settings file not found. Skipping." >> $LOGFILE
else
# 读取pppoe信息($enable_pppoe、$pppoe_account、$pppoe_password)
. "$SETTINGS_FILE"
fi
# 计算网卡数量 # 计算网卡数量
count=0 count=0
ifnames=""
for iface in /sys/class/net/*; do for iface in /sys/class/net/*; do
iface_name=$(basename "$iface") iface_name=$(basename "$iface")
# 检查是否为物理网卡(排除回环设备和无线设备) # 检查是否为物理网卡(排除回环设备和无线设备)
if [ -e "$iface/device" ] && echo "$iface_name" | grep -Eq '^eth|^en'; then if [ -e "$iface/device" ] && echo "$iface_name" | grep -Eq '^eth|^en'; then
count=$((count + 1)) count=$((count + 1))
ifnames="$ifnames $iface_name"
fi fi
done done
# 删除多余空格
# 检查配置文件pppoe-settings是否存在 该文件由build.sh动态生成 ifnames=$(echo "$ifnames" | awk '{$1=$1};1')
SETTINGS_FILE="/etc/config/pppoe-settings"
if [ ! -f "$SETTINGS_FILE" ]; then
echo "PPPoE settings file not found. Skipping." >> $LOGFILE
else
# 读取pppoe信息($enable_pppoe、$pppoe_account、$pppoe_password)
. "$SETTINGS_FILE"
fi
# 网络设置 # 网络设置
if [ "$count" -eq 1 ]; then if [ "$count" -eq 1 ]; then
...@@ -37,25 +40,58 @@ if [ "$count" -eq 1 ]; then ...@@ -37,25 +40,58 @@ if [ "$count" -eq 1 ]; then
# 单网口设备 不支持修改ip 不要在此处修改ip # 单网口设备 不支持修改ip 不要在此处修改ip
uci set network.lan.proto='dhcp' uci set network.lan.proto='dhcp'
elif [ "$count" -gt 1 ]; then elif [ "$count" -gt 1 ]; then
# 提取第一个接口作为WAN
wan_ifname=$(echo "$ifnames" | awk '{print $1}')
# 剩余接口保留给LAN
lan_ifnames=$(echo "$ifnames" | cut -d ' ' -f2-)
# 设置WAN接口基础配置
uci set network.wan=interface
# 提取第一个接口作为WAN
uci set network.wan.device="$wan_ifname"
# WAN接口默认DHCP
uci set network.wan.proto='dhcp'
# 设置WAN6绑定网口eth0
uci set network.wan6=interface
uci set network.wan6.device="$wan_ifname"
# 更新LAN接口成员
# 查找对应设备的section名称
section=$(uci show network | awk -F '[.=]' '/\.@?device\[\d+\]\.name=.br-lan.$/ {print $2; exit}')
if [ -z "$section" ]; then
echo "error:cannot find device 'br-lan'." >> $LOGFILE
else
# 删除原来的ports列表
uci -q delete "network.$section.ports"
# 添加新的ports列表
for port in $lan_ifnames; do
uci add_list "network.$section.ports"="$port"
done
echo "ports of device 'br-lan' are update." >> $LOGFILE
fi
# LAN口设置静态IP
uci set network.lan.proto='static'
# 多网口设备 支持修改为别的ip地址 # 多网口设备 支持修改为别的ip地址
uci set network.lan.ipaddr='192.168.100.1' uci set network.lan.ipaddr='192.168.100.1'
uci set network.lan.netmask='255.255.255.0'
echo "set 192.168.100.1 at $(date)" >> $LOGFILE echo "set 192.168.100.1 at $(date)" >> $LOGFILE
# 判断是否启用 PPPoE # 判断是否启用 PPPoE
echo "print enable_pppoe value=== $enable_pppoe" >> $LOGFILE echo "print enable_pppoe value=== $enable_pppoe" >> $LOGFILE
if [ "$enable_pppoe" = "yes" ]; then if [ "$enable_pppoe" = "yes" ]; then
echo "PPPoE is enabled at $(date)" >> $LOGFILE echo "PPPoE is enabled at $(date)" >> $LOGFILE
# 设置宽带拨号信息 # 设置ipv4宽带拨号信息
uci set network.wan.proto='pppoe' uci set network.wan.proto='pppoe'
uci set network.wan.username=$pppoe_account uci set network.wan.username=$pppoe_account
uci set network.wan.password=$pppoe_password uci set network.wan.password=$pppoe_password
uci set network.wan.peerdns='1' uci set network.wan.peerdns='1'
uci set network.wan.auto='1' uci set network.wan.auto='1'
# 设置ipv6 默认不配置协议
uci set network.wan6.proto='none'
echo "PPPoE configuration completed successfully." >> $LOGFILE echo "PPPoE configuration completed successfully." >> $LOGFILE
else else
echo "PPPoE is not enabled. Skipping configuration." >> $LOGFILE echo "PPPoE is not enabled. Skipping configuration." >> $LOGFILE
fi fi
fi fi
# 设置所有网口可访问网页终端 # 设置所有网口可访问网页终端
uci delete ttyd.@ttyd[0].interface uci delete ttyd.@ttyd[0].interface
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment