问题标签 [http-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 回答
2335 浏览

java - HTTP 协议错误

我们正在向一个供应商托管的远程 Web 服务运行 Java,其中涉及到几个中间人。我们的 Java 代码(托管在 IBM WebSphere Application Server 上)很简单,如下所示:

这些机器由 Cisco ACE 负载平衡器进行负载平衡,并且网络在通往远程 Web 服务的途中有两个 BlueCoat 代理。

大多数情况下它运行良好,但(平均而言)供应商 Web 服务每天收到一次 HTTP CONNECT 而不是预期的 HTTP POST。这是来自错误 HTTP CONNECT 的访问日志的示例,在其下方是典型且正确的 HTTP POST:

我们怀疑代理或负载均衡器,有人在 Cisco ACE 或 BlueCoat 上看到过这种情况吗?或者这实际上可能是我们的问题,连接突然尝试创建隧道?Java SE 甚至可能在 WAS 上运行的任何东西都支持它吗?

0 投票
1 回答
1007 浏览

iphone - 使用 iPhone 应用程序中的 CONNECT 方法通过 SSL 实现 HTTP 代理

我正在开发客户端-服务器解决方案,其中我的 iPhone 应用程序使用 SSL 连接通过 TCP/IP 连接到服务器。我想确保 SSL 上的所有流量都通过 HTTP 代理服务器。

我们可以在设置 -> WiFi 详细信息 -> HTTP 代理(手动/自动)中指定 iPhone 上的 HTTP 代理信息。当我们这样做时,所有的 HTTP 流量都会通过上面提到的代理服务器。(例如,所有 Safari 流量,甚至是来自所有应用程序的 HTTP 流量。)

但我的问题是 SSL over TCP/IP 没有通过代理服务器。iPhone SDK 具有 kCFStreamPropertySOCKSProxy 属性集来配置 NSStream 以供 SOCKS 使用,如下所述,但我看不到在 CFSocket/NSStream 上配置 HTTP 代理服务器的规定。处理此问题的最佳方法是什么。

更新:看起来只有一种方法可以做到这一点,通过代理到服务器的 HTTP CONNECT 并将连接用于常规 SSL 流量。但我仍在寻找 iPhone 的实现。

谢谢

0 投票
0 回答
810 浏览

java - 使用 http 代理进行 FTP 连接的 ftp4j 中的套接字超时

我正在为 ftp 客户端使用 ftp4j jar 我使用了 HTTP 隧道连接器,因为我的 FTP 服务器(开放 VMS 服务器)位于 HTTP 代理后面。PWD、NOOP、CWD 等基本命令工作正常,但如果我尝试列出和 NLIST 目录或存储文件,那么一段时间内什么都不会发生,我会得到 SocketTimeOutException。

下面是我的代码

而如果我将注释掉我将 HTTPTunnelConnector 添加到我的 FTP 客户端的部分,那么我的代码可以正常工作(但它会在内部使用 FTPTunnelConnector)

下面是我的错误消息 java.net.SocketTimeoutException: Read timed out

0 投票
1 回答
3602 浏览

python - SocketServer rfile.read() 非常非常慢

我正在构建一个可以转发所有 SSL 流量的 HTTPS 代理。它被称为透明隧道。无论如何,我对 Python 的 socketserver 有疑问。当我调用 rfile.read() 时,需要很长时间才能返回。即使我使用 select 来确保 I/O 准备就绪,它仍然需要很长时间。通常是 30 秒,客户端的套接字因超时而关闭。我无法使套接字解锁,因为我需要先读取数据,然后将我刚刚读取的所有数据转发到远程服务器,必须先返回数据。

我的代码如下:

这让我发疯,因为当我转发正常的 HTTP 流量时,read() 会立即返回数据。但是每次客户端发送 SSL 流量(二进制)时,read() 需要很长时间才能返回!而且我认为有一些机制 read() 仅在远程客户端关闭请求套接字时才返回。有谁知道如何使 read() 快速?我尝试了recv() 和readline(),它们在处理二进制流量时都和read() 一样慢!

0 投票
1 回答
3189 浏览

node.js - Node JS TCP 代理:使用 Node JS 设置 HTTP 隧道

我正在尝试在 Node JS 中实现 TCP 代理。我只对 Javascript 有一些经验,所以在此过程中遇到了很多问题。我已经做了很多寻找这个但没有运气。

我想为 HTTPS 代理实现两跳 TCP 连接。这是我的代码的一部分。

如果我访问https://www.google.com ,我使用 Wireshark 捕获发送的数据包。如果我不使用代理,“Client Hello”消息将在 TLS v1.2 中发送。但是如果我使用我的代理,它是由 SSL 发送的。服务器总是拒绝我的 CONNECT 请求并返回一个重置请求。

我还尝试了 Node JS 中的 TLS API。服务器接受了我的 CONNECT 请求,但总是要求我在密钥交换后开始一个新会话。浏览器将关闭套接字并创建一个新套接字。但它从来没有加载页面......

我花了一整天的时间来解决这个问题。我相信我可以使用 TCP socket 来实现 HTTP Tunnel。请帮助...非常感谢!

0 投票
2 回答
2412 浏览

java - 基于 JSCH (SSH) 和 HTTPS 的反向隧道

我必须实现从客户端到服务器的反向隧道。我已经通过以下命令使用了JSCH

它可以工作(另请参阅Reverse SSH tunnel with JSCH Java)!

接下来我必须通过 HTTPS 流 2-way 验证我的 ssh 会话:

我在找

  1. 一小段java代码将SSH封装成HTTPS
  2. 2路HTTPS认证
  3. APACHE 配置

可能的解决方案:

1) HTTPS 隧道

  1. JHTTPTunnel,但它基于 J2ME 并且不支持 SSL(另请参见Java Http TunnelingIs there an Java library for sent binary data over HTTP, HTTP Tunneling?
  2. JOD,但它不支持 SSL

3)Apache配置

  1. 也许这个配置有效,但我必须尝试
0 投票
1 回答
195 浏览

google-chrome - 触发了超过 443 个呼叫的隧道

我正在使用 Fiddler 监控我的网络呼叫。当我尝试打开 google chrome 时,触发了四个“Tunnel to www.google.com:443”调用。请,我想知道,为什么有不止一个网络调用用于 http 连接。此外,对于我通过网络在特定应用程序上执行的每个操作,我们是否需要一个 http 连接隧道到 :443 请求。

0 投票
0 回答
261 浏览

macos - OS X / Chrome - 通过 HTTP 代理隧道传输所有流量?

我写了一个代理服务器监听端口 80,它可以通过访问被阻止的网站绕过防火墙。可以这样访问:http://proxy-server/?url=http://blockedwebsite.com

如何通过将所有对http://blockedwebsite.com的请求转发到http://proxy-server/?url=http://blockedwebsite.com而不在 URL 中实际显示代理服务器来自动执行此操作?

我正在寻找一种适用于 OS X(所有流量)和 Google Chrome(仅限 http / https)的解决方案。

谢谢!

0 投票
0 回答
212 浏览

php - Android 应用程序中的 HTTP 隧道

在我的 android 应用程序中,我通过 HTTP 调用 PHP Web API,但任何人都可以通过嗅探器/代理查看 HTTP 流量。

所以我想通过android创建HTTP隧道来调用我的PHP Web API。

我尝试在 Google 上搜索一些示例代码以在 android 编程中实现 HTTP 隧道。

0 投票
0 回答
414 浏览

signalr - SignalR 和隧道

有我的配置:

我使用来自 Sebastien Lebreton 的 bdtunnel ( https://github.com/sailro/Bdtunnel )

它工作正常。

问题是:是否可以通过端口 8080 上的同一隧道转发 SignalR 连接?