我希望能够每隔10-20(任意数量)的分钟阻止一定数量的家庭网络端口,这对于一对(同样不是很重要)的秒数。
原因是我儿子玩电脑游戏太多了,他同意每周只玩两次,但几乎每天都玩。我理解退出游戏并不“好”,因为其中一个被称为“滴管”或某个同行的东西。 (他经常告诉我他们会叫他,如果我只是拉插头)。因此,通过上述方法,我打算使用这种同伴压力的力量来使他尊重我们的协议。如果我以上述方式拦截端口,他将始终能够开始游戏,但几分钟后就会被踢出去,我希望他不会在休息日期间尝试玩,只有在我们这几天同意。 我知道我可以阻止它们让我们整天说出mo-thu和sa,但那对我来说更像是一种强制控制。通过另一种方法,它更像是一个同行的东西,我希望他更有可能坚持。我不想禁止他玩我只是希望他不想在那段时间玩(因为那时候他会继续被称为滴管)
答案 0 :(得分:0)
您没有告诉我们您使用的路由器。我将使用iptables
和recent
模块为您提供在Linux中进行设置的命令。
您必须相应地更改$port_to_block
,$play_seconds
和$stop_seconds
。
iptables -N PLAY_CHECK
iptables -N PLAY_START
iptables -N PLAY_STOP
iptables -A FORWARD -p tcp --dport $port_to_block -j PLAY_CHECK
iptables -A PLAY_CHECK -m recent --name NOT_PLAYING --rcheck --seconds $stop_seconds -j DROP
iptables -A PLAY_CHECK -m recent --name PLAYING ! --rcheck -j PLAY_START
iptables -A PLAY_CHECK -m recent --name PLAYING --rcheck --seconds $play_seconds -j ACCEPT
iptables -A PLAY_CHECK -j PLAY_STOP
iptables -A PLAY_START -m recent --name NOT_PLAYING --remove
iptables -A PLAY_START -m recent --name PLAYING --set
iptables -A PLAY_START -j RETURN
iptables -A PLAY_STOP -m recent --name PLAYING --remove
iptables -A PLAY_STOP -m recent --name NOT_PLAYING --set
iptables -A PLAY_STOP -j DROP