Squid:curl:(52)来自服务器的空回复

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的浏览器会出错。我做错了什么?

答案1

您正在使用 curl 访问代理,但并未告知 curl 使用代理。请尝试以下操作

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

您可以通过以下方式使其在会话中持续存在

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

答案2

基本上,可以运行两种类型的(HTTP)代理:

  • 正常:您需要配置每个客户端(即浏览器)才能使用它。
  • 透明:不需要配置,主机的流量由其默认网关(使用防火墙规则)发送到代理。据我所知,它用于本地网络。

由于你无法控制其他人的网络设置,因此你应该删除透明的关键字来自http_端口行,并告诉您的程序它们应该使用什么代理。对于大多数 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

相关内容