标签: squid

如何让 netcat 使用现有的 HTTP 代理

我可以通过直接点击我的网络服务器来访问一个网页,如下所示:

$ echo "GET /sample" | nc web-server 80
This is contents of /sample...
$
Run Code Online (Sandbox Code Playgroud)

现在,我希望 netcat 通过 Squid HTTP 代理(侦听端口 3128),就像我可以通过其代理首选项配置我的 Firefox 浏览器并让它通过 HTTP 代理运行一样。

我尝试了以下方法,但没有奏效:

$ echo "GET /sample" | nc -x squid-proxy:3128 web-server 80
    <Seemed to be blocked FOREVER on input, so I killed it.>
<Ctrl-C>
$
Run Code Online (Sandbox Code Playgroud)

注意:我使用的是 RHEL 5.3 版本的 netcat,它具有以下选项:

$ nc --help
nc: invalid option -- -
usage: nc [-46DdhklnrStUuvzC] [-i interval] [-p source_port]
  [-s source_ip_address] [-T ToS] [-w timeout] [-X proxy_version]
  [-x proxy_address[:port]] …
Run Code Online (Sandbox Code Playgroud)

proxy squid netcat

12
推荐指数
1
解决办法
5万
查看次数

是否有任何命令行通用 HTTP 代理(如 Squid)?

我可以轻松地使用 Netcat(或 Socat)来捕获我的浏览器和特定主机:端口之间的流量。

但是对于 Linux,是否存在类似 Squid 的 HTTP 代理的任何命令行对应物,我可以使用它来捕获我的 HTTP 客户端(浏览器或命令行程序)和任意主机:端口之间的流量?

command-line proxy http squid

10
推荐指数
2
解决办法
1万
查看次数

在哪里向 Fedora 上的网络代理(中央代理)提供身份验证详细信息?

我的系统运行 Fedora 16,我住在一个校园里,我们使用 LAN 连接到 Internet。为此,我们使用带有身份验证(用户名和密码)的 http 代理。proxyaddress:port转到“网络设置”窗口后,我尝试将其放入网络代理设置。但是,它从不要求身份验证,并且使用 Internet 的程序无法连接,除了 Firefox,因为它要求身份验证。此外,我可以通过手动编辑yum.conf. 我什至尝试http://username:password@proxy:port在 Yum 配置中使用like 但它没有帮助。

这个问题有什么解决办法吗?

谢谢你。

fedora authentication gnome proxy squid

6
推荐指数
1
解决办法
7984
查看次数

如何创建按需 RPM 镜像

我想在我的本地网络上为 Fedora 软件包创建一个 RPM 存储库。由于存储限制,我希望存储库最初为空,并在访问后下载包。

背景

我经常使用本地虚拟机。每当我创建一个新的VM并安装Fedora时,都会从互联网上下载很多软件包,并且大多数下载的软件包都是相同的。为了加快这个过程,我希望将 RPM 缓存在位于同一网络上的服务器上。

类似的问题已经用createrepo&的组合回答了reposync。我不喜欢这reposync部分,因为当我只需要一些包时,我不想预先克隆整个存储库。

理想的解决方案

我希望本地网络上的服务器充当我的 Fedora 安装的 RPM 存储库。它应该从/etc/yum.repo.d/*. 如果请求的 RPM 存在于本地缓存中,则服务器应该传送它,否则下载它然后传送它。

一种不那么雄心勃勃的方法是配置单个 RPM 存储库,而不是https://mirrors.fedoraproject.org/...仅使用 http 代理。

更新:2015 年 11 月 2 日

我已经在网络上运行Nginx上,所以我打得四处的组合proxy_pass和proxy_cache。它有点工作,但恕我直言,它弊大于利:

  • 中配置的每个 repo 的单独配置/etc/yum.repo.d/*。
  • 由于备用镜像,无法使用metadatafrom https://mirrors.fedoraproject.org/。

我删除了 nginx 的东西并安装了squid,正如评论中所建议的那样。squid对我很有用。通过store_id_program配置,我什至可以使用备用镜像并且仍然命中缓存,无论 RPM 最初来自何处。

fedora rpm squid

6
推荐指数
1
解决办法
4454
查看次数

我可以轻松制作一个主机“镜像”来缓存下载的 Debian 软件包吗?

我们有一个 Squid 网络缓存设置,用于缓存包下载,因此这里的所有机器不必独立重新下载所有内容。安装程序会提示您提供镜像和代理。只要每台机器使用完全相同的镜像(此处为http.us.debian.org)和代理,它就可以工作。

这有点烦人,因为它涉及“手动输入信息”并每次都输入(正如安装程序所做的那样ftp.us.debian.org,Squid 没有意识到这是相同的)。

安装程序默认为 just mirror,有没有办法让它工作?所以我可以偷懒,直接输入一堆?

cache debian squid apache-httpd

6
推荐指数
1
解决办法
1117
查看次数

当特定用户调用时,如何将 w3m 配置为默认使用 squid 代理(或任何代理)?

当特定用户在 bash 登录 shell 中调用时,我可以配置w3m为Squid默认使用吗?

我查看了w3m配置文件,但没有看到任何可以设置squid为默认代理的设置。

proxy squid w3m

6
推荐指数
1
解决办法
3643
查看次数

SSH 和 Squid 用作代理时有什么区别?

我一直在我的一台服务器上使用 Squid 作为透明代理很长一段时间(几年)。

基本上从客户端,我在我的客户端和 ssh + Squid 服务器之间创建了一个 SSH 隧道,这样做:

ssh -T -N -x -C -L3128:127.0.0.1:3128 cedric@xxx
Run Code Online (Sandbox Code Playgroud)

然后我会启动我的网络浏览器(chromium),在端口 3128 上的 127.0.0.1 上为它提供一个代理服务器。

这在很长一段时间内都运行良好,但后来我开始在许多网站(论坛、使用 Google 作为登录权限的 stackexchange 等)上出现日志问题。有些一直工作正常(如 GMail 和所有 GMail 服务)。我不知道是什么导致了登录问题:我认为这是由于我升级服务器的操作系统和软件时的一些 Squid 配置问题。

所以我考虑建立一个 VPN,但后来通过阅读一篇名为“SSH 作为穷人的 VPN”的文章,我意识到我可以使用 SSH 并简单地从客户端执行此操作:

ssh -D 5222 cedric@xxx -N
Run Code Online (Sandbox Code Playgroud)

然后将我的浏览器配置为使用 127.0.0.1 作为端口 5222 上的 SOCKS 主机。

现在一切正常:所有登录问题似乎都解决了,我什至不再需要服务器上的 Squid。

但是我不明白它是如何工作的。从各种“我的 ip 是什么”网站,我看到了我的服务器地址(这是我想要的)。此外,这些站点似乎没有检测到正在运行的 SSH“隧道”。

基本上我的问题是:从技术上讲,使用 Squid 作为透明代理与使用“SSH -D ... -N”和使用 VPN 之间的区别是什么?

从我访问的网站的角度来看,有什么不同吗?

另外我想知道在使用“SSH -D ... -N”时,我正在访问的网站是否有任何方式能够检测到我的真实IP?这在技术上是否可行,还是浏览器根本无法获得该信息?

ssh http-proxy squid

5
推荐指数
1
解决办法
7489
查看次数

绑定两个不同质量的 Internet 连接

我住在这个国家的偏远地区,互联网方面。我使用基于卫星的互联网,但它在高峰交通时间有很多问题。

我研究了一下,发现了 Ubuntu Bonding。如果我构建一台 Linux PC 并将我的卫星 Internet 连接到 NIC,以及一个用于 3G/4G 的 Netgear Aircard,Ubuntu Bonding 是否允许我在各种质量状态下使用这两个连接?我也应该添加squid缓存吗?或者这是不同问题的解决方案?

我想使用 RaspberryPi,但它没有千兆以太网,可能会降低整体体验。可能会使用旧电脑。

bonding squid mobile raspberry-pi satellite

5
推荐指数
1
解决办法
5117
查看次数

如何对 HTTP 代理使用身份验证和协商(例如 Kerberos)?

一般接受的是使用HTTP_PROXY/HTTPS_PROXY环境变量来指定代理服务器的使用。身份验证可以包含在该 URL 中,例如HTTP_PROXY=http://user:pass@myproxy.mydomain.tld:3128/。

但是,我使用 Kerberos SSO 通过代理进行身份验证。我该如何配置呢?因此,假设 Squid 代理服务器配置如下所述: https: //wiki.squid-cache.org/ConfigExamples/Authenticate/Kerberos。它描述了 Windows 客户端如何通过协商使用代理身份验证,但没有信息如何配置 Linux/Unix 客户端。

对于 cURL,使用--proxy-negotiate -u :可以解决问题,例如:

HTTPS_PROXY=http://myproxy.mydomain.tld:3128/ curl --proxy-negotiate -u : https://www.google.com
Run Code Online (Sandbox Code Playgroud)

如何告诉非 cURL 应用程序使用此机制?例如 Debian/Ubuntu APT 带有Acquire::http::Proxy "http://myproxy.mydomain.tld:3128/";?

我发现cntlm充当中间另一个本地运行的代理,促进来自本地主机的未经身份验证的连接。但是,这仅适用于 NTLM,而我需要 Kerberos。Squid 是否能够使用 Kerberos 作为客户端进行连接?众所周知,在代理服务器的传出连接上找到身份验证功能似乎非常困难。所有这些似乎都集中在侦听套接字上的身份验证功能上。

http-proxy proxy http squid kerberos

5
推荐指数
0
解决办法
1万
查看次数

如何以最小尺寸安装 FreeBSD?

我想安装 FreeBSD 以在其上运行鱿鱼缓存服务器。我想知道如何使此安装尽可能小?

我在虚拟机上安装了仅引导 ISO 文件,但它占用了大约 600 兆字节。顺便说一下,它是一台旧机器,所以我希望它在这个最小尺寸下工作。

是否有任何脚本可以只下载所需的文件,哪个文件系统最适合鱿鱼缓存保存分区?

freebsd squid system-installation

4
推荐指数
1
解决办法
3134
查看次数