Tcp з нестандартним socks5 проксі. Прозоре Socks5 проксіювання додатків в linux

01.09.2024
Рідкісні невістки можуть похвалитися, що у них рівні та дружні стосунки зі свекрухою. Зазвичай трапляється з точністю до навпаки

Потрібно було мені якось запустити гру, яка запускається під wine, через проксі. Підняв ssh-тунель, запустив гру через proxychains, і… гра не змогла з'єднатися із сервером, хоча chromium без проблем працював та показував ip проксі. Спробував tsocks – гра взагалі не запустилася. Можна, звичайно, було налаштувати VPN-тунель за допомогою того ж ssh, але сервер - VPS, під OpenVZ, у якого за замовчуванням вимкнено TUN, що призвело б до письма в техпідтримку та очікування.
Отже, п'ятихвилинне завоювання привело мене до покинутого проекту Transocks, який, на відміну від proxychains і tsocks, які підвантажують свої бібліотеки та перехоплюють мережні виклики, слухає певний порт і перенаправляє все, що в нього прийшло, через socks4 проксі. На жаль, transocks у мене не зібрався, і я почав гуглити далі. Виявляється, проект має дві форки: transocks_ev на c і ​​transocks_em на ruby. Перший підтримує Socks5, не підтримує авторизацію та UDP. Другий підтримує Socks5, UDP, *BSD, але теж, начебто, не підтримує авторизацію (не знайшов у коді, а документації немає). Оскільки UDP мені не потрібно, я зупинився на transocks_ev.

Складання

Зібрати transocks_ev дуже просто: достатньо завантажити Makefile та transocks_ev.c зі сторінки проекту, встановити libevent та виконати
make
У нас з'явився бінарник transocks_ev
tranSOCKS-ev - libevent-based transparent SOCKS5-Proxy
Usage: ./transocks_ev [-f] [-p Port] [-H IP-Address] [-s port] [-S IP-Address]

F Do not fork in background upon execution
-p Bind our server-socket для цього port
-H Listen on this IP-Address for incomming connections
-s Expect SOCKS5-Server on this Port
-S Expect SOCKS5-Server on this IP-Address

Оскільки я піднімав ssh-тунель на порту 4441, запускаю transocks_ev з такими параметрами:
./transocks_ev -p 4445 -H 127.0.0.1 -s 4441 -S 127.0.0.1
Тепер у нас на порту 4445 висить сервер, який пускатиме всі запити через наш socks5. Дещо схоже на NAT, тільки на певному порту.

Налаштування

Перенаправлятимемо пакети за допомогою iptables. Я вирішив зробити подобу proxychains, щоб можна було запустити будь-які програми через проксі, а не просто проксування за адресою або портом (хоча для гри згодиться і воно).
Створюємо нову групу proxified:
sudo groupadd proxified
Редагуємо /etc/sudoers так, щоб ми могли запускати програми під цією групою. Має бути щось на кшталт цього:
valdikss ALL=(ALL:ALL) ALL

Тепер перейдемо до налаштувань iptables.
sudo iptables -t nat -I OUTPUT -m owner --gid-owner proxified -p tcp -j REDIRECT --to-ports 4445
Ця команда буде перенаправляти всі пакети з програм з групою proxified на transocks сервер.

Запуск

Запускаємо програму з групою proxified
sudo -g proxified chromium-browser

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

Опублікували інструкцію щодо обходу можливого блокування Telegram - популярного месенджера, розробленого командою Павла Дурова. У статті описується спосіб обходу, що ґрунтується на використанні мережевого протоколу SOCKS5. Цей протокол непомітно пересилає пакети даних від клієнта до сервера через проксі-сервер.

SOCKS - мережевий протокол, який дозволяє клієнт-серверним програмам прозоро (непомітно для них) використовувати сервіси за міжмережевими екранами (фаєрволами). Опція вже доступна в Telegram Desktop та Mac, а мобільні клієнти отримають її у найближчому оновленні.

Порада:увімкніть у налаштуваннях опцію автоматичного оновлення.

Перш за все увімкніть SOCKS5 до початку блокування.

Якщо ви з якихось причин не встигнете це зробити, доведеться туго, т.к. з російських Google Play та AppStore, клієнти Telegram, швидше за все, зникнуть. Тут допоможуть Vpn та Tor, через які можна буде завантажити Telegram в американських магазинах. Але не спокушайтеся - попереду закон щодо заборони засобів обходу блокувань, ухвалений у першому читанні в Держдумі РФ.

Порада:в налаштуваннях Android дозвольте скачування оновлень не з офіційного магазину, та скачайте оновлення Telegram із сайту месенджера telegram.org.

Налаштування SOCKS 5

Наводимо інструкцію російською мовою:

1) Зайдіть в налаштування настільного Telegram і натисніть «За замовчуванням (зараз: TCP)».

2) Перейдіть в меню «Тип з'єднання» на «TCP socks5-проксі»

3) Введіть адресу проксі-сервера (наприклад, 192.254.68.37), відповідний порт (1080). Краще використовувати проксі-адреси Америки, Німеччини, Швеції чи Англії. Потім ставте галочку «Використовувати IPv6» та зберігаєте.

Як знайти проксі-сервер?

Просто перейдіть за такими посиланнями:

Тільки беріть сервер для SOCKS5, не переплутайте з HTTP.

Можливе налаштування з цього безкоштовного списку (socks – sockslist.net).

Тепер за промовчанням ваш Telegram з'єднуватиметься через вибраний проксі-сервер.

Додаток:Якщо виникають проблеми з підключенням, потрібно налаштувати брандмауер Windows - додати до дозволених програм Telegram. Зробити це просто, але у вас мають бути права адміністратора.

  • Увійдіть до «Панель управління» та перейдіть до «Брандмауер Windows».
  • Натисніть «Дозволу взаємодії з програмами або компонентами...». Відкриється вікно з великою кількістю програм, але навряд чи ви знайдете там Telegram. Тому треба буде його додати туди.
  • Натисніть «Змінити параметри», а потім на нижню кнопку «Дозволити іншу програму».
  • У спливаючому вікні «Додати програму» через Огляд додайте Telegram.
  • Все. Знову налаштовуйте з'єднання з проксі-сервером.

Мережевий протокол SOCKS5 дозволяє непомітно пересилати дані від клієнта серверу. Функція вже є в Telegram для Windows та MacOS. Найближчим часом вона з'явиться і у мобільних версіях месенджера.

Рекомендується увімкнути SOCKS5 до набрання чинності. Після неї завантажити програму з Google Play та App Store, швидше за все, стане проблематично. Прийде користуватися VPN-сервісами для входу в магазин «з іншої країни».

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

Як налаштувати SOCKS5 в Telegram

  1. Відкрийте налаштування десктопної версії месенджера та знайдіть «Розширені налаштування» (Advanced Settings).
  2. Змініть тип з'єднання (Connection type) на "TCP з нестандартним socks5-проксі" (TCP with custom socks5-proxy).
  3. Введіть адресу проксі-сервера та порт. Радимо використовувати американський, німецький, шведський чи англійський проксі.
  4. Залишилося поставити галочку «Використовувати IPv6» (Try connecting through IPv6) та зберегти налаштування.

З vpnki ви можете мати доступ до домашньої мережі через проксі сервер. Точніше кажучи, ми використовуємо два проксі сервери:

  • для HTTP з'єднань - http proxy
  • для будь-яких з'єднань за протоколом TCP - SOCKS5 proxy

За допомогою http проксі ви зможете мати доступ з Інтернету до веб-інтерфейсусвого домашнього пристрою (сервера, відеореєстратора, відеокамери тощо), а за допомогою SOCKS5 проксі ви зможете мати доступ до домашніх пристроїв за такими протоколами як sshі VNC(втім і з багатьох інших, які використовують протокол TCP).

Доступ через проксі сервер здійснюється за наявності:

  • підключеного до системи vpn тунелювід Вашого пристрою за будь-яким протоколом (PPTP, L2TP, L2TP/IPsec, OpenVPN)
  • наявності галочки(про використання proxy) на вашій особистій сторінці vpnki
  • настроєного клієнтського програмного забезпечення (браузер, ssh або клієнт VNC)

Використовуваний логін/пароль, який ви вводитимете в момент підключення через проксі НЕ повинен бути підключений через VPN Proxy-з'єднання без авторизації прийматися не будуть.

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

Коротка інструкція з використання HTTP та SOCKS5 proxy з'єднань

1. При встановленій галочці на особистій сторінці системи vpnki вам буде виділено два порти TCP:

  • один для http proxy
  • другий для SOCKS5 proxy

Запишіть їх та використовуйте при налаштуванні свого клієнтського ПЗ

2. Налаштування браузера (загалом підходить для будь-якого браузера)

2.1. Увійдіть у налаштування браузера та виберіть там пункт схожий на "Мережеві налаштування"

2.2. Перейдіть до налаштувань підключення до Інтернету

2.3. Вкажіть як http проксі - msk.сайтта порт, виданий вам на особистій сторінці для http з'єднань (в даному прикладі 54505)

2.4. Наберіть у рядку браузера адресу веб-інтерфейсу домашньої мережі

Якщо ви подивіться на правила використання проксі у вашому браузері, то зверніть увагу на те, що згідно з виконаними налаштуваннями тепер з'єднання до всіх вузлівмережі Інтернет встановлюватимуться через вказаний проксі. Однак наш проксі-сервер не надаєможливості доступу до Інтернету. На жаль, виробники браузерів дають обмежену можливість вказівки винятків із правила використання проксі ("Не використовувати проксі для...") і, на жаль, це правило не дозволяє описати ситуацію "Доступ до домашньої мережі через проксі, доступ до всіх серверівІнтернет - без проксі

Таким чином, з виконаними налаштуваннями браузера ви отримаєте доступ до домашньої мережі, але не зможете звернутися до будь-якого сайту в Інтернеті.

У такій ситуації є два виходи:

  • Використовувати два браузери (один із налаштуваннями проксі для доступу до домашньої мережі, другий - без налаштувань проксі для доступу до всіх ресурсів Інтернету), але це не дуже зручно
  • Використовуйте додатковий плагін для браузера, в якому правила використання проксі пишуться більш гнучко. Таким плагіном може бути плагін AutoProxyдля Firefox

2.6. Плагін AutoProxy для Firefox. У ньому вам необхідно: а)вказати проксі сервер - msk. б)Створити групу правил і самі правила, вказавши лише ті адреси, з'єднання з якими повинні здійснюватись через проксі-сервер. Всі інші з'єднання будуть здійснюватись без використання проксі. Приклад правил представлений малюнку нижче. В даному випадку, в групі правил vpnki є три правила (адреси домашньої мережі) для яких буде використовуватися проксі з'єднання. Вказівка ​​адрес у правилах починається із символу ||

3. Налаштування VNC клієнта

3.2. Налаштуйте VNC Viewer: вкажіть у налаштуваннях Proxy - msk.сайт і порт, виданий вам для SOCKS5 з'єднань на особистій сторінці vpnki

3.3. Створіть з'єднання та запустіть пристрій.

ДОДАТКОВО ЗА ТЕМОЮ

  • Трохи докладніше про IP адреси можна прочитати на нашому сайті
  • Про вихід в Інтернет через VPN та центральний офіс можна
  • Про віддалений доступ до комп'ютера можна почитати на нашому сайті
  • Про VPN та протоколи можна почитати

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

На всіх серверах стоїть Ubuntu Server 14.04, може десь і 12.04, але опис має підійти і для решти систем заснованих на Debian.

Є 2 відомі мені способи організації роботи SOKS5 сервера:

  1. SOCKS через SSH.Цей спосіб зручний своєю простотою, але незручний при частому використанні або використанні з різних машин;
  2. Встановлення сервера SOCKS.При використанні цього способу піде трохи більше часу на початкове налаштування, але потім користуватися проксі буде швидше та зручніше.

SOCKS через SSH

Щоб підняти SOCKS5 через SSH потрібен лише доступом до SSH сервера.

Вводимо у терміналі або SSH клієнта (PuTTY для Windows)

Ssh-D 1080 user@server

Якщо запитає пароль, потрібно ввести пароль від SSH сервера.

-D- вказує порт, за яким буде доступний SOKS5 сервер

Все, після цього ви можете підключитися до сервера SOKS5 за адресою localhost:1080 або 127.0.0.1:1080

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

Встановлення SOCKS сервера

Встановлення старої версії Dante Server

sudo apt-get update sudo apt-get install dante-server

Sudo nano /etc/danted.conf

Привівши його до такого виду

Logoutput: syslog /var/log/danted.log internal: eth0 port = 1085 external: eth0 метод: username user.privileged: root user.notprivileged: nobody client pass ( від: 0.0.0.0/0 to: 0.0.0.0/0 log: error ) pass ( from: 0.0.0.0/0 to: 0.0.0.0/0 command: connect log: error method: username )

Останні матеріали сайту