ProxiFyre: Open Source SOCKS5 Проксификатор для Windows
ProxiFyre: Open Source SOCKS5 Проксификатор для Windows
В умовах постійного посилення державного контролю над інтернетом, що виявляється, у тому числі, у блокуванні VPN-протоколів, проблема розробки альтернативних методів підключення стає все більш актуальною. Це питання не тільки теоретичне, а й дуже практичне. Переїхавши з Росії близько року тому, я продовжую активно використовувати збудовану багато років домашню інфраструктуру. Аж до недавнього часу мені достатньо було використовувати VPN на базі Wireguard для доступу до домашніх мереж, проте періодично спостерігаються певні аномалії - збільшення втрати UDP-пакетів і схоже на спроби блокування самого протоколу. Хоча в деяких випадках вдається обійти ці проблеми, змінюючи параметри саморобного клієнта Wireguard, загальна картина викликає певне занепокоєння. Ось чому сьогодні стає вкрай важливим шукати та розробляти альтернативні способи доступу до домашніх мереж на випадок масового блокування найпопулярніших VPN протоколів.
Один із перевірених часом та надійних методів, що не потребує складної спеціалізованої інфраструктури, – це тунелювання TCP-з'єднань з використанням SSH. Цей протокол критично важливий для стабільності роботи інтернету, і ймовірність його масового блокування виглядає вкрай малою. Ймовірно, що найбільшими труднощами, з якими ми можемо зіткнутися, є обмеження на швидкість з'єднання. Однак, навіть у цьому випадку, доступ до домашніх мереж буде збережено, залишаючи час для пошуку та вивчення інших можливих рішень. Унікальною особливістю SSH є вбудований SOCKS5 проксі-сервер, який надає функціонал аналогічний VPN з можливістю реалізації split tunneling на рівні окремих програм. Саме тут ми переходимо до основної теми нашого обговорення.
ProxiFyre - це Open Source інструмент, що функціонує як "соксифікатор" для додатків, що не мають вбудованої підтримки через SOCKS проксі-сервери. Програма є покращеним варіантом одного з демонстраційних прикладів для Windows Packet Filter . На відміну від базової версії, ProxiFyre забезпечує підтримку протоколу UDP та пропонує функцію одночасного використання кількох екземплярів SOCKS5 проксі, що суттєво розширює її функціональні можливості. Додаток у схожому вигляді існує вже кілька років, але я опублікував його лише кілька тижнів тому після маленького реву. Приводом для публікації стали кілька послідовних запитів на додаткові функціональні можливості (зокрема підтримку UDP), а також скромна надія на те, що ті, хто просить про ці покращення, візьмуть посильну участь у подальшому розвитку проекту.
Для спрощення роботи з ProxiFyre я додав можливість налаштування конфігурації за допомогою файлу app-config.json. Цей JSON файл передбачає включення масиву конфігурацій для різноманітних додатків, що забезпечує високий рівень гнучкості і дозволяє вести детальний контроль над налаштуваннями інтернет-підключення кожної окремої програми.
Приклад конфігурації:
[
{
"appNames": ["chrome", "chrome_canary"],
"socks5ProxyEndpoint": "158.101.205.51:1080",
"username": "username1",
"password": "password1"
},
{
"appNames": ["firefox", "firefox_dev"],
"socks5ProxyEndpoint": "159.101.205.52:1080",
"username": "username2",
"password": "password2"
}
]
У контексті використання SOCKS5 з SSH, ProxiFyre застосовується в такий спосіб. Припустимо, що ви підключаєтеся до SSH-сервера з використанням команди ssh -D 8080 user@host
. Тоді, з використанням наведеного нижче конфігураційного файлу, ви зможете направити трафік додатків Google Chrome і RDP-клієнта через SSH-тунель:
[
{
"appNames": ["chrome", "mstsc"],
"socks5ProxyEndpoint": "127.0.0.1:8080"
}
]
Приклад з Google Chrome може не повністю відображати всі переваги ProxiFyre, оскільки більшість веб-браузерів вже мають вбудовану підтримку явного налаштування проксі. Разом з тим, безліч інших додатків не мають цієї функціональності. Саме тут ProxiFyre виявляє свою ефективність, надаючи можливість конфігурації проксі для всіх програм, забезпечуючи тим самим розширений контроль над налаштуваннями інтернет-підключення.
Архітектурно ProxiFyre складається з трьох основних проектів:
ndisapi.lib : Адаптований проект статичної бібліотеки Windows Packet Filter .
socksify : .NET C++/CLI бібліотека класів, що реалізує функціональність локального маршрутизатора SOCKS5.
ProxiFyre : простий консольний .NET додаток для Windows, що використовує функціональність, що надається .NET C++/CLI бібліотекою класів socksify.
Детальні інструкції з використання, включаючи вимоги до складання, можна знайти в README репозиторію.
Сподіваюся комусь ця програма виявиться корисною у поточних непростих обставинах.
Коментарі
Дописати коментар