【问题标题】:Connect to your external IP to simulate the internet连接到您的外部 IP 以模拟互联网
【发布时间】:2012-06-08 11:45:57
【问题描述】:

所以我正在编写这个程序,它使用 python 和套接字通过 Internet 进行通信,但这不是问题。

问题是我希望测试程序在现实的互联网环境中如何工作。

ie:我的客户端连接到海上某处的代理,然后数据返回到我的路由器到我的另一台计算机。

所以我希望我的数据到海外,然后再回来。

无论如何,这可以做到吗?或者这是不可能的?我尝试过使用代理服务器,但我一辈子都无法让它们正常工作!

【问题讨论】:

  • 您这样做的动机是什么?您想测试具有高延迟的行为吗?
  • 差不多。我想确保程序正确处理这一切。我认为我过去编写了一个可行的套接字层,但事实证明这似乎不够,我不能仅仅依赖其他人,否则开发会减慢/不存在。

标签: python sockets proxy ip external


【解决方案1】:

你应该在 linux 中使用wanemtc

不要为此目的在 ssh 中隧道传输您的流量。 Tunneling TCP in TCP 引入了延迟之外的问题。

【讨论】:

  • 引用:“因为超时时间仍然小于下层超时时间,所以上层会比下层处理更多的重传更快地排队”跨度>
【解决方案2】:

您可以在远程机器上设置一个简单的 SSH 隧道:

ssh -N your-oversea-server.com -L 1234:your-other-computer.com:1234

然后,您的客户端可以连接到your-oversea-server.com:1234,并且流量将被重定向到your-other-computer.com:1234

【讨论】:

  • 您的答案需要在 TCP 流量中建立 TCP 隧道。这会在模拟中引入更多的负面动态,而不仅仅是高延迟。
【解决方案3】:

在您的服务器上使用no-ip 客户端(比如说myserver.no-ip.com)将您的服务器绑定到0.0.0.0 port 80,然后在您的家庭路由器上将您的服务器局域网IP 定义为dmz。在另一台电脑上(可能位于另一个房间,在同一个局域网上)连接到myserver.no-ip.com。如果它通过trace route:tracert myserver.no-ip.com,您可以查看它是否在海外旅行。如果这无济于事,请在客户端计算机上使用代理。 (大多数免费代理只允许端口 80 流量)

【讨论】:

  • 其实是个好主意...我一直在不是 80 上运行程序,但是使用 Web 端口重定向,我可以让它以这种方式输出和返回。我会试一试,然后告诉你进展如何。
  • 没有骰子。返回路由器,然后转到其登录页面。 ://
  • @DwayneBrumby 实际上你应该禁用对路由器的出站访问,除非你需要一些黑客/支持人员通过 Internet 连接到它
  • 嗯。这些设置已关闭,这意味着它一开始就没有通过路由器。 ://
  • @DwayneBrumby 您应该尝试从客户端 pc ping myserver.no-ip.com 以查看它为它解析的 ip。它应该是路由器的外部地址。而且你可以把你家路由器的网络访问端口改成9090之类的..
【解决方案4】:

这取决于您正在编写的程序类型,如果您只是希望您的程序连接到某个目标 ip 上同一程序的另一个实例。或者您正在编写服务器应用程序?如果是这样,什么客户端连接到该服务器?我不确定你是否需要使用代理,TCP 流量只会通过它需要到达它需要去的地方的路由器/交换机。

如果您可以详细说明您的问题,并指定您编写的是具有差异化客户端的服务器,还是仅是客户端/服务器的桌面应用程序,那将很有帮助。

【讨论】:

  • 两者兼而有之!它本身就是一个代理服务器。它读取客户端和服务器之间的数据包,并修改它们(客户端/服务器很遗憾是闭源的)
  • 人力资源部。你必须决定什么最适合你,就我个人而言,我会在我想要测试的区域启动一个 Amazon Web Services EC2 实例。他们在欧洲和亚洲以及北美都有地区。如果您使用他们提供的最便宜的服务器并且只运行一天左右,那么它将是免费的,因为新帐户符合免费使用等级的条件。只需将此服务器配置为执行回显功能或您需要它执行的任何操作来测试程序的往返行程。
  • 如果你启动一个 ec2 实例并安装你的代理,然后你可以在北美配置一个客户端和一个服务器,并通过亚洲或欧洲的代理路由流量,这应该满足你的测试需要。我想。 :-)
猜你喜欢
  • 2012-08-03
  • 2011-11-07
  • 2011-07-29
  • 2012-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多