2014-01-10 2 views
0

Я хочу, чтобы блокировать определенное количество портов нашей домашней сети каждые 10-20 (произвольное число) минут для пары (опять же не очень важно) секунд.Блок-порт каждые двадцать минут в течение нескольких секунд

Причина, по которой мой сын слишком много играет в компьютерные игры, и он согласился играть только два раза в неделю, но вместо этого играет почти каждый день. Я понимаю, что это не «приятно», чтобы отказаться от игры, потому что тогда его называют «капельницей» или чем-то другим. (Он часто говорил мне, что они назовут его, если я просто вытащу пробку). Таким образом, по описанному выше методу, я намерен использовать это сильное давление со стороны сверстников, чтобы заставить его соблюдать наши соглашения. Если я заблокирую порты таким образом, он всегда сможет начать игру, но после этого выйдет из нее через несколько минут, и я надеюсь, что он не будет пытаться играть в выходные дни и только в те дни, когда мы договорились о. Я знаю, что я мог бы просто заблокировать их, чтобы позволить говорить mo-thu и sa весь день, но тогда это было бы более принудительным контролем с моей стороны. через другой метод это больше похоже на то, что я надеюсь, что он с большей вероятностью будет придерживаться. Я не хочу запрещать ему играть, я просто хочу, чтобы он не хотел играть в течение этого времени (потому что тогда он будет называться капельницей в те дни)

+1

Это похоже на попытку технического решения проблемы управления. – EJP

ответ

0

Вы не сказали нам, какой маршрутизатор вы используются. Я дам вам команды по настройке в Linux, используя iptables и модуль recent.

Вам необходимо будет изменить $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 
Смежные вопросы