如何从相同的IP但不同的端口(每个来自不同的位置)发出多个请求

时间:2015-04-15 20:08:25

标签: networking tcp portforwarding ports

我有这种情况:IP(例如192.168.0.109)。可以通过相同的IP但通过不同的端口发出一些请求吗?更多,每个端口来自不同的区域。像代理,但对于端口。

所以,我想实现这样的目标:

192.168.0.109:20000 - >巴黎
192.168.0.109:20457 - >里昂
192.168.0.109:21341 - >悉尼

我读了一些关于TCP Proxy的内容,但我不确定这是否正是我想要的。

任何人都可以解释一下,如果这是可以实现的,如果是这样的话,请描述一下整个过程以及为了让这样的事情运行会采取什么步骤?

2 个答案:

答案 0 :(得分:2)

默认情况下,每个新的TCP连接将自动从内核的ephemeral ports池中分配本地IP和随机端口号。在connect到服务器之前,您可以选择bind(2)套接字到所需的本地IP和/或端口。您可以bind()到所需的IP并让内核为您选择端口。

答案 1 :(得分:2)

让客户端创建socket并使用服务器IP:端口的详细信息调用connect。在这种情况下,操作系统自动提供本地IP:客户端绑定到的端口。这是默认行为。

如果您愿意,可以让客户端绑定到特定的IP - 在bind之前调用connect。您可以将绑定端口设置为0,以便操作系统仍然为您选择随机本地端口。

现在,当您想要建立另一个连接时,只需执行与上面相同的操作即可。不需要更多。

因此,您可以随意创建任意数量的套接字并为它们建立连接。它们将自动来自所选择的“区域”。