hosty: Скрипт для видалення реклами в будь-якому браузері

Оскільки я спробував додаток AdAway для Android, я шукав те саме для Linux, але не зміг його знайти, якщо є подібні рішення, подібні до вже опублікованого тут Скрипт для видалення реклами в будь-якому браузері, але це не зовсім те, що я шукаю. Яка різниця? AdAway бере кілька шрифтів, об’єднує їх, видаляє повторювані рядки та очищає файл.

А також скрипти, які він виявив, не використовували ваш оригінальний файл хостів, тобто конфігурації файлу хостів не були у створеному файлі хостів. Тож шукаючи, я знайшов сценарій, який підійшов дуже близько, я відредагував і змінив його, щоб нарешті досягти саме того, що я хотів, результатом цього є привітний, так називайте це.

Переваги перед AdBlock та іншими розширеннями браузера? Окрім того, що це працює відразу на всій операційній системі, це дозволяє уникнути використання ресурсів такого типу розширень.

Вимоги:

Потрібні cURL та Wget

Встановлюємо вимоги:

Ubuntu / Mint / Debian:
$ sudo apt-get install curl wget

Арка / Манджаро / Антергос:
$ sudo pacman -S curl wget

Fedora / RHEL / CentOS:
$ sudo yum install curl wget

СУЗА:
$ sudo zypper in curl wget

Встановити hosty:

$ sudo rm /usr/local/bin/hosty ; sudo wget -c https://github.com/juankfree/hosty/raw/master/hosty -O /usr/local/bin/hosty ; sudo chmod +x /usr/local/bin/hosty

Тепер ми запускаємо його (не забувайте запускати його принаймні 1 раз на тиждень або на місяць, щоб оновити файл хостів і заблокувати нові рекламні сайти):
$ hosty

Відновити оригінальний файл хостів

$ sudo cp /etc/hosts.original /etc/hosts

Видаліть скрипт

$ sudo rm /usr/local/bin/hosty

Порада: Якщо ви хочете змінити файл hosts, я рекомендую вам змінити файл /etc/hosts.original, а потім запустити hosty, таким чином hosty згенерує файл hosts з вашими особистими налаштуваннями (Зробіть це, якщо ви вже запустили hosty, не раніше.).

Весь код сценарію, доступний у моєму GitHub.

Привіт!


Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.

  1.   Жоржиціо - сказав він

    Не забудьте також додати його до Cron. Я зробив це, щоб зробити цей хіт для мене.

    Я просто тестував це, і воно чудово працює. Я б навіть зайшов так далеко, сказавши, що він працює краще, ніж метод з такими демонами, як Squid або Privoxy.

    Це оцінено!

    1.    Жоржиціо - сказав він

      Сумніви, так:

      Як я можу внести свій список заблокованих оголошень? Я завантажу деякі на свій github, які я щойно спробував, і вони працюють.

      Драма також полягає в тому, що у просторі (розділі) залишається простір із попередженням про те, що «його не можна зв’язати». Допомога вдячна 😀

      1.    Джонфрі - сказав він

        Я отримав проблему, вона вже була включена, запустіть hosty, щоб оновити хости. Вони беруться безпосередньо з вашого сховища.

  2.   галас - сказав він

    Чудовий метод. Просто і легко. Дякую.

  3.   Чапарал - сказав він

    Дякуємо за вступ. Працює.

  4.   ThecaTony - сказав він

    Щиро дякую за вашу роботу, я спробую.

  5.   Хоакін - сказав він

    Гарний пост! Я думаю, ви неправильно написали команду, якщо я не помиляюсь:

    sudo cp /etc/hosts.original / etc / hosts

    Чи не повинно бути навпаки?

    sudo cp /etc/hosts /etc/hosts.original

    1.    Джонфрі - сказав він

      Ні, це добре написано для відновлення вихідного файлу. Єдиними кроками є встановлення та запуск, інші - повернення до початкового хосту та видалення програми.

      1.    Хоакін - сказав він

        Так, це те, що я не бачив коду вашого сценарію. Тепер я розумію, що сценарій робить копію оригіналу під назвою "hosts.original", і я вас зіпсував. Я думав, що це було зробити копію перед запуском сценарію. На здоров’я!

  6.   соймічний - сказав він

    Дуже добре, мені це дуже подобається.

    Єдина пропозиція, яку я бачу, полягає в пункті "Синтаксичний аналіз, очищення, дедуплікація, сортування ...", щоб включити туди файл "білого списку" або винятки

    1.    Джонфрі - сказав він

      Готово, відтепер ви можете включати винятки в /etc/hosts.whitelist по одному на рядок. Це може бути адреса сама або з 0.0.0.0 або з 127.0.0.1 на початку.

  7.   янпоки - сказав він

    Це працює дуже добре принаймні зараз !!!

    Щиро дякую 🙂

  8.   Берт - сказав він

    Чудово. Якраз те, що мені було потрібно. У Kontact було неможливо відкрити браузер без рядка оголошень, що звисає зі статті для читання.
    Спасибо.

  9.   Xurxo - сказав він

    Дякуємо за розміщення сценарію.
    Це легко перевіряти, редагувати і позбавляє мене від необхідності оновлювати мій список у / etc / hosts щораз частіше.

  10.   rawBasic - сказав він

    Дуже добре. Дякую, що поділились. Привітання з Аргентиною.

  11.   Мартін - сказав він

    Одне питання, чи виявляється цей метод на веб-сайтах, що блокують рекламу, які кишать в Інтернеті?

    1.    Джонфрі - сказав він

      Якщо це можна виявити, поки що лише на одному веб-сайті у мене була ця проблема.

      1.    Джонфрі - сказав він

        Виправте це, додавши Інтернет до білого списку.

      2.    Мартін - сказав він

        Дякую за відповідь та за інструмент.

  12.   xpt - сказав він

    Дуже добре!!
    Спасибі!

  13.   pegasusonline - сказав він

    Який хороший цей сценарій!

    В якості пропозиції я б сказав вам покращити реалізацію та масіфікацію сценарію - це те, що в інструкціях використовуйте git clone / git pull, щоб ми всі отримали користь від оновлень!

    Щиро дякую і продовжуйте так !!!

    привіт
    Пегас Онлайн

    1.    Джонфрі - сказав він

      Я не використовую git для цього, але сценарій ЗАВЖДИ запускається автоматично, оновлюється з 0-го дня. За допомогою цього простого рядка він завжди працює оновленим.
      https://github.com/juankfree/hosty/blob/master/hosty

      На здоров’я! 🙂

  14.   моа - сказав він

    На якому етапі ви відновите вихідний файл хосту? Або мені не потрібно його відновлювати, тому що я не зробив цього кроку, оскільки додав його до cron, а також як би я змінив початкові хости, яким чином це відбувається 😀

    1.    Джуанк - сказав він

      Точно, відновлення початкового хосту, очевидно, не потрібно робити.

      Що стосується cron, я не використовую його з cron, Google, безсумнівно, має дуже хороші підручники, у моїх планах розширити чудовий графічний інтерфейс, cron тощо. але в майбутньому.

      Щоб змінити hosts.original:
      У терміналі: $ sudo FAVORITE-TEXT-EDITOR /etc/hosts.original

      Привіт!

  15.   циторак - сказав він

    Привіт

    Я намагався покращити ваш сценарій і залишив його таким: https://github.com/cyttorak/hosty/blob/master/hosty.sh
    Як щодо?
    Я вперше форкуюсь на github, тому, будь ласка, дайте мені знати, чи слід було перейменовувати сценарій, щоб поважати ваше авторство, додати якесь підтвердження чи просто так.
    Спасибо.

    1.    Джуанк - сказав він

      Здрастуйте!
      Я поясню, як нормально діяти в Github, коли ви хочете взяти участь у проекті 🙂
      1) Вилка - Готово
      2) Модифікуйте те, що хочете, зберігаючи сумісність з оригінальним проектом. Половину, ви модифікували речі, які не відповідають у чудовому оригіналі, я думаю, ви розумієте, що я маю на увазі, і будь ласка, зберігайте всі тексти англійською мовою.
      3) Зробіть запит на витяг до оригінального проекту, для цього потрібно перейти до вашого сховища, перейти до запитів на витяг https://i.imgur.com/Y1PMKST.png потім до нового запиту на витяг http://i.imgur.com/ljhaIdH.png і пояснити всі внесені зміни
      4) Тоді я приймаю витягування і вуаля, оригінальний хости оновлено вашим іменем користувача як автора.

      Дякуємо за ваш інтерес, якщо ви хочете швидко зв'язатися зі мною в моєму блозі, у вас є мої соціальні мережі http://juankblog.tk/ бажано в Twitter або G +, якщо у вас його немає. На здоров’я!

      1.    циторак - сказав він

        Привіт
        Я вже змінив повідомлення, яке я маю іспанською мовою.
        Щодо пункту 2 про сумісність, я не знаю, що ви маєте на увазі, це через використання awk?
        Напевно, щоб не виходити цілий день, тож завтра я зроблю це
        Дуже дякую. До побачення.

    2.    Джуанк - сказав він

      Я маю на увазі зміни в README.md, hosty та install.sh, вони не підтримуються проектом. Поверніться до вихідних файлів.

      1.    циторак - сказав він

        Це робиться https://github.com/juankfree/hosty/pull/3
        🙂

    3.    Джуанк - сказав він

      Готові, адаптуйте readme та aur-пакет до нового коду та зробіть їх більш читабельними.

      Вітаю та дякую за вашу співпрацю з проектом, хай живе безкоштовне програмне забезпечення! : D.

      1.    циторак - сказав він

        Одне питання, чому домени знаходяться в рядку 42 https://github.com/juankfree/hosty/blob/master/hosty.sh через спрагу? Чи не означає це білий список незалежно від того, що робить користувач?

    4.    Джуанк - сказав він

      Hosty - це блокувач реклами, я так думав, якщо він блокує веб-сайти таким чином, що неможливо отримати доступ до вмісту, це стає самонакладеною цензурою і відходить від того, щоб бути блокатором реклами, навіть якщо відображається більше оголошень, принаймні це я можу отримати доступ до веб-сайтів, оскільки ідея полягає в тому, щоб мати можливість використовувати всі веб-сайти, навіть якщо це означає перегляд реклами.

      Sed використовується, тому що ... я не знаю, він працював на той час, коли я писав його просто, ідея полягала в тому, щоб використовувати той самий метод, що і файл білого списку, а для користувача прийняти рішення з -a / –all параметр, якщо він хоче заблокувати все чи ні, хоча, я думаю, ви не можете брати параметри незміненими https://github.com/juankfree/hosty/blob/master/hosty чи якщо?

      1.    циторак - сказав він

        Я зробив тест і, якщо зміг.
        Миру http://back.host22.com/ej.sh
        і біжи
        bash <(curl -s http://back.host22.com/ej.sh) один два три чотири
        результат буде:
        Парам: один
        Парам: два
        Парам: три
        Парам: чотири

        Через деякий час я зроблю ще одне вдосконалення

      2.    циторак - сказав він

        Я зробив тест і, якщо зміг. Біжи
        bash <(curl -s back.host22.com/ej.sh) один два три чотири
        і результат буде:
        Парам: один
        Парам: два
        Парам: три
        Парам: чотири

        Через деякий час я зроблю ще одне вдосконалення

      3.    циторак - сказав він

        Я зробив тест і, якщо зміг. Біжи
        bash <(curl -s back. host22. com / ej.sh) один два три чотири # видалити пробіли з URL-адреси, я пишу це так, бо якщо не, коментар не буде опублікований
        і результат буде:
        Парам: один
        Парам: два
        Парам: три
        Парам: чотири

        Через деякий час я зроблю ще одне вдосконалення

  16.   нюхати - сказав він

    Думаю, було б занадто багато просити, щоб рекламне вікно зникало, як це робить adblock? 😛 просити, щоб воно не залишалося. В іншому сценарій казковий, і ви можете побачити споживання оперативної пам'яті та іншого, відкривши 20 вкладок. Чи можу я додати більше списків?

    1.    Юкітеру - сказав він

      Це не складно, ви можете використовувати власний стиль CSS у Firefox, щоб запобігти залишенню цих вікон. Тут є інформація про процедуру, http://foro.desdelinux.net/viewtopic.php?pid=22259#p22259

      Метод по суті той самий, додається лише ще один крок, щоб уникнути негарної сторінки, яка з’являється, кажучи, що веб-сторінка недоступна. Сподіваюся, це допоможе.

  17.   Патрісіо - сказав він

    Щиро дякую, це те, що я шукав для Spotify, чи вдасться приховати рекламний ящик клієнта Linux? Чи потрібно додавати його в Cron?

    З повагою,

    1.    Джуанк - сказав він

      Ласкаво просимо 🙂
      Не знаю, але це частина самого додатка, я не думаю, що це дуже просто
      Ні, я завжди оновлюю вручну
      Вітаю: D!

      1.    lesco - сказав він

        Я встановив його з AUR, але він взагалі не працює. Що може бути?

      2.    lesco - сказав він

        З інструкціями в цьому дописі це теж не працює для мене.

      3.    Джуанк - сказав він

        Встановіть його з AUR:
        $ yaourt -С приємно

        і запустіть його:
        $ sudo хост

        привіт

      4.    lesco - сказав він

        Я роблю це так, але це взагалі не працює. Я не бачу витікання реклами. Не знаю, в чому буде проблема. На даний момент я продовжую роботу з AdBlock Plus.
        Спасибо.

      5.    Юкітеру - сказав він

        @lesco перевіряє, чи файл / etc / hosts містить нові записи, створені сценарієм. Якщо можливо і для перегляду, передайте вміст файлу http://paste.desdelinux.net/

      6.    lesco - сказав він

        Я б сказав, що файл / etc / hosts практично порожній. Він має лише такі рядки:

        # Хости, що блокують рекламу, згенеровано пн, 2 березня 20:05:48 ART 2015
        # Не пишіть нижче цього рядка. Це буде втрачено, якщо ти знову побіжиш на худі.

        Коли я запускаю "sudo hosty", я отримую такий результат:
        http://paste.desdelinux.net/?dl=5110

        Привіт.

      7.    Джуанк - сказав він

        Виконайте команду:
        $ ls -lah / etc / hosts

        і вставте вивід сюди.

    2.    lesco - сказав він

      @JuanK, дякую за увагу. Це результат такої команди:

      -rw-r - r– 1 кореневий корінь 0 2 березня 20:15 / etc / hosts

      1.    Джуанк - сказав він

        Виконати:
        $ hosty –налагодження

        і вставте результат цієї команди та деякі перші рядки файлу, який позначений після "Результати можна побачити в"

      2.    Джуанк - сказав він

        Команда "hosty –debug"
        Це було погано, це "приємно", за ним два дефіси "-" та "налагодження"

      3.    Джуанк - сказав він

        налагоджений простірний дефіс середній дефіс

      4.    lesco - сказав він

        Результат "hosty –debug":

        http://paste.desdelinux.net/?dl=5112

        Файл, згаданий після “Ви можете побачити результати в”, це /tmp/tmp.viLL774YmV у моєму випадку, і його єдиними рядками є:

        # Хости, що блокують рекламу, згенеровано ср, 4 квітня 23:38:18, АРТ 2015
        # Не пишіть нижче цього рядка. Це буде втрачено, якщо ти знову побіжиш на худі.

        У файлі більше немає рядків.

  18.   Гій Монор - сказав він

    Привіт Джон!

    моя подяка за цей великий розвиток, який називається hosty.
    Я знаходив адреси, які хотів додати до приємних нових оголошень, як я та інші могли допомогти вам додати їх до "сховища" оголошень?

    привіт від ARG

    Гіля

  19.   Феліпе - сказав він

    Привіт,
    Чи можете ви помістити це в смартфон, який має ubuntu, або вам потрібно щось змінити, щоб адаптувати його? І якщо відповідь позитивна, то якого розміру це більш-менш після надягання? щоб знати, чи вистачає мені місця.
    спасибі

  20.   Пабло - сказав він

    Сценарій не працює на таких дистрибутивах, як Gentoo, які за замовчуванням не використовують sudo. Вам слід зробити версію без sudo та вказати, що cronjob доведеться створювати у адміністраторі cron.

    В іншому випадку відмінна ідея. Потрібно було щось зручне, як Adaway, але для Linux.
    Привіт.

  21.   Марсело - сказав він

    Дуже дякую!!! Дуже обрігадо !!!

  22.   gato2707 - сказав він

    На початку лютого 2016 року програма була змінена, щоб стати інструментом цензури. Більш широке пояснення в:

    https://elgatoconlinux.wordpress.com/2016/02/20/bloquear-publicidad-no-es-lo-mismo-que-el-activismo-politico-o-la-censura-moralina/

    1.    S - сказав він

      Привіт. Я автор змін і, отже, того, що я зіпсував, тому що ця зміна є ненавмисною помилкою.

      Сценарій був змінений, як пояснювалось у коміті, щоб дозволити дві речі
      1- Щоб сценарій міг використовувати шрифти у zip та .7z
      2- Щоб користувач міг додавати джерела, не вводячи їх у сценарій
      (Ви можете перевірити це в коментарі до злиття, який вносить помилку, про яку ви згадали).

      Спочатку я знайшов декілька джерел у zip та 7z, і мені здалося цікавим, що сценарій може з ними впоратися, тому я додав їх (я поставив усі знайдені для тестування краще, тому є все), щоб перевірити необхідні модифікації, щоб що я можу розпакувати та додати їх до результату.

      Потім я також хотів протестувати список аед і додав його.

      Протягом усього цього я зрозумів, що це завадило мені завантажувати зміни до проекту, оскільки цих джерел, як ти кажеш, не повинно бути в сценарії. Тож звідти виникла інша модифікація, про яку я вам говорив: користувач міг додавати джерела (через ~ / .hosty) без необхідності модифікувати сценарій.

      Через брак часу я вніс усі ці зміни неперервно, і, схоже, я забув видалити джерела сценаріїв перед тим, як зробити злиття.
      Щоб додати образи до травми, мій запит на витяг було прийнято, не розуміючи цієї помилки.

      Я думаю, зрозуміло, що ніхто не збирався включати ці джерела, сподіваючись, що ні оригінальний автор, який повинен прийняти запит на витяг, ні кінцеві користувачі не помітять. Це була просто помилка.

      Сподіваюся, я пояснив, що сталося, і прошу вас змінити свою публікацію так, щоб вона була відображена.

      Велике спасибі та вибачте за незручності.

  23.   Іван - сказав він

    Привіт Джон! Я використовую цей сценарій з моменту, коли ви його опублікували ... але тепер він більше не видаляє рекламу на YouTube ...

    ви могли б це виправити ??

    Дякую!!

    Привіт!

  24.   Предатукс - сказав він

    Добре.
    Я вже давно використовую hosty на Gnu / Linux. Я намагаюся змусити його працювати на Mac, не могли б ви допомогти мені?
    привіт