【问题标题】:How to make multiple requests from the same IP but different ports (each from different location) [closed]如何从同一个 IP 但不同的端口(每个来自不同的位置)发出多个请求 [关闭]
【发布时间】:2015-06-21 23:38:23
【问题描述】:

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

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

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

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

谁能解释一下这是否可以实现,如果可以,请向我描述整个过程以及要运行这样的东西需要哪些步骤?

【问题讨论】:

  • 应该在Network Engineering上询问。
  • 我也会在那里发布问题。感谢您的提醒
  • @Alexander ,这是默认设置。如果您在创建套接字时不绑定,而只是像大多数应用程序那样“连接”,那么源端口将始终是不同的并且在一定数量之上是随机的。它需要确保每次都有一个唯一的会话。
  • @Alexander - 不要跨帖。你的问题在这里很好。

标签: networking tcp portforwarding ports


【解决方案1】:

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

【讨论】:

  • 那么,是可以实现的吧?您能好一点并在您给定的答案中添加更多细节吗?例如,如果我想在自己的 IP 地址上实现这一点,需要什么?我需要一个 VPS 吗? VPN?
  • 除了正常的 Internet 路由之外,您不需要任何特殊的东西。我假设您正在询问有关编程方面的问题。如果是这样,请阅读套接字编程。如果这是关于网络/设备配置的,那么您应该按照建议将问题移至networkengineering.stackexchange.com
  • @Remy,感谢编辑。
【解决方案2】:

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

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

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

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

【讨论】:

  • @Remy,感谢您让我的回答变得更好。
猜你喜欢
  • 2016-11-03
  • 2019-03-31
  • 1970-01-01
  • 1970-01-01
  • 2023-01-05
  • 1970-01-01
  • 1970-01-01
  • 2012-09-30
  • 1970-01-01
相关资源
最近更新 更多