跳至正文
  • 30 views
  • 1 min read

转:Openwrt 编译,修改lan、wan口,ip,拨号

新浪微博 豆瓣 QQ 百度贴吧 QQ空间

很久之前买了一个小软路由,接触到了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

作者:BigTaiYang大太阳
链接:https://www.jianshu.com/p/27c424562de7
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

发表回复