# psocks: моє бачення фільтруючого проксі Після невеличкої передісторії => first-experience-with-tun2proxy-socks-hub.gmi ШІт досвід з tun2proxy/socks-hub => my-public-pac-files-asset.gmi Зробив собі "білий список" засобами PAC => crab-hole-as-pi-hole-alternative-in-rust.gmi Crab-hole DNS як 100% програмна альтернатива Pi-hole => pi-hole-manual-install-on-fedora-linux.gmi Ручне встановлення Pi-hole DNS на прикладі Fedora / Linux => rust-crates-mirroring-with-kellnr.gmi Організація локального дзеркала залежностей Cargo з Kellnr в пошуках рішення для блокування паразитних конектів що палять мою приватність і їдять батарею SSH тунелюванням того сміття, погравшись день-другий з білими списками PAC, виявив для себе юзабельність такої концепції: сайти реально працюють. Наприклад, для Youtube - достатньо додати 2 технічні домени `.ytimg.com` і `.googlevideo.com` а для Github - лише `.githubusercontent.com`. Тобто Веб цілком можна сьорфити, враховуючи, що 99% трафіку не полишає соціальні мережі та платформи типу Stackoverflow, да і то, я останнім часом не вилажу з Duck.ai. Коротше вирішив таки заморочитись і зробити собі софтинку саме під свої задачі: тупо локальний проксі SOCKS, з файлами білих списків. Ніяких більше там складних синтаксисів налаштування - для них я піду на перевірений privoxy з ACL. Чому я ще вирішив написати велосипед, бо ніде не бачу чогось схожого до pi-hole, щоб можна було смакувати фільтровану статистику і робити на її основі висновки. За одно, я вирішив зробити засобами JSON/API й можливість оновлювати списки "на льоту" без ребуту серверу проксі і перезавантаження реєстрів. Тут головне дійсно мати можливість швиденько розблокувати собі потрібний ресурс прямо в браузері. А статистика вже як бонус, зараз там не густо: => psocks-my-vision-of-filtering-out-proxy/psocks-totals-json-api.png Вигляд головної сторінки JSON/API (скріншот) Згодом планую розширити до звіту по доменам, хоча не знаю чи продуктивність сервера того варта... * я ще спочатку хотів зробити саме HTTP проксі з рандомайзером заголовків, але провтикав специфіку тунелювання HTTPs, тому протокол обрано саме SOCKS5. * будувати ланцюги проксі засобами цього сервера я не планую, натомість буду пускати окремими процесами, а коли мені знадобляться складні правила, використовуватиму сторонні маршрутні проксі типу proxychains або знову таки, PAC файл. * за якість коду не ручаюсь, бо працював швидко, щоб отримати результат; я поки не дуже орієнтуюсь в `tokio` і асинхронному програмуванні зокрема, але у якості бази було використано офіційний приклад (github.com/dizda/fast-socks5/blob/master/examples/server.rs) - з прикладу я не випилював імплементацію UDP, бо ще не визначився. І так, над назвою довго не думав, знайомтесь: => https://codeberg.org/postscriptum/psocks Також, списки для нього: => https://codeberg.org/postscriptum/psocks-list