【发布时间】:2009-12-08 22:42:51
【问题描述】:
假设客户端 A 通过 TCP/IP 套接字连接到服务器 B 是否可以创建类似服务器的代理来执行此操作:
客户端 A 连接到代理 X ;并尝试向服务器进行身份验证(发送身份验证数据); Proxy X 接收这些数据并将它们发送到服务器 B,并从服务器 B 获取响应并将结果返回给客户端 A
有可能吗?有没有源代码?
【问题讨论】:
标签: c# c++ proxy reverse-proxy sniffer
假设客户端 A 通过 TCP/IP 套接字连接到服务器 B 是否可以创建类似服务器的代理来执行此操作:
客户端 A 连接到代理 X ;并尝试向服务器进行身份验证(发送身份验证数据); Proxy X 接收这些数据并将它们发送到服务器 B,并从服务器 B 获取响应并将结果返回给客户端 A
有可能吗?有没有源代码?
【问题讨论】:
标签: c# c++ proxy reverse-proxy sniffer
看起来你在描述SOCKS。
Mentalis.org 在 C# 中实现了 ProxySocket 和 proxy server。
【讨论】:
您可以使用 SSH 隧道来执行此操作。有各种第三方产品可以为您做到这一点。我建议不要自己重新实现它。
【讨论】:
如果您可以控制代理,您只需更改代理上使用的身份验证模块即可对服务器 B 进行身份验证。您必须注意一些安全问题以确保 X 和 B 都是真实的。您可以使用相互验证的 SSL 或签名消息来做到这一点。
这种身份验证被 ISP 广泛使用。他们正常使用的协议是RADIUS,
http://en.wikipedia.org/wiki/RADIUS
大多数代理服务器都有内置的 RADIUS 身份验证模块。
【讨论】:
DeleGate,其源可用,可以设置一个“中继”,其中所有数据都从本地机器上的任意端口传递到任意主机:端口。 (见"tcprelay" command in the docs)。
【讨论】: