![Squid:curl:(52)来自服务器的空回复](https://linux22.com/image/711418/Squid%EF%BC%9Acurl%EF%BC%9A%EF%BC%8852%EF%BC%89%E6%9D%A5%E8%87%AA%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9A%84%E7%A9%BA%E5%9B%9E%E5%A4%8D.png)
我想建立一个公共 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