Отключение интернета по времени в Linux

Поэтому я хочу заблокировать доступ в Интернет на своем ноутбуке с Linux через определенный час. Первоначально я собирался попробовать chomper в паре с заданием хрона, чтобы добиться цели, но столкнулся с ошибкой.

В частности, я хочу отключать доступ в Интернет каждую ночь (т.е. в час ночи). Внесение определенных сайтов в белый список — это бонус, но не необходимость.

Первое место, которое я бы посмотрел, это мой маршрутизатор. Часто они обеспечивают некоторую «защиту от детей» и аналогичные ограничения с расписаниями/фильтрами для каждого клиента. Если у вас этого нет, грубой идеей будет cron-job, переключающий маршрут по умолчанию на локальный хост в ваше «время выключения» и восстанавливающий правильный, когда вы хотите восстановить соединение. Тем не менее, это далеко не та гибкость, которую дает вам Chomper.
У меня нет доступа к системе маршрутизатора в моем здании.
Честно говоря, даже хроническая работа по отключению Wi-Fi на моем компьютере была бы неплохим началом.
man ifup:) Итак, если ваш интерфейс WiFi назван wlan0(проверьте вывод, ifconfigчтобы узнать), ifdown wlan0он должен отключить ifup wlan0его и снова включить. Положите каждый в его соотв. cron (после проверки того, что они выполняют свою работу), и все готово. Конечно, нужно запускать от имени root.
@ Иззи, можете ли вы написать полный пример этого в качестве ответа, включая некоторые подробности о хронических заданиях (я знаю, что они используются для автоматизации запланированных задач, но, честно говоря, я не знаком с командами, которые используются для управления ими)? Если хорошо сделано, это будет приемлемым ответом.

Ответы (1)

Программное обеспечение, необходимое для «базового варианта» (как вы написали: «Хронирование работы по отключению Wi-Fi на моем компьютере было бы неплохим началом»), уже доступно на вашем компьютере с Linux:

  • Cron для тайминга
  • ifconfigдля определения вашего интерфейса WiFi
  • ifupи ifdownдля подключения/отключения интерфейса

Первый шаг: узнайте, как называется ваш WiFi-интерфейс. Для этого просто запустите ifconfig(или ifconfig -aдля более подробной информации). Не имея WiFi на моей машине с Linux, я не знаю, какое имя может быть — для этого примера предположим, что это wifi1.

Затем настройте конфигурацию Cron. Если бы это была ежечасная/ежедневная/еженедельная/ежемесячная задача, это было бы так же просто, как вставить скрипты, /etc/cron.(hourly|daily|weekly|monthly)но нам нужно одно действие в данный момент времени. Итак, мы помещаем новый файл в /etc/cron.d, и называем его, например, wifitoggle. Если бы этот сайт содержал руководство по cron, это зашло бы слишком далеко, но вы можете найти его на help.ubuntu.com . Хорошая идея ознакомиться с ней, пригодится в следующий раз. На это время и лень рассмотрите возможность использования генератора crontab . Добавьте сгенерированные строки (2, одна для отключения в 1:00 ( ifdown wifi1), а другая для повторного установления соединения ( ifup wifi1) в 7:00 или где-то еще) в/etc/cron.d/wifitoggleфайл и сохраните его — все готово. Cron автоматически обнаруживает новые файлы поблизости или изменения в них и соответствующим образом обновляет свои расписания.

Все еще делаю некоторые настройки, чтобы заставить эту работу работать. До сих пор я обнаружил, что мне нужно использовать sudo ifconfig wlan0 upи sudo ifconfig wlan0 downсоответственно, чтобы заставить работать основные команды.
Угу, конечно. Я думал о «системном задании cron» здесь, поскольку сетевое соединение не основано на пользователе, вам, безусловно, нужны права root для этого.