Назад | Перейти на главную страницу

Squid: curl: (52) Пустой ответ от сервера

Я хочу создать общедоступный HTTP-прокси с помощью Кальмар. Я успешно установил его на Ubuntu 14.04 и просто добавил две строчки в /etc/squid3/squid.conf:

http_access allow all
http_port 3120 transparent

Однако пытаясь curl MY_SERVER_IP_HERE:3120 ya.ru, Я получил curl: (52) Empty reply from server. Если не установить transparent директива в /etc/squid3/squid.conf, Я получил The requested URL could not be retrieved ошибка в моем браузере. Что я делаю не так?

По сути, можно запускать два типа (HTTP) прокси:

  • Нормальный: вам нужно настроить каждого клиента (например, браузеры) для его использования.
  • Прозрачный: не требует настройки, трафик хостов отправляется на прокси через их шлюз по умолчанию (с использованием правил брандмауэра). AFAIK, он используется в локальных сетях.

Поскольку вы не можете управлять настройками сети других людей, вам следует удалить прозрачный ключевое слово из http_port line и сообщите вашим программам, какой прокси-сервер им следует использовать. Для большинства программ командной строки Linux вы будете использовать три переменных среды: http_proxy, https_proxy и ftp_proxy (для протоколов HTTP, HTTPS и FTP соответственно).

Примеры:

export http_proxy="http://MY_SERVER_IP_HERE:3120"
export https_proxy="http://MY_SERVER_IP_HERE:3120"
export ftp_proxy="http://MY_SERVER_IP_HERE:3120"
curl http://ya.ru

Вы используете свой прокси-сервер через curl, но не указываете curl использовать прокси-сервер. Попробуйте это

http_proxy=http://your.proxy.server:3120/ curl http://ya.ru

Вы можете сделать его постоянным для сеанса,

export http_proxy=http://your.proxy.server:3120/