Linux трафик через socks

Как заставить все приложения Linux использовать прокси SOCKS

В Linux мне нужен способ для маршрутизации всего сетевого трафика интерфейса enp2s0 через SOCKS4 192.168.1.2:1080 (или любого прокси-сервера SOCKS)- что-то вроде Proxifier в Windows. Прокси работает нормально, если вручную установить в Chrome или Firefox. ОС: Linux Mint 19.1 Вещи, которые я пытался:

  • Я установил прокси вручную в настройках сети, но я не установил его; Chrome все еще подключается напрямую. Вот скриншот:
  • Proxychains работает отлично, но я должен вручную запускать каждое приложение с терминала.

Я не знаю, как использовать Redsocks или Iptables (пока).

Я надеюсь, что есть графический интерфейс, такой как Proxifier для Linux, но решение на основе терминала (CLI) вполне подойдет.

2 ответа 2

для нетерпеливых просто сделай следующее; при условии, что прокси-сервер example.com:7777 и это socks5 (измените его на свой позже)

создайте пустой файл в любом месте и назовите его redsocks.conf (или как угодно), я предполагаю, что он находится здесь /etc/redsocks.conf (измените его на свой).

измените example.com 7777 с вашим прокси (обратите внимание, что вы можете использовать любой local_port кроме 12345 , это локальный порт, для которого мы установим правило iptable для перенаправления трафика, поэтому, если вы используете другой, обязательно используйте его в последующие шаги ниже)

— теперь запустите redsocks с назначением файла конфигурации следующим образом

sudo redsocks -c /etc/redsocks.conf 

измените место назначения вашего redsocks.conf (если вы получили «bind: Address уже используется», попробуйте killall redsocks ), вы также можете проверить, привязан ли redsocks к локальному порту 12345 с помощью netstat -tulpn

— теперь, когда redsocks запущен и готов, давайте изменим правила iptables для использования redsocks. это должно быть настроено в соответствии с вашими потребностями, но если вы хотите перенаправить все пакеты HTTP и HTTPS через прокси. Определите следующие правила.

sudo iptables -t nat -N REDSOCKS sudo iptables -t nat -A REDSOCKS -d 0.0.0.0/8 -j RETURN sudo iptables -t nat -A REDSOCKS -d 10.0.0.0/8 -j RETURN sudo iptables -t nat -A REDSOCKS -d 127.0.0.0/8 -j RETURN sudo iptables -t nat -A REDSOCKS -d 169.254.0.0/16 -j RETURN sudo iptables -t nat -A REDSOCKS -d 172.16.0.0/12 -j RETURN sudo iptables -t nat -A REDSOCKS -d 192.168.0.0/16 -j RETURN sudo iptables -t nat -A REDSOCKS -d 224.0.0.0/4 -j RETURN sudo iptables -t nat -A REDSOCKS -d 240.0.0.0/4 -j RETURN sudo iptables -t nat -A REDSOCKS -p tcp -j REDIRECT --to-ports 12345 sudo iptables -t nat -A OUTPUT -p tcp --dport 443 -j REDSOCKS sudo iptables -t nat -A OUTPUT -p tcp --dport 80 -j REDSOCKS sudo iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDSOCKS sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDSOCKS 

теперь ваш http и https трафик должен быть перенаправлен через example.com:7777

Читайте также:  Mount remote directory linux

если вы хотите использовать сброс Iptables:

iptables -F iptables -t nat -F iptables -t mangle -F iptables -X 

Дополнительный совет: если у вас есть vpn на вашем iphone или android, вы можете бесплатно использовать его на своем компьютере, независимо от того, какая ОС есть. просто подключите приложение vpn для телефона и установите прокси-сервер socks (в android вы можете использовать приложение «серверы»), затем используйте прокси на вашем компьютере, как указано выше, теперь весь трафик с вашего компьютера маршрутизируется через ваш телефон vpn. аккуратный.

Источник

Как настроить туннель SSH SOCKS для приватного просмотра

Бывают случаи, когда вы хотите работать в Интернете в частном порядке, получить доступ к контенту с географическими ограничениями или обойти любые промежуточные брандмауэры, которые может применяться в вашей сети.

Один из вариантов — использовать VPN, но это требует установки клиентского программного обеспечения на вашем компьютере и настройки собственного VPN-сервера или подписки на VPN-сервис.

Более простой альтернативой является маршрутизация трафика локальной сети с помощью зашифрованного прокси-туннеля SOCKS. Таким образом, все ваши приложения, использующие прокси-сервер, будут подключаться к серверу SSH, и сервер будет перенаправлять весь трафик в его фактическое место назначения. Ваш интернет-провайдер (интернет-провайдер) и другие третьи стороны не смогут проверять ваш трафик и блокировать ваш доступ к веб-сайтам.

Это руководство проведет вас через процесс создания зашифрованного туннеля SSH и настройки веб-браузеров Firefox и Google Chrome для использования прокси-сервера SOCKS.

Подготовка

  • Сервер, работающий под управлением любой разновидности Linux, с доступом SSH для маршрутизации вашего трафика через него.
  • Веб-браузер.
  • Клиент SSH.

Настроить SSH-туннель

Мы создадим SSH-туннель, который будет безопасно перенаправлять трафик с вашего локального компьютера через порт 9090 на SSH-сервер через порт 22 . Вы можете использовать любой порт с номером больше 1024 , только root может открывать порты на привилегированных портах.

Linux и macOS

Если вы используете Linux, macOS или любую другую операционную систему на основе Unix на своем локальном компьютере, вы можете легко запустить туннель SSH с помощью следующей команды ssh :

ssh -N -D 9090 [USER]@[SERVER_IP]

Используются следующие параметры:

  • -N — Указывает SSH не выполнять удаленную команду.
  • -D 9090 — открывает туннель SOCKS на указанном номере порта.
  • [USER]@[SERVER_IP] — ваш удаленный пользователь SSH и IP-адрес сервера.
  • Чтобы запустить команду в фоновом режиме, используйте параметр -f .
  • Если ваш SSH-сервер прослушивает порт, отличный от 22 (по умолчанию), используйте параметр -p [PORT_NUMBER] .

После запуска команды вам будет предложено ввести пароль пользователя. После его ввода вы войдете на свой сервер и туннель SSH будет установлен.

Вы можете настроить аутентификацию на основе ключа SSH и подключаться к серверу без ввода пароля.

Windows

Пользователи Windows могут создать SSH-туннель с помощью SSH-клиента PuTTY. Вы можете скачать PuTTY здесь .

  1. Запустите Putty и введите IP-адрес вашего сервера в поле Host name (or IP address) .
  2. В меню « Connection разверните SSH и выберите « Tunnels . Введите порт 9090 в поле Source Port и установите переключатель Dynamic .
  3. Нажмите кнопку « Add , как показано на изображении ниже.
  4. Вернитесь на страницу Session чтобы сохранить настройки, чтобы не вводить их каждый раз. Введите имя сеанса в поле « Saved Session и нажмите кнопку « Save .
  5. Выберите сохраненный сеанс и войдите на удаленный сервер, нажав кнопку « Open . Появится новое окно с запросом вашего имени пользователя и пароля. После того, как вы введете свое имя пользователя и пароль, вы войдете в систему на своем сервере, и будет запущен туннель SSH. Настройка аутентификации с открытым ключом позволит вам подключаться к вашему серверу без ввода пароля.
Читайте также:  Ssh with password in command line linux

Настройка вашего браузера для использования прокси

Теперь, когда вы открыли туннель SSH SOCKS, последний шаг — настроить предпочтительный браузер для его использования.

Fire Fox

Приведенные ниже шаги одинаковы для Windows, macOS и Linux.

  1. В верхнем правом углу щелкните значок гамбургера ☰ чтобы открыть меню Firefox:
  2. Щелкните ссылку ⚙ Preferences .
  3. Прокрутите вниз до раздела « Network Settings » и нажмите кнопку « Settings. .
  4. Откроется новое окно.
    • Установите переключатель « Manual proxy configuration ».
    • Введите 127.0.0.1 в поле SOCKS Host и 9090 в поле Port .
    • Установите флажок Proxy DNS when using SOCKS v5 .
    • Нажмите кнопку OK , чтобы сохранить настройки.

На этом этапе ваш Firefox настроен, и вы можете просматривать Интернет через туннель SSH. Чтобы проверить, вы можете открыть google.com , ввести «какой у меня IP», и вы должны увидеть IP-адрес своего сервера.

Чтобы вернуться к настройкам по умолчанию, перейдите в « Network Settings , выберите переключатель « Use system proxy settings » и сохраните настройки.

Есть также несколько плагинов, которые могут помочь вам настроить параметры прокси-сервера Firefox, например, FoxyProxy .

Гугл Хром

Google Chrome использует системные настройки прокси по умолчанию. Вместо изменения настроек прокси-сервера операционной системы вы можете использовать надстройку, например SwitchyOmega, или запустить браузер Chrome из командной строки.

Чтобы запустить Chrome с использованием нового профиля и вашего SSH-туннеля, используйте следующую команду:

/usr/bin/google-chrome --user-data-dir="$HOME/proxy-profile" --proxy-server="socks5://localhost:9090" 
"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" --user-data-dir="$HOME/proxy-profile" --proxy-server="socks5://localhost:9090" 
"C:Program Files (x86)GoogleChromeApplicationchrome.exe" ^ --user-data-dir="%USERPROFILE%proxy-profile" ^ --proxy-server="socks5://localhost:9090" 

Если профиль не существует, он будет создан автоматически. Таким образом, вы можете запускать несколько экземпляров Chrome одновременно.

Чтобы убедиться, что туннель SSH работает правильно, откройте google.com и введите «what is my ip». IP-адрес, отображаемый в вашем браузере, должен быть IP-адресом вашего сервера.

Выводы

Вы узнали, как настроить туннель SSH SOCKS 5 и настроить свой браузер для частного и анонимного доступа в Интернет. Для простоты использования вы можете определить туннель SSH в файле конфигурации SSH или создать псевдоним Bash , который настроит туннель SSH и запустит браузер.

Если вы столкнулись с проблемой или хотите оставить отзыв, оставьте комментарий ниже.

Источник

Прозрачное Socks5 проксирование приложений в linux

Потребовалось мне как-то запустить игру, которая запускается под 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 into background upon execution
-p Bind our server-socket to this 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 локально и укажите в нем ваш прокси как прокси сервер верхнего уровня.

Источник

Оцените статью
Adblock
detector