V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
OpenWrt 是一个专门面向嵌入式设备的 Linux 发行版。你可以将 OpenWrt 支持的型号的嵌入式设备,比如各种路由器上的系统,换成一个有更多可能性可以折腾的 Linux 系统。
OpenWrt 官方网站
vicalloy
V2EX  ›  OpenWrt

OpenWrt 系统系统如何控制设备定时断网

  •  
  •   vicalloy · 2023-07-28 09:28:59 +08:00 · 2366 次点击
    这是一个创建于 496 天前的主题,其中的信息可能已经有所发展或是发生改变。
    之前小米路由器可以给连接路由器的终端设置定时断网。最近新换了个京东云,没有这个功能了。
    好在这个路由器基于 OpenWrt 系统,而且很容易就破解了 SSH 登录,可以折腾一下。
    不知道有没有什么办法可以实现定时断网功能。
    另外不知道是否有办法把 OpenWrt 自的那套 web 管理软件安回去。
    10 条回复    2023-07-31 20:49:33 +08:00
    huangmingyou
        1
    huangmingyou  
       2023-07-28 09:41:41 +08:00   ❤️ 1
    命令行用 iptables 可以
    Chihaya0824
        2
    Chihaya0824  
       2023-07-28 10:26:07 +08:00   ❤️ 1
    Corntab + iptables?
    用的 mac address 去做的区分
    22 点断网
    0 22 * * * /usr/sbin/iptables -A FORWARD -m mac --mac-source AA:BB:CC:DD:EE:FF -j DROP
    17 点联网
    0 17 * * * /usr/sbin/iptables -D FORWARD -m mac --mac-source AA:BB:CC:DD:EE:FF -j DROP
    放到 crontab 里就行了,但是 mac 地址很容易被直接改掉,如果真的要断网就两个 wifi ,一个到点了就把 wan 给 down 了,另一个没限制你用这样更好
    vicalloy
        3
    vicalloy  
    OP
       2023-07-28 11:00:15 +08:00
    目前看下来用 cron+iptables 是最可行的方案了。就是用起来不方便,无法通过 web 进行管理(比如临时放开限制)。
    考虑自己封装一个简单的 web 管理界面用来做控制。
    cq65617875
        4
    cq65617875  
       2023-07-28 11:06:14 +08:00
    crontab 方法最简单
    可以直接操作 arp table
    然后放开的时候清空下整个表
    Metre
        5
    Metre  
       2023-07-28 11:06:44 +08:00   ❤️ 1
    luci-app-accesscontrol
    yolee599
        6
    yolee599  
       2023-07-28 13:00:49 +08:00 via Android
    看看是什么 CPU 的,到 openwrt 官网看看有没有固件包,刷了就有 luci 界面了
    nitmali
        7
    nitmali  
       2023-07-28 13:30:54 +08:00
    我直接 red node + home assistant 通过远程 ssh 命令做成开关桥接到 homekit
    lovelylain
        8
    lovelylain  
       2023-07-28 13:50:09 +08:00
    将 iptables 命令包装成脚本,用 command_line 接入 homeassistant 做成开关,在 HA 界面上打开开关断网关闭开关恢复,还能用 HA 的自动化设置各种自动断网条件,例如定时断网定时恢复,打开电视多长时间后断网,断网多长时间后恢复。相关文档:
    iptables 控制上网: https://github.com/4IceG/luci-app-timecontrol/blob/main/luci-app-timecontrol/root/etc/init.d/timecontrol#L43
    command_line 接入: https://www.home-assistant.io/integrations/command_line/
    HA 自动化: https://www.home-assistant.io/docs/automation/basics/
    a90405
        9
    a90405  
       2023-07-28 14:50:54 +08:00
    Openwrt 防火墙自带流量控制:

    Web interface instructions
    Adjust the parameters according to your configuration.

    Navigate to LuCI → Network → Firewall → Traffic Rules.
    Click Add and specify:
    Name: Filter-Parental-Controls
    Protocol: Any
    Source zone: lan
    Destination zone: wan
    Action: reject
    (Optional) If you want to add a MAC or IP limitation, on the Advanced Settings tab specify:
    Source MAC address: 00:11:22:33:44:55
    Source IP address: 192.168.1.2
    On the Time Restrictions tab specify:
    Week Days: Monday, Tuesday, Wednesday, Thursday, Friday
    Start Time: 21:30:00
    Stop Time: 07:00:00
    Click Save, then Save & Apply.
    You can add another rule to apply time restrictions on weekend.
    vicalloy
        10
    vicalloy  
    OP
       2023-07-31 20:49:33 +08:00
    加个后续。
    最终方案:

    1. 使用 uci 命令修改 wireless 配置文件,将需要管控的设备加入/移出 Wi-Fi 黑明单。
    2. 使用 crontab 创建定时任务,实现定时控制。
    3. 在路由器的黑明单中无法查看到通过修改 wireless 加入黑明单的设备。但可以通过将设备加入黑名单再移除的方式对设备进行临时解禁。

    具体过程见:
    https://haoluobo.com/2023/07/jd-cloud-wireless-treasure-openwrt-controls-client-timing-disconnection/
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5867 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 01:46 · PVG 09:46 · LAX 17:46 · JFK 20:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.