问题标签 [tunneling]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
438 浏览

networking - 如何使子网内的 Teredo 主机相互通信

虽然我可以从启用 teredo 的终端主机成功 ping 一个全局地址,但我无法在同一个 ipv4 子网中连接两个终端主机。我们正在运行 Windows XP。有什么想法吗?

0 投票
1 回答
18515 浏览

ssh - ssh -D ; 但反过来呢?

是否可以像这样使用动态端口转发设置 SSH 隧道:

ssh -D

但反过来呢?也就是说我想在我的本地机器上启动连接并在那里进行动态端口转发,并让我的朋友将他的浏览器连接到隧道的另一端。

如果我的朋友键入以上内容,上述内容非常有效,但我不想让他 ssh 访问我的机器,只是让他代理他的浏览器。

0 投票
1 回答
1930 浏览

apache-flex - 如何实现 HTTP 隧道

我编写了一个连接到后端服务器以交换数据的 Flash (Flex) 客户端。

我还从头开始编写我的服务器,它有两个目的:

(1) Web (HTTP) Server - 默认侦听端口 80

(2) Socket/Application-Server - 默认监听 443 端口

仅供参考,出于方便的原因,两台服务器都在相同的进程空间中运行。他们预计不会处理大量负载,所以我对此很好。

一旦 Flash 客户端从 HTTP 套接字提供给浏览器,客户端就会尝试打开一个 XMLSocket 到套接字/应用程序服务器。

我现在想实现 HTTP 隧道,这样即使用户在防火墙后面,我的客户端也可以连接到应用程序服务器。我不希望涉及任何外部服务器(代理等) - 只需使用我已经拥有的服务器。

我的问题:

(1) 使用端口 443 更好吗?(它会更好地欺骗防火墙吗?)

(2) 据我所知,我需要做的只是确保我的实际应用程序数据从客户端和服务器端都简单地封装在一个 HTTP 结构中(前面是一个虚拟的 HTTP 标头)。是这样还是我在这里遗漏了什么?

(3)我是否需要继续隐藏/封装我通过套接字发送的每条消息,或者我可以在打开连接时封装第一条消息?

提前谢谢各位!绒毛

0 投票
1 回答
2996 浏览

c# - WPF按钮隧道OnClick事件

我正在寻找一个隧道 Button.Click 事件。ButtonBase.Click 事件正在冒泡,因此根只能在为该按钮注册的操作已经发生之后才能处理该事件(对于我需要的来说太晚了)。

我需要对应的“预览”事件,以便在注册到按钮 的事件发生之前处理该事件。
我不确定这样的事件是否存在,所以如果不存在,我很乐意听到一些解决方法。

0 投票
2 回答
1587 浏览

java - HTTP 代理连接共享

我正在尝试使用与 Web 浏览器所采用的技术类似的技术来实现 HTTP 隧道,以使用 Netty 框架在 Java 中模拟全双工连接。我希望以这样的方式实现它,它可以在现实世界的 HTTP 代理存在的情况下工作。我试图在不使用 servlet 容器的情况下执行此操作,以避免在库依赖方面产生不必要的开销,并且因为 servlet API 不适合全双工 http 隧道的使用模式。

我知道 HTTP 代理施加的一些限制“破坏”了 HTTP 协议的一些潜在用途:

  1. 在客户端和代理之间的连接之外,可能无法使用 HTTP 管道。即代理可以发送一个请求并在发送下一个请求之前等待响应,即使客户端已经向代理发送了多个流水线请求。
  2. 分块编码可能不会以类似的方式在代理之间的连接之外得到尊重:服务器可能会以块的形式发回响应,但代理可能会在将完整的、去块的响应分派给客户端之前等待结束块。
  3. HTTP CONNECT 通常只允许用于 SSL/TLS 端口,通常只允许端口 443,因此这不能用作一种偷偷摸摸的方式来获得与外界的不受限制的 TCP 连接。

但是,我不确定还有另一种可能性:现实世界的 HTTP 代理是否也在多个客户端之间共享到服务器的持久连接?例如:

  • 客户端 A 向服务器 X 发送请求 A1、A2 和 A3
  • 客户端 B 向服务器 X 发送请求 B1 和 B2
  • 客户端 C 向服务器 X 发送请求 C1、C2 和 C3

然后代理是否可能会打开到服务器 X 的单个连接并按以下顺序发送消息:

A1、A2、B1、C1、B2、A3、C2、C3

还是保留每个客户的订单但可能交错的类似订单?或者更糟糕的是,代理是否可以打开到服务器的多个连接并在连接之间分散来自每个客户端的消息,即

如果是这样,我的方法需要更多考虑,因为我可能需要将这些消息多路分解到每个隧道的不同队列中,并且不能简单地依赖于将连接识别为用于特定客户端。

有谁知道任何描述常用 HTTP 代理和状态检查防火墙的怪癖的好资源?

0 投票
1 回答
727 浏览

c# - 如何利用 IIS Web Server 完成 HTTP Tunneling?

如何在 C#/ASP.Net 中通过使用 IIS Web 服务器作为中介来完成 HTTP 隧道?
客户端应用程序可以是 C#(独立)、C++(activex),甚至是浏览器中的 Flash 和 Javascript。

  1. 如上所述处理 HTTP 隧道是否正确?
  2. 如果是这样,我是否需要从客户端连续轮询(长轮询/短轮询)Web 服务器?
0 投票
1 回答
454 浏览

c# - 有什么智能模式可以在 Winforms 上完成事件的冒泡和隧道化?

我们可以在 Winforms 上同时完成隧道和冒泡吗?也许通过使用一些 API 消息拦截?有没有关于那个的文章?

0 投票
1 回答
1108 浏览

web-services - 通过 HTTP 隧道协议 - 建议

通过 HTTP 建立隧道的现实生活协议的最佳示例是什么?XMPP/Jabber?我正在寻找文档的实际链接?或它们如何隧道的规格。

我正在做一个项目,我想知道我是否应该从 REST、XML-RPC 或 SOAP 开始,然后使用该协议的快速 TCP 风格。或者从低级别开始,然后使用更像 POX 的东西通过 HTTP 隧道。

开始使用此协议的客户端将使用 Ruby、Java 和 .NET 编写,然后可能会分支到 Python、Perl、Scala、Erlang 等......

要求
1) 客户端可以通过 HTTP 通信通道或另一个端口上的直接 TCP 连接到服务器。TCP 喋喋不休会像 jabber 一样流式传输 XML
2) 我不一定希望与 XMPP 兼容或编写我自己的 XMPP 服务器。
3) 服务器将 100% 用 .NET 编写(但对 Mono 友好)
4) 客户端可以用任何东西编写(但见上文 - 首先是 Ruby、Java 和 .NET)

0 投票
4 回答
8632 浏览

ssh - 如何设置 SSH 隧道以访问防火墙后面的网络服务器?

我将如何访问防火墙后面的网络服务器?我正在为这个尚未向公众开放的网络服务器开发一个应用程序。

以前有人指导过我,所以我知道可以做到。但是,已经过去了大约四个月,我无法再做一次。

我正在使用 Putty 连接到远程机器。从那台机器上,我可以使用 Firefox打开网站http://dev.server.address:83 。但是,我希望能够在我的机器上打开http://localhost:80以查看相同的页面。

我使用服务器地址和端口 83 作为“源端口” 我使用 localhost:80 作为“目标端口”

0 投票
4 回答
17597 浏览

networking - 通过 TCP 代理的 RDP

第一次在 Stackoverflow,我希望有人可以帮助我。

我正在研究通过 TCP 代理/隧道传递 RDP 流量的概念证明,该 TCP 代理/隧道将使用 HTTPS 通过防火墙。

问题与将图像部署到机器有关,因此不能假设 .NET 框架会存在,因此在连接的部署端使用 C++。

我目前拥有的基本系统是一个程序,它侦听端口上的客户端连接,然后将任何数据传递给 WCF 服务,该服务将其存储为字节数组。部署机器(使用 GSoap 和 C++)轮询 WCF 服务以获取消息,如果找到它们,则通过套接字将数据传递到目标服务器进程。我知道这听起来很可怕,但它适用于简单的测试客户端和服务器通过这个 WCF/C++/C# 代理层将数据传入和传出简单的测试客户端和服务器程序。

但我必须支持来自 RDP、VNC 和可能其他的流量,所以我需要一个透明代理来做到这一点,我想知道上述方法是否值得追求。我已经阅读了 SSH 隧道,这似乎是一种可能性。我的基本问题是是否可以使用自定义代码通过 HTTPS 传输 RDP 流量。

谢谢约翰