В некоторых случаях требуется проксировать трафик в программах, которые изначально не поддерживают прокси. В предыдущем блоге обсуждалось, как это возможно на Windows, но есть также множество случаев использования прокси в Linux или даже в контейнерах Docker для дополнительной гибкости.
В этой статье мы расскажем, как использовать прокси для контейнеров Docker с помощью контейнера Docker xjasonlyu/tun2socks.
tun2socks - это легкий и портативный инструмент сетевого туннелирования, позволяющий направлять трафик через прокси-сервер. Он написан на языке Go и доступен как отдельный исполняемый файл или как контейнер Docker.
В этом руководстве я расскажу, как использовать его в Docker, чтобы вы могли подключить к нему любой другой контейнер Docker и заставить его использовать прокси.
Сначала нам нужно создать начальный Docker-контейнер, который будет выполнять проксирование.
docker run -d --name tun2socks \
-e EXTRA_COMMANDS='echo "nameserver 1.1.1.1" > /etc/resolv.conf;ip rule add iif lo ipproto udp dport 53 lookup main;' \
-e PROXY=http://<user>:<pass>@rp.proxyscrape.com:6060 \
-v '/dev/net/tun:/dev/net/tun' --cap-add=NET_ADMIN \
xjasonlyu/tun2socks
В этом примере я использую прокси для жилых домов Proxyscrape , но вы также можете использовать премиум-прокси или любые другие прокси.
Теперь, когда мы создали контейнер, который выполняет проксирование, мы можем использовать любой контейнер, чтобы использовать сеть этого контейнера, просто добавив флаг --network=container:tun2socks.
Чтобы проверить, все ли работает правильно, вы можете использовать тестовый контейнер, который я создал для возврата данных о местоположении IPinfo.
docker run --rm --network=container:tun2socks hibenji/checkip
Как видите, теперь мы можем проксировать через прокси практически все, даже если это не поддерживается изначально.
Конечно, вы можете использовать вращающиеся прокси при создании начального контейнера, но вы также можете создать несколько контейнеров tun2socks с липкими сессиями, если это также необходимо.
Такой подход к проксированию в Docker открывает целый мир возможностей. Теперь вы можете использовать прокси в сочетании практически с любым контейнером Docker, даже с теми, в которых нет встроенной поддержки прокси. Это может расширить возможности ваших контейнерных приложений, позволяя выполнять задачи, которые без такого уровня контроля сети были бы сложны или невозможны.
Спасибо за чтение, надеюсь, вы узнали что-то новое!
Эта статья была написана Бенджи, пользователем ProxyScrape .