10
ноябрь
2022
17:00

Скрипт для удаления рекламы с веб страниц на основе файла hosts

10 ноябрь 2022 17:00

На смартфоне я для блокировки рекламы пользуюсь программой AdAway. Для компьютера под Linux я написал короткий сценарий на языке sh для создания файла hosts из 4 источников (3 из которых загружаются из www, один свой).

Суть сценария - загрузка из url и file специальных hosts для блокировки рекламы, затем их объединение в единый файл и копирование поверх файла /etc/hosts.

Сценарий прилагаю в архиве ZIP (обновлён 16.01.2025).

gethosts.zip

Перед запуском сценария, необходимо сделать резервную копию файла /etc/hosts.

Преимущество сценария в том, что его можно запускать лишь эпизодически, частый запуск противопоказан.
После замены файла hosts не только удаляется реклама, но и сокращается время на загрузку веб страниц.

Дополнение от 15.01.2025:

Чтобы блокировка рекламы работала корректно, на локальном ПК не должно быть запущено служб, прослушивающих порты 80 и 443.

Выполнить проверку. что по портам 80 и 443 не запущены службы можно командой:
sudo netstat -tlpn | grep -E ':80|:443'

Если установлен Apache2, следует изменить его порт 80 на другой, например, 82, в файлах:

  • /etc/apache2/ports.conf
  • /etc/apache2/sites-enabled/000-default.conf
    После редактирования файлов конфигурации, нужно перезапустить веб сервер: sudo service apache2 restart

Дополнение от 23.01.2025:

Чтобы очистить записи, попавшие в кеш локального DNS сервера службы resolved, после обновления файла hosts, рекомендую сбросить локальный кеш DNS, с помощью команды:
sudo resolvectl flush-caches
Внёс соответствующее изменение в командный файл gethosts.sh.