用于 nginx 上游的 socks5 代理/隧道?
Posted
技术标签:
【中文标题】用于 nginx 上游的 socks5 代理/隧道?【英文标题】:socks5 proxy/tunnel for nginx upstream? 【发布时间】:2011-11-03 07:57:51 【问题描述】:是否有任何解决方案/补丁可以使 nginx 与上游的袜子一起工作?
类似这样的:
server
location /
proxy_pass socks5://ip:port/
【问题讨论】:
【参考方案1】:我最近写了a module,完全符合您的需要。您可能需要在 nginx 之前使用 HAProxy 之类的东西来支持 TLS 隧道。
【讨论】:
【参考方案2】:SOCKS 是第 5 层,HTTP 是第 7 层。HTTP 代理无法处理 SOCKS,尽管 HTTP 代理可以在 SOCKS 上工作。我不清楚如果 Nginx 能够连接到 SOCKS 服务器,你希望 Nginx 对响应做什么。这类似于询问 Nginx 是否可以连接到 NetBios 或 PTPP。
假设您尝试将 Nginx 代理连接到只能通过 SOCKS 访问的另一个 HTTP 服务器,您需要将其设置为操作系统上网络堆栈的一部分。
也许这个链接可以帮助你:
http://www.catonmat.net/blog/linux-socks5-proxy/
【讨论】:
是的,这就是我的意思,而不是设置另一个socks5代理(与nginx相比,它的性能保证很烂),为什么nginx不能直接处理socks5(客户端请求一个URL,nginx检索通过 socks5 的 URL。就这么简单)? 我不清楚您认为“the socks5”在您的描述中的什么位置。这是你必须在你的操作系统中配置的东西。完成此操作后,您只需告诉 Nginx 将 proxy_pass 传递给 localhost:8080(取决于您的 SOCKS 设置),它就会起作用。 localhost:8080 性能与 nginx 不匹配。您不能将此方法用于高带宽网站。 我不会在 SOCKS 上做一个高带宽站点。话虽如此,SOCKS 是一个网络接口,所以你必须把它当成一个。 期待这样的功能是完全有效的,您可以使用 nginx -> delegate -> sock5 轻松实现它。那么,为什么不能指望通过 nginx 插件来完成呢?以上是关于用于 nginx 上游的 socks5 代理/隧道?的主要内容,如果未能解决你的问题,请参考以下文章
红蓝对抗之隧道技术第二篇(reGeorg内网穿透SSH隧道本地Socks代理SSH远程转发Earthworm Socks5代理Tunna正向代理ICMP隧道DNS隧道Frp穿透)
红蓝对抗之隧道技术第一篇(内网穿透端口映射&端口转发Netsh端口转发CS正反向连接多层内网Burp设置上游代理访问内网MSF protfwd端口转发/重定向)