Openwrt 編譯,修改lan、wan口,ip,撥號

很久之前買了一個小軟路由,接觸到了Openwrt編譯,用lean的代碼按照說明操作並不難。不過作爲入門小白,多次編譯、測試是在所難免的,每次編譯完都要重新設置一遍,很是麻煩,於是就想到是不是可以編譯時就把配置寫好,這樣寫好系統後直接運行不用在拉根網線專門配置了。

本來編譯好的固件穩定下來就不用動了,結果太長時間沒動,想重新編譯,更新一下系統,結果忘了要修改那些東西了,無奈又重新研究了一遍,這次記錄下來,防止再次忘記。

https://github.com/coolsnowwolf/lede

我想解決的問題其實不難

  • 修改wan口pppoe自動撥號
  • 修改默認lan口ip

經過一番搜索、研究,找到代碼中幾個位置修改即可

一、修改wan口爲pppoe撥號

package/base-files/files/lib/functions/uci-defaults.sh

ucidef_set_interface_wan() {
    #dhcp改成pppoe
    ucidef_set_interface "wan" ifname "$1" protocol "${2:-dhcp}"
}

二、修改pppoe撥號用戶名、密碼

package/base-files/files/bin/config_generate

case "$protocol" in
        static)
            local ipad
            case "$1" in
                #修改lan口ip
                lan) ipad=${ipaddr:-"192.168.1.1"} ;;
                *) ipad=${ipaddr:-"192.168.$((addr_offset++)).1"} ;;
            esac

            netm=${netmask:-"255.255.255.0"}

            uci -q batch <<-EOF
                set network.$1.proto='static'
                set network.$1.ipaddr='$ipad'
                set network.$1.netmask='$netm'
            EOF
            [ -e /proc/sys/net/ipv6 ] && uci set network.$1.ip6assign='60'
        ;;

        dhcp)
            # fixup IPv6 slave interface if parent is a bridge
            [ "$type" = "bridge" ] && ifname="br-$1"

            uci set network.$1.proto='dhcp'
            [ -e /proc/sys/net/ipv6 ] && {
                uci -q batch <<-EOF
                    delete network.${1}6
                    set network.${1}6='interface'
                    set network.${1}6.ifname='$ifname'
                    set network.${1}6.proto='dhcpv6'
                EOF
            }
        ;;

        pppoe)
            uci -q batch <<-EOF
                set network.$1.proto='pppoe'
                #撥號用戶名
                set network.$1.username='username'
                #撥號密碼
                set network.$1.password='password'
            EOF
            [ -e /proc/sys/net/ipv6 ] && {
                uci -q batch <<-EOF
                    set network.$1.ipv6='1'
                    delete network.${1}6
                    set network.${1}6='interface'
                    set network.${1}6.ifname='@${1}'
                    set network.${1}6.proto='dhcpv6'
                EOF
            }
        ;;
    esac
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章