![如何在 apache2 中为转发代理设置某种身份验证?](https://linux22.com/image/689293/%E5%A6%82%E4%BD%95%E5%9C%A8%20apache2%20%E4%B8%AD%E4%B8%BA%E8%BD%AC%E5%8F%91%E4%BB%A3%E7%90%86%E8%AE%BE%E7%BD%AE%E6%9F%90%E7%A7%8D%E8%BA%AB%E4%BB%BD%E9%AA%8C%E8%AF%81%EF%BC%9F.png)
我有一个 VPS 并将其配置为运行 apache2 作为正向代理:
<IfModule mod_proxy.c>
ProxyRequests On
<Proxy vps_ip:80>
Order deny,allow
Deny from all
Allow from all
</Proxy>
</IfModule>
这样我就可以使用家里机器上的 VPS 从网络下载资源,使用 curl:
curl -x "vps_ip:80" http://www.someresource.com -o /tmp/mydown
但是,我知道这被视为开放代理,我想将其仅用于我的家用机器。Apache 配置支持代理客户端(如我的家用机器)的静态 IP 白名单。但是,每次我连接到互联网时,我的 ISP 都会为我分配不同的动态 IP。
如何防止其他人在我的 VPS 上使用我的正向代理?
答案1
一种常见的方法是告诉 apache 仅在 VPS 上监听本地主机:
Listen 127.0.0.1:80
然后使用 ssh 将家用机器上的本地端口“转发”到 VPS 端口。
ssh -L 8000:localhost:80 user@vps
然后使用本地端口的 curl 应该通过 vps apache:
curl -x "localhost:8000" http://someresource.com -o /tmp/mydown