2011-10-11 45 views
2

我读这个话题 http://ftp.icm.edu.pl/packages/socks/socks4/SOCKS4.protocol袜子4绑定请求解释

和什么即时试图做的是: 我有一个客户机/服务器应用程序,什么即时试图做的是用袜子4 BIND请求绑定我的服务器到远程袜子服务器,并使客户端连接到该袜子服务器和袜子服务器将使他们连接到我的服务器(至少多数民众赞成在多了解我的袜子BIND请求)

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

回答

4

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

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

+0

谢谢,我从你的例子中了解得更好,现在明白了,再次感谢。我只是寻找保护我的服务器,所以它被攻击,Socks服务器将是,而不是我的本地服务器。 – killercode

+0

使用内置有防攻击逻辑的路由器。 –

+1

雷米,目前我正在为袜子的rfc而苦苦挣扎。你能否澄清一些BIND方面?可以在BINDed套接字上完成多少个来自目标主机的入站连接?只有一个?在我看来,这一点在rfc中并不明显。 – sim