wget через прокси в Linux
GNU wget — классический инструмент зеркалирования сайтов и загрузки файлов в Linux. В отличие от curl, wget не поддерживает SOCKS5 нативно — только HTTP/HTTPS-прокси. NEONPROXY на порту 8080 с форматом host:port:login:password подходит идеально. Разберём env-переменные, конфиг ~/.wgetrc и типичные сценарии.
Быстрый старт через переменные
Убедитесь, что IP в ответе — прокси, а не сервер VPS. Проверка: /tools/checker/ и /tools/myip/.
Файл ~/.wgetrc
Не коммитьте .wgetrc в Git. В CI подставляйте proxy URL из секретов. Для нескольких прокси используйте обёрточный shell-скрипт с ротацией — идеи в статье про ротацию.
Массовая загрузка и зеркалирование
При зеркалировании соблюдайте robots.txt и rate limits — даже хороший IP заблокируют при агрессивном -c и десятках параллельных соединений. Wget по умолчанию один поток; для параллелизма используйте aria2c с SOCKS5 или несколько инстансов с разными прокси из пула NEONPROXY.
Ограничения wget и SOCKS5
Для SOCKS5 нужен клиент-мост: proxychains wget URL или локальный privoxy, конвертирующий SOCKS в HTTP. На тарифе NEONPROXY проще использовать HTTPS-порт 8080 напрямую.
Cron и systemd
В crontab задайте env в начале файла:
Логируйте код возврата wget ($?) и алертьте при ненулевом значении — прокси мог истечь. Альтернатива wget — cURL с большей гибкостью протоколов.
Resume и большие файлы
Флаг -c докачивает файл после обрыва — убедитесь, что прокси не меняется между сессиями, иначе CDN может отдать другой chunk. Для sticky IP используйте один адрес NEONPROXY на весь download.
Docker и контейнеры
BuildKit при docker build может игнорировать env прокси — передавайте --build-arg явно. В Kubernetes используйте Secret с URL прокси и envFrom в Pod spec.
Логирование и отладка
Флаг -d включает debug-вывод — видно CONNECT к прокси и код ответа. При 403 от целевого сайта смените User-Agent: --user-agent="Mozilla/5.0 ...". Перед массовым mirror проверьте robots.txt и юридические ограничения площадки.
Мониторинг bandwidth на тарифе NEONPROXY — см. статью про трафик. Не качайте мультимедиа через scraper-прокси без необходимости.
Сравнение wget 1.x и GNU wget
BusyBox wget в минимальных образах поддерживает только базовый HTTP GET — proxy auth может отсутствовать. В production Docker используйте образ с полным GNU wget или curl. Проверка: wget --version должен показывать GNU Wget.
Параллельная загрузка: GNU wget не умеет multithread — для ускорения запускайте несколько процессов с разными URL и разными прокси из пула NEONPROXY, соблюдая rate limits целевого сайта.
Для nightly mirror больших док-сайтов комбинируйте wget с -w 2 --random-wait — имитация человека снижает 403. Логи храните с меткой использованного host:port, чтобы при бане IP быстро найти проблемный адрес в пуле и заменить его через API — интеграция API.
Итог: wget + http_proxy env — простой стек для cron-загрузок через NEONPROXY. Проверяйте канал в чекере и не используйте один IP для агрессивного mirror.
При необходимости SOCKS5 или REST API вместо batch-загрузок переходите на cURL — он гибче для POST и custom headers в пайплайнах.
Для архивов старше 30 дней настройте алерт при росте размера логов wget — строки с 407 и timeout сигнализируют о проблемах с auth или истечении аренды NEONPROXY.
Сочетайте wget с прокси-чекером в pre-flight скрипте cron: если чекер вернул ошибку, job не стартует и не засоряет логи повторными timeout.
Прокси для загрузок и парсинга
IPv4/IPv6 для cron и scraper — host:port:login:password с HTTPS и SOCKS5.
Перейти к заказу