【问题标题】:Forward HTTP traffic to a private server将 HTTP 流量转发到专用服务器
【发布时间】:2015-03-14 16:06:14
【问题描述】:

我想将来自外部服务器 linnode 的 http 流量转发到仅允许使用 NAT 进行传出连接的专用网络中的服务器。我是这个领域的新手,所以我随机尝试了socatssh tunnel,但没有运气。这里的一个关键问题是我无法控制这个私有网络,包括防火墙和网关,因此我无法在网关上设置任何东西来重定向来自那里的流量。

我知道如何为该私人服务器设置反向 ssh,但那是另一回事。我不知道这会有什么帮助。

[添加我的 ssh 隧道尝试]

让我们看看我的 linnode 服务器是具有已知 IP 的 A。我的私人服务器是 B 并且显然具有未知的外部 IP 地址。目标是将流量从 A 重定向到 B,所以我在 B 中运行它:

ssh -N -f -R 8000:localhost:80 user@[A's ip]

这应该建立一条从 A:8000 到 B:80 的隧道。但是当我使用netcat检查时,A上没有建立连接。

【问题讨论】:

  • 一个 ssh 隧道应该能够提供您正在寻找的东西。您是否介意分享您迄今为止的尝试,以便我们可以共同制定如何实现这一目标?基本上,您通过 ssh 从内部服务器连接到 linnode 系统并指示设置附加隧道。这行得通,如果你可以像那样连接到 linnode。
  • 我添加了我的尝试。请检查。谢谢。 @arkascha
  • 我刚刚再次检查,这对我有用。但是,有几点需要记住: 1. 只有 root 可以转发特权端口,例如 80。所以您必须使用sudo 实用程序。 2. 在这种情况下,您可能还必须使用-i 标志指定 ssh 密钥,因为您切换了用户。 3. 注意 A 上的 ssh 服务器确实使用默认端口或使用 -p 标志指定端口。由于您使用的是-N 标志,因此您不会看到连接问题。观察远程节点上的系统日志文件是个好主意。
  • @arkascha 1. 你如何验证它的工作原理? 2.如何查看系统日志文件?
  • 好吧,我通过连接到远程端口进行了验证,该端口可以正常工作并传递结果,就像连接到本地系统的开放端口一样。关于检查日志文件:您正在使用 ssh 之类的东西并且不知道如何查看日志文件?嗯...无论如何:像tail -f /var/log/messages 或类似的东西,取决于 linux 发行版。

标签: bash networking ssh tunnel socat


【解决方案1】:

我不确定这是否对您有帮助,但是像 Skype 这样的软件面临着与专用网络“外部”的服务器或设备需要联系内部计算机的相同问题,例如当有人打电话时。他们使用这个漏洞技巧,因此防火墙识别到达的包来源(在您的情况下为 linode-server)并让它们通过:

http://www.candlepowerforums.com/vb/showthread.php?144842-The-hole-trick-How-Skype-amp-Co-get-round-firewalls

也许你可以做到这一点,因为你知道你的流量来自哪里。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-14
    相关资源
    最近更新 更多