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

How to make multiple requests from the same IP but different ports (each from different location)

我有这个场景:一个IP(例如192.168.0.109)。可以从同一个 IP 但通过不同的端口发出一些请求吗?更多,每个端口都来自不同的区域。类似于代理,但用于端口。

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

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

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

任何人都可以向我解释一下这是否可以实现,如果可以,请向我描述整个过程以及要实现这样的目标需要哪些步骤 运行?

每个新的 TCP 连接将自动分配一个本地 IP 和随机端口号,从内核的 ephemeral ports pool by default. You can optionally bind(2) 套接字到所需的本地 IP and/or 端口,然后 connect-ing 到服务器。你可以bind()到一个想要的IP,让内核为你选择端口。

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

如果您愿意,可以让客户端绑定到特定 IP - 在 connect 之前调用 bind。您可以将绑定端口设置为 0,这样 OS 仍会为您选择一个随机本地端口。

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

因此,您可以继续创建任意数量的套接字并为它们建立连接。它们将自动来自它们所绑定的所选 "zones"。