4

我正在阅读这个主题 http://ftp.icm.edu.pl/packages/socks/socks4/SOCKS4.protocol

我想做的是:我有一个客户端/服务器应用程序,我想做的是使用 socks 4 BIND 请求将我的服务器绑定到远程袜子服务器,并使客户端连接到该袜子服务器和袜子服务器将使它们连接到我的服务器(至少这就是我理解 socks BIND 请求的方式)

但我不完全理解(我的英语有点糟糕),我要问的是,当我不知道客户端的任何远程 IP 时是否可以这样做?因为服务器的 BIND 请求包必须包含远程客户端的地址,而我真的没有,因为客户端来自从我的服务器检索状态信息的未知用户(或者我可以将 0 用于 INANY_ADDR)?

4

1 回答 1

6

SOCKS 无法满足您的要求,也不是为此目的。再次仔细阅读规范。BIND 命令用于多连接协议(如 FTP),其中主连接用于在客户端和服务器之间进行通信,而 BIND 有助于在服务器需要将辅助连接连接到客户端之后的情况。客户端告诉服务器在哪里连接。在这种情况下,客户端会向 SOCKS 发出 BIND 命令,告诉它服务器的 IP/端口,因此它只接受该连接,然后将生成的 SOCKS 侦听 IP/端口发送到服务器以进行连接。

使用定义了端口转发规则的路由器可以更好地满足您的要求。然后,您可以在路由器上打开一个侦听端口,该端口接受任何入站连接并将其转发到您应用的侦听 IP/端口。大多数现代路由器都支持 uPNP(通用即插即用),因此您可以通过编程方式配置转发规则,而无需管理员访问路由器的配置软件。

于 2011-10-12T03:51:32.073 回答