Skip to content

openwrt - network

https://openwrt.org/docs/guide-user/network/wifi/start

https://openwrt.org/docs/guide-user/network/wifi/basic

https://openwrt.org/docs/guide-user/network/wifi/relay_configuration

[[toc]]

查看网络配置

root@Thingoo:/# cat /etc/config/network
root@Thingoo:/# cat /etc/config/wireless

重启网络使配置生效

root@Thingoo:~# /etc/init.d/network restart
root@Thingoo:~# /etc/init.d/network reload
root@Thingoo:~# wifi down && wifi up

开启 Wi-Fi

uci set wireless.radio0.disabled=0 # 使能 Wi-Fi
uci commit wireless # 使配置生效
wifi # 启动 Wi-Fi

查看当前网络

root@Thingoo:/# ifconfig
br-lan    Link encap:Ethernet  HWaddr 0C:EF:AF:D2:A9:B9
          inet addr:192.168.8.1  Bcast:192.168.8.255  Mask:255.255.255.0
          inet6 addr: fe80::eef:afff:fed2:a9b9/64 Scope:Link
          inet6 addr: fdff:c5b2:821c::1/60 Scope:Global
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:574264 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1217669 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:48102567 (45.8 MiB)  TX bytes:1634912136 (1.5 GiB)

eth0      Link encap:Ethernet  HWaddr 0C:EF:AF:D2:A9:B8
          inet6 addr: fe80::eef:afff:fed2:a9b8/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1225320 errors:0 dropped:0 overruns:0 frame:0
          TX packets:579507 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1641989813 (1.5 GiB)  TX bytes:59132909 (56.3 MiB)
          Interrupt:5

eth0.1    Link encap:Ethernet  HWaddr 0C:EF:AF:D2:A9:B8
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1 errors:0 dropped:1 overruns:0 frame:0
          TX packets:3544 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:46 (46.0 B)  TX bytes:244206 (238.4 KiB)

eth0.2    Link encap:Ethernet  HWaddr 0C:EF:AF:D2:A9:B8
          inet addr:192.168.1.5  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::eef:afff:fed2:a9b8/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1176423 errors:0 dropped:10706 overruns:0 frame:0
          TX packets:575928 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:1617670919 (1.5 GiB)  TX bytes:56565373 (53.9 MiB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:294 errors:0 dropped:0 overruns:0 frame:0
          TX packets:294 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:41961 (40.9 KiB)  TX bytes:41961 (40.9 KiB)

ra0       Link encap:Ethernet  HWaddr 0C:EF:AF:D2:A9:B8
          inet6 addr: fe80::eef:afff:fed2:a9b8/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:641847 errors:830 dropped:0 overruns:0 frame:0
          TX packets:1228723 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:70965355 (67.6 MiB)  TX bytes:1630822247 (1.5 GiB)
          Interrupt:6
网络设备名 说明
br-lan 虚拟设备,LAN 口桥接设备,包含通过 LAN 口和 WAN 口连入系统的设备统一桥接
eth0 真实设备,CPU 内部到交换机芯片之间只有一个接口
eth0.1 虚拟设备,由 VLAN 划分的有线的 LAN 口,VLAN 编号为 1
eth0.2 虚拟设备,由 VLAN 划分的有线的 LAN 口,VLAN编号为 2
lo 虚拟设备,回环设备
ra0 真实设备,启动 Wi-Fi 后将会产生此无线设备
pppoe-wan 虚拟设备,是 PPPoE 拨号上网成功后产生的

查看 br-lan 桥状态

root@Thingoo:/# brctl show
bridge name bridge id           STP enabled interfaces
br-lan      7fff.0cefafd2a9b9   no          eth0.1
                                            ra0

查看 wifi 无线状态

Wireless Access Point / Dumb Access Point

Wireless Utilities

root@Thingoo:~# iwinfo 
mesh0     ESSID: "12345678"
          Access Point: AC:23:3F:C0:3C:D0
          Mode: Mesh Point  Channel: 3 (2.422 GHz)
          Tx-Power: 20 dBm  Link Quality: unknown/70
          Signal: unknown  Noise: unknown
          Bit Rate: unknown
          Encryption: none
          Type: nl80211  HW Mode(s): 802.11bgn
          Hardware: 14C3:7628 14C3:0004 [MediaTek MT76x8]
          TX power offset: none
          Frequency offset: none
          Supports VAPs: yes  PHY name: phy0

wlan0     ESSID: "GW-AC233FC03CD0"
          Access Point: AE:23:3F:C0:3C:D0
          Mode: Master  Channel: 3 (2.422 GHz)
          Tx-Power: 20 dBm  Link Quality: unknown/70
          Signal: unknown  Noise: unknown
          Bit Rate: unknown
          Encryption: none
          Type: nl80211  HW Mode(s): 802.11bgn
          Hardware: 14C3:7628 14C3:0004 [MediaTek MT76x8]
          TX power offset: none
          Frequency offset: none
          Supports VAPs: yes  PHY name: phy0

root@Thingoo:/# iw dev wlan0 station dump
Station fc:7c:02:7e:ab:af (on wlan0)
        inactive time:  16180 ms
        rx bytes:       30553431
        rx packets:     177870
        tx bytes:       20417
        tx packets:     478
        tx retries:     24
        tx failed:      1
        beacon loss:    0
        beacon rx:      83770
        rx drop misc:   30
        signal:         -40 [-40, -44] dBm
        signal avg:     -40 [-40, -43] dBm
        beacon signal avg:      -40 dBm
        tx bitrate:     6.0 MBit/s
        rx bitrate:     585.1 MBit/s VHT-MCS 6 80MHz short GI VHT-NSS 2
        rx duration:    2322 us
        last ack signal:0 dBm
        expected throughput:    60.333Mbps
        authorized:     yes
        authenticated:  yes
        associated:     yes
        preamble:       long
        WMM/WME:        yes
        MFP:            no
        TDLS peer:      no
        DTIM period:    2
        beacon interval:100
        short slot time:yes
        connected time: 8766 seconds

查看当前 VLAN 划分

root@Thingoo:/# swconfig dev switch0 show
Global attributes:
    enable_vlan: 1
    alternate_vlan_disable: 0
    bc_storm_protect: 0
    led_frequency: 0
Port 0:
    disable: 0
    doubletag: 0
    untag: 1
    led: 5
    lan: 1
    recv_bad: 0
    recv_good: 2205
    tr_bad: 0
    tr_good: 52155
    pvid: 2
    link: port:0 link:up speed:100baseT full-duplex
Port 1:
    disable: 0
    doubletag: 0
    untag: 1
    led: 5
    lan: 1
    recv_bad: 0
    recv_good: 0
    tr_bad: 0
    tr_good: 0
    pvid: 1
    link: port:1 link:down
Port 2:
    disable: 0
    doubletag: 0
    untag: 1
    led: 5
    lan: 1
    recv_bad: 0
    recv_good: 0
    tr_bad: 0
    tr_good: 0
    pvid: 1
    link: port:2 link:down
Port 3:
    disable: 0
    doubletag: 0
    untag: 1
    led: 5
    lan: 1
    recv_bad: 0
    recv_good: 0
    tr_bad: 0
    tr_good: 0
    pvid: 1
    link: port:3 link:down
Port 4:
    disable: 0
    doubletag: 0
    untag: 1
    led: 5
    lan: 1
    recv_bad: 0
    recv_good: 0
    tr_bad: 0
    tr_good: 0
    pvid: 1
    link: port:4 link:down
Port 5:
    disable: 1
    doubletag: 0
    untag: 0
    led: ???
    lan: 1
    recv_bad: 0
    recv_good: 0
    tr_bad: 0
    tr_good: 0
    pvid: 0
    link: port:5 link:down
Port 6:
    disable: 0
    doubletag: 0
    untag: 0
    led: ???
    lan: ???
    recv_bad: ???
    recv_good: ???
    tr_bad: ???
    tr_good: ???
    pvid: 0
    link: port:6 link:up speed:1000baseT full-duplex
VLAN 1:
    ports: 1 2 3 4 6t
VLAN 2:
    ports: 0 6t

::: tip

哪个网口是 LAN, 哪个是 WAN, 是由 VLAN 划分的。VLAN1 为 LAN 口,包含 1、2、3、4 接口;VLAN2 为 WAN 口,包含了 0 接口。

:::

配置 WAN 口外网

查看 WAN 口配置

root@Thingoo:/# uci show network.wan
network.wan=interface
network.wan.force_link='1'
network.wan.macaddr='0c:ef:af:d2:a9:b8'
network.wan.proto='dhcp'
network.wan.ifname='eth0.2'
选项 说明 可选值
ifname 设备接口名 eth0.2
proto 协议类型 static:静态 IP 地址
dhcp:动态获取 IP 地址
pppoe:拨号上网
pptp:远程 VPN 服务器
3g:连接 3G/4G 无线电话网络
macaddr WAN 口 MAC 地址,修改该地址即可实现 MAC 地址克隆 首次数据根据 factory 分区内参数自动生成

动态获取 IP 选项

选项 说明 可选值及说明
proto 协议类型 dhcp
ifname 设备名称 eth0.2
macaddr MAC 地址 根据 factory 分区自动生成的值
mtu 最大数据包大小,默认不用设置 数值
reqopts 在向 DHCP 服务器发出请求时增加附加的 DHCP 信息 字符串
dns 使用指定的 DNS 服务器地址替代获得的 DNS 字符串

指定静态 IP 选项

选项 说明 可选值及说明
proto 协议类型 static
ifname 设备名称 eth0.2
macaddr MAC 地址 根据 factory 分区自动生成的值
mtu 最大数据包大小,默认不用设置 数值
ipaddr WAN 口的 IP 地址 字符串
netmask WAN 口的子网掩码 字符串
gateway 默认网关 字符串
broadcast 广播地址 字符串
dns 使用指定的 DNS 服务器地址替代获得的 DNS 字符串

PPPOE 拨号上网选项

选项 说明 可选值及说明
proto 协议类型 pppoe
ifname 设备名称 eth0.2
macaddr MAC 地址 根据 factory 分区自动生成的值
mtu 最大数据包大小,默认不用设置 数值
username 拨号使用的帐号 字符串
password 拨号使用的密码 字符串
ac 使用指定的访问集中器进行连接 字符串
service 连接的服务名称 字符串
connect 连接时候执行的外部脚本 字符串
disconnect 断开连接时执行的外部脚本 字符串
demand 等待多久没有活动就断开 PPPOE 连接 数字,单位秒
dns DNS 服务器地址 字符串
pppd_options 用于 pppd 进程执行时候的附加参数 字符串

配置 LAN 口服务

::: tip

LAN 口下的设备可以通过 WAN 口接入网络,也可以直接访问设备上的各项功能(系统防火墙对 LAN 口默认不做任何拦截)。

:::

查看 LAN 口配置

root@Thingoo:~# uci show network.lan
network.lan=interface
network.lan.force_link='1'
network.lan.macaddr='0c:ef:af:d2:a9:b9'
network.lan.type='bridge'
network.lan.proto='static'
network.lan.ipaddr='192.168.8.1'
network.lan.netmask='255.255.255.0'
network.lan.ip6assign='60'
network.lan.ifname='eth0.1'
选项 说明 可选值及说明
ifname 设备名称 eth0.1
proto 协议类型 static
macaddr MAC 地址 根据 factory 分区自动生成的值
type 网络类型 bridge,桥模式(这样才有交换机功能)
ipaddr LAN 口的 IP 地址,用于局域网内其它设备访问路由器 字符串
netmask LAN 口的子网掩码 字符串

::: warning

修改过 LAN 口的配置后要重启网络以及 DHCP 服务。

root@Thingoo:~# /etc/init.d/network restart
root@Thingoo:~# /etc/odhcpd restart

:::

配置无线网络

查看无线网络配置

root@Thingoo:~# cat /etc/config/wireless

config wifi-device 'radio0'
    option type 'ralink'
    option variant 'mt7628'
    option country 'CN'
    option hwmode '11bgn'
    option htmode 'HT40'
    option channel 'auto'
    option disabled '0'

config wifi-iface 'ap'
    option device 'radio0'
    option mode 'ap'
    option network 'lan'
    option ifname 'ra0'
    option ssid 'Thingoo-A9B8'
    option hidden '0'
    option encryption 'psk2'
    option key 'passworkd'

config wifi-iface 'sta'
    option device 'radio0'
    option disabled '1'
    option mode 'sta'
    option network 'wwan'
    option ifname 'apcli0'
    option ssid 'UplinkAp'
    option key 'SecretKey'

wifi-device 选项参数

选项 说明 可选值及说明
type 设备类型 ralink
channel 无线信道,不同的国家支持的信道不同 auto 或 1~13
hwmode 无线协议类型 11bgn: IEEE802.11b + IEEE802.11g + IEEE802.11n
htmode 无线频宽 HT20、HT40
disable 关闭无线设备 0:启用;1:禁用
country 国家类型,跟支持的频道有关,中国为 CN,支持 1~13 CN:中国

wifi-iface 选项参数

选项 说明 可选值及说明
device 关联的无线设备 radio0
network 关联网络设备类型 lan:表示桥接到 LAN 网上
wwan:表示启用无线中继
mode 无线工作模式 ap:热点模式
sta:客户端模式
ssid 无线的名称 字符串
hidden 隐藏无线名称 0:显示名称
1:隐藏名称
encryption 无线加密方式 none:不加密
psk:WPA-PSK 模式
psk2:WPA-PSK2 模式
psk-mixed:WPA-PSK / WPA-PSK2 混合模式
key 无线密钥 字符串,长度为 8~64 个 ASCII 字符

::: tip

修改过无线配置后需要使用命令 wifi 使之生效

:::

查看无线网络状态

root@Thingoo:~# iwinfo
ra0       ESSID: "Thingoo-A9B8"
          Access Point: 0C:EF:AF:D2:A9:B8
          Mode: Client  Channel: 7 (2.442 GHz)
          Tx-Power: 18 dBm  Link Quality: 10/100
          Signal: -256 dBm  Noise: -82 dBm
          Bit Rate: 150.0 MBit/s
          Encryption: unknown
          Type: wext  HW Mode(s): 802.11bg
          Hardware: unknown [Generic WEXT]
          TX power offset: unknown
          Frequency offset: unknown
          Supports VAPs: no  PHY name: ra0

搜索范围内的其它无线设备

root@Thingoo:~# iwinfo ra0 scan
Cell 01 - Address: 50:64:2B:4B:02:4E
          ESSID: "Xiaomi_024D"
          Mode: Master  Channel: 11
          Signal: -256 dBm  Quality: 55/100
          Encryption: WPA2 PSK (TKIP, AES-OCB)

Cell 02 - Address: 44:97:5A:EC:C5:14
          ESSID: "FAST_C514"
          Mode: Master  Channel: 1
          Signal: -256 dBm  Quality: 47/100
          Encryption: WPA2 PSK (AES-OCB)

配置例子

以下例子里面有mac地址,不要直接拷贝。

以太网模式

网线连接上级网络

  # vi /etc/config/network
  config interface 'loopback'
          option ifname 'lo'
          option proto 'static'
          option ipaddr '127.0.0.1'
          option netmask '255.0.0.0'

  config globals 'globals'
          option ula_prefix 'fd77:3f61:abac::/48'

  config interface 'lan'
          option type 'bridge'
          # 内网lan interface使用的是静态ip,下面已经指定了静态ip和掩码
          option proto 'static'
          option ipaddr '192.168.99.1'
          option netmask '255.255.255.0'
          option ip6assign '60'

  config device 'lan_dev'
          option name 'eth0'
          option macaddr 'ac:23:3f:c0:3c:f0'

  config switch
          option name 'switch0'
          option reset '1'
          option enable_vlan '0'

  config interface 'wan'
          option ifname 'eth0'
          # 外网wan interface使用的是dhcp,不用指定静态ip和掩码
          option proto 'dhcp'
  # vi /etc/config/wireless
  config wifi-device 'radio0'
          option type 'mac80211'
          option channel 'auto'
          option country 'CN' # 指定国家地区,用于遵循当地的无线射频的法规(https://openwrt.org/docs/guide-user/network/wifi/wifi_countrycode)
          # 指定wifi的信道范围
          option channels '1-13'
          option hwmode '11g'
          option path 'platform/10300000.wmac'
          # htmode使用20MHz的频宽
          option htmode 'HT20'
          option disabled '0'

  config wifi-iface 'ap_radio_2G_0'
          option device 'radio0'
          # network为lan,表用使用的是/etc/config/network中的lan interface的配置,也就是对于连接了这个热点的网络的客户端都为lan interface指定的网段
          option network 'lan'
          # mode为ap,表明网关自身发射ap热点
          option mode 'ap'
          option ssid 'GW-AC233FC03CF0'
          option encryption 'none'

WiFi模式

wifi连接上级wifi热点

  # vi /etc/config/network
  config interface 'loopback'
          option ifname 'lo'
          option proto 'static'
          option ipaddr '127.0.0.1'
          option netmask '255.0.0.0'

  config globals 'globals'
          option ula_prefix 'fd77:3f61:abac::/48'

  config interface 'lan'
          option type 'bridge'
          option proto 'static'
          option ipaddr '192.168.99.1'
          option netmask '255.255.255.0'
          option ip6assign '60'

  config device 'lan_dev'
          option name 'eth0'
          option macaddr 'ac:23:3f:c0:3c:f0'

  config switch
          option name 'switch0'
          option reset '1'
          option enable_vlan '0'

  config interface 'wan'
          option proto 'dhcp' 
          # 当proto为dhcp时,下面ipaddr netmask gateway无效(当静态ip地址才有效),但dns有效
          option ipaddr '192.168.0.2'
          option netmask '255.255.255.0'
          option gateway '192.168.0.1'
          list dns '8.8.8.8'
          list dns '114.114.114.114'
  # vi /etc/config/wireless
  config wifi-device 'radio0'
          option type 'mac80211'
          option channel 'auto'
          option channels '1-13'
          option hwmode '11g'
          option path 'platform/10300000.wmac'
          option htmode 'HT20'
          option disabled '0'

  config wifi-iface 'ap_radio_2G_0'
          option device 'radio0'
          option network 'lan'
          option mode 'ap'
          option ssid 'GW-AC233FC03CF0'
          option encryption 'none'

  config wifi-iface 'sta_radio_2G_0'
          # network参数为wan,说明使用的网络interface是wan接口的(也就是/etc/config/network中的interface wan配置)
          option network 'wan'
          option device 'radio0'
          # mode 为sta,表明作为station模式连接这个上级wifi热点
          option mode 'sta'
          option disabled '0'
          option ssid '@PHICOMM_AE'
          option cipher 'auto'
          option encrypt 'psk2'
          option encryption 'psk2'
          option key 'beacon888'