我需要配置 HAproxy 以使用 SSL 重定向多个域,我需要以这种方式重定向:
www.foo.com redirect to ip_other_webserver:81
www.bar.com redirect to ip_other_webserver:82
www.zoo.com redirect to ip_other_webserver:8080
Run Code Online (Sandbox Code Playgroud)
我不知道 HAproxy,过去我用 nginx 做了相同的配置,但我也需要负载均衡器。我找不到配置示例。谢谢
我希望能够向通过我的 DD-WRT 路由器的某些 URL 请求添加一个参数。具体来说,我想弄清楚如何在 Google 中强制进行安全搜索,这意味着我必须附加safe=on到任何以*google*.
我已经阅读了有关在充当代理的路由器上运行服务器的信息。然后在那台服务器上我可以使用 mod_rewrite 或类似的东西。我还阅读了有关使用 iptables 的防火墙规则的信息。这两个都超出了我的范围,但我似乎找不到任何真正的指导。
nmap -p1-65535 localhost 给我
PORT STATE SERVICE
8080/tcp open http-proxy
Run Code Online (Sandbox Code Playgroud)
使用此端口的进程是什么。
来自/etc/services/:
http-alt 8080/tcp webcache # WWW caching service
Run Code Online (Sandbox Code Playgroud) 我所在的网络在大多数机器上都阻止了传出端口 8080(即我无法访问端口 8080 上的服务)。
然而,网络上的一些机器没有这个限制。
我想在不受限制的机器上运行代理,并通过该代理将传出请求转发到 8080。
我在这些机器上都没有 root 访问权限。
我看过鱿鱼,它在我想运行代理的机器上编译得很好,但由于它是一项服务,我认为我无法在没有 root 访问权限的情况下有效地运行它。
我也尝试过 ssh 端口转发,但由于在不受限制的机器上没有运行服务,我认为 ssh 不会解决我的问题。
如果有其他方法可以实现这一目标,我也对此持开放态度。
我一直在我的一台服务器上使用 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?这在技术上是否可行,还是浏览器根本无法获得该信息?
如何在代理网络下使用 yaourt 安装应用程序。对于 pacman,我可以简单地使用:
export http_proxy=http://usernm:passwd@link:port
sudo -E pacman -S application
Run Code Online (Sandbox Code Playgroud)
但是我该怎么做,yaourt因为它不与sudo特权一起使用。
一般接受的是使用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 作为客户端进行连接?众所周知,在代理服务器的传出连接上找到身份验证功能似乎非常困难。所有这些似乎都集中在侦听套接字上的身份验证功能上。
在 Debian 的安装过程中,我被要求提供一个格式为 的标准代理字符串http://user:password@host:port/,我输入了该字符串。apt-get 在更新期间运行并检索文件,现在 Debian 已安装。但是,当我尝试运行时sudo apt-get install ...,我收到一条错误消息,其中包含我在安装过程中输入的主机Could not resolve proxy_host在哪里的消息proxy_host。
还有其他地方需要设置代理信息吗?
/使用谷歌浏览器/
如果我访问:
https://secure.wikimedia.org/wikipedia/en/wiki/File:Nokota_Horses_cropped.jpg
那么:
http://upload.wikimedia.org/wikipedia/commons/d/de/Nokota_Horses_cropped.jpg
位于仅支持 HTTP 的服务器上。
那么我怎么能 100% 确定,如果我在浏览器的 URL 栏中看到“HTTPS”,这意味着网站的全部内容真的是加密的?
在我的例子中,维基百科上的图片没有使用加密(?),所以嗅探器可以知道我正在访问一个关于马的维基百科网站。
我是否应该安装一个代理(例如:privoxy)来确保“HTTPS 站点”上不会加载任何仅 HTTP 元素?
谢谢..
我的机器上有这个:
$ cat /etc/profile.d/proxy.sh
export http_proxy=http://192.168.1.30:3128
export https_proxy=https://192.168.1.30:3128
Run Code Online (Sandbox Code Playgroud)
这非常有效,直到我需要在本地主机上的应用程序中使用 HTTP 接口。
$ wget localhost
--2023-03-02 06:54:52-- http://localhost/
Connecting to 192.168.1.30:3128... connected.
Proxy request sent, awaiting response... 503 Service Unavailable
2023-03-02 06:54:52 ERROR 503: Service Unavailable.
$ wget 127.0.0.1
--2023-03-02 06:55:20-- http://127.0.0.1/
Connecting to 192.168.1.30:3128... connected.
Proxy request sent, awaiting response... 403 Forbidden
2023-03-02 06:55:20 ERROR 403: Forbidden.
Run Code Online (Sandbox Code Playgroud)
有没有办法阻止localhost请求127.0.0.1转发到代理?
细节:
这台机器没有直接连接到互联网。它没有网关或默认路由。但它位于具有代理计算机 (192.168.1.30) 的 LAN 上,该代理计算机安装了代理服务器(端口 3128)并具有 Internet 连接。
$ ip addr
1: lo: ...
inet 127.0.0.1/8 scope …Run Code Online (Sandbox Code Playgroud) 是否可以通过修改/etc/hosts文件仅阻止网站的某个子页面而不是所有域?例如,我想阻止http://example.com/whatever.html而不是所有域http://example.com。我试图把只是,0.0.0.0 http://example.com/whatever.html但它不起作用。