十月 4, 2020

如何针对公共网络限速

使用 OpenWRT 创建访客网络并限制上下行速度

通过 ssh 的方式连接到你的路由器。
需要添加一个新的网络接口。使用如下命令编辑接口配置文件

vi /etc/config/network

然后在文件最后添加以下配置。这里默认使用 10.0.0.0/24 的网络地址。

config 'interface' 'public'
        option 'proto' 'static'
        option 'ipaddr' '10.0.0.1'
        option 'netmask' '255.255.255.0'

然后,让我们来添加一个新的客人网络。使用如下命令编辑网络配置文件

vi /etc/config/wireless

在文件最后按照下面的格式模板添加配置

config 'wifi-iface'
        option 'device'     'wifi0'
        option 'mode'       'ap'
        option 'network'    'public'
        option 'ssid'       'Guest_WiFi'
        option 'encryption' 'none'
        option 'isolate'    1

这里的 device 指的是你无线路由器的无线设备的ID,一般在 wireless这个文件里有指定,应该使用目前无线路由器的SSID对应的那一段 config 内所表示的 device,一般为 radio0 其他参数根据需要变更。

定义一个新的DHCP地址池

vi /etc/config/dhcp

然后添加如下内容到文件最后

config 'dhcp' 'public'
        option 'interface'  'public'
        option 'start'      '50'
        option 'limit'      '200'
        option 'leasetime'  '1h'

最后需要给新建的网络添加默认的防火墙规则。这里只允许访问web站点的端口 即 44380

vi /etc/config/firewall

然后把下面这段同样的,添加到文件最后

config zone                                     
      option name 'public'                 
      option network 'public'              
      option forward 'REJECT'             
      option output 'ACCEPT'              
      option input 'REJECT'

config forwarding                               
      option src 'public'                  
      option dest 'wan'
      
config rule          
      option src 'public'               
      option src_port '67-68'
      option dest_port '67-68'
      option proto 'udp'
      option target 'ACCEPT'
      option name 'Allow DHCP request'

config rule                                     
      option src 'public'
      option dest_port '53'
      option proto 'tcpudp'
      option target 'ACCEPT'
      option name 'Allow DNS Queries'

config rule                                     
      option src 'public'
      option dest 'lan'
      option name 'Deny Guest on LAN'
      option proto 'all'
      option target 'DROP'

config rule                                     
      option target 'ACCEPT'
      option src 'public'
      option dest 'wan'
      option name 'Allow Guest on WAN http'
      option proto 'tcp'
      option dest_port '80'

config rule                                 
      option target 'ACCEPT'              
      option src 'public'                  
      option dest 'wan'
      option name 'Allow Guest on WAN https'
      option proto 'tcp'
      option dest_port '443'

config rule                                     
      option src 'public'
      option dest 'wan'
      option name 'Deny Guest on WAN'
      option proto 'all'                  
      option target 'DROP'

全部保存完成后 重启服务

/etc/init.d/dnsmasq restart
/etc/init.d/firewall restart
/etc/init.d/network restart

如何针对公共网络限速

这里需要安装 wshaper 包来实现

opkg install wshaper

然后编辑文件

vi /etc/config/wshaper

配置内容如下,注意限速单位是 kbps 然后配置内的上传是客户端的下载。下面的配置是每个无线客户端 下载 2Mbps 上传 512Kbps

config wshaper 'settings'
      option network 'public'
      option downlink '512'
      option uplink '2048'

最后 第一次安装后 需要重启路由器才能使限速生效。