公司的网络该封的都封了, 今天看到有这么个软件, 虽然没有用过, 觉得不一定哪天就用了, 所以收藏到这里.
基本概念不多解释了,直入主题。GNU HTTP Tunnel (http://www.nocrew.org/software/httptunnel.html)是一个开源的http-tunnel项目,包括了tunnel server(hts命令)和tunnel client(htc命令),有(x)nix和windows版本。我们就用它来建立自己的tunnel。
1。静态tunnel。
http-tunnel是一个完全透明的通道,直接将你的连接forward给目标服务端口,因此当你连接tunnel的本地侦听端口时,就相当于直接连接到目标服务端口。例如你要建立一条可以访问外部POP3服务器的隧道,可以建立如下连接:
htc ------------> http proxy ------------------------> hts ------------------------------> POP3 serve
(localhost:8888) (proxyhost:3128) (tunnelserver:80) (pop3server:110)
在你自己的机器上运行htc,外部充当tunnel server的机器上的80端口运行hts,htc将数据打包成http请求,通过proxy连接到hts,hts解包后将连接forward给POP3服务器。命令如下:
在tunnel server机器上:
hts --forward-port pop3server:110 80
(将pop3server替换成实际的IP)
在本地机器上:
htc --forward-port 8888 --proxy proxyhost:3128 tunnelserver:80
(将proxyhost和tunnelserver替换成实际的IP)
通过这样的配置,你可以用Outlook或Foxmail连接本机的8888端口,就相当于直接连接到POP3服务器了。
2。动态的tunnel。
上面建立了一条可以访问POP3服务的隧道,但缺点是只能访问某一个指定的POP3服务器,要访问其他的服务器还得按同样的方法再建立一条隧道,很不方 便。既然hts可以将连接forward给POP3服务器,那让它forward给一个SOCKS5服务,不是就可以实现动态的tunnel,可以连接任 意服务了吗?yeah!没错!我们建立这样的连接:
htc ------------> http proxy ------------------------> hts ------------------------------> SOCKS5 serve
(localhost:8888) (proxyhost:3128) (tunnelserver:80) (socks5server:1080)
命令就不说了,照第一点改一下就行。这样就相当于在localhost:8888运行了一个SOCKS5服务,设置一下你的网络程序(Outlook,NetAnt,FlashGet,QQ......),让他们通过SOCK5访问网络,就OK了。
3。利用http proxy的CONNECT支持。
大多数http proxy支持CONNECT命令,但一般只支持CONNECT到外部服务器的443(https)端口。这是为了允许访问外部的https服务。由于 porxy对于CONNECT的连接是直接转发,不做任何分析处理或缓存,所以利用CONNECT可以获得比较快的速度。
由于hts和htc不支持CONNECT连接,我们可以使用另一个专门支持CONNECT的程序DesProxy http://desproxy.sourceforge.net
来建立一个tunnel。由于使用CONNECT建立了直接的TCP连接,不需要将数据按http格式打包和解包,所以连tunnel server也不需要了,只需要在你原来运行hts机器上运行一个SOCKS5就行了,连接如下:
desproxy -------------> http proxy ----------------------> SOCKS5 server
(localhost:8888) (proxyhost:3128) (tunnelserver:443)
desproxy命令的用法:
desproxy remote_host remote_port proxy_host proxy_port local_port
在这里remot_host,remote_port就是tunnelserver:443,proxy_host,proxy_port是porxyhost:3128,local_port就是8888。
注意必须把SOCKS5运行在443端口,如果运行在其他端口的话,CONNECT请求会被http proxy拒绝。同样,我们在localhost:8888得到了一个可以访问外部的SOCK5服务。
4。最简单,最安全而且快速的方式:利用SSH + CONNECT。
实际上SSH提供了SOCKS5的功能,利用ssh客户端或PuTTY可以在本地建立一个SOCKS5服务,而且PuTTY也直接支持http proxy,最大的好处是ssh的数据连接是加密的,保证了数据的安全。使用ssh的连接如下:
PuTTY(或plink) ------------> http proxy ---------------------> ssh server
(localhost:8888) (proxyhost:3128) (tunnelserver:443->22)
首先我们要让ssh server在443端口侦听,ssh默认端口是22,我们可以修改ssh的配置,或用iptables将443端口重定向到22端口,服务端的配置就 OK了。然后在PuTTY建立一个new session,填上ssh服务器的ip和port;在"Connection->Proxy"页,填上http proxy的ip和port;在"SSH -> Tunnels"页,"Source port"填本地的端口,在这里我们用8888",Destination"选"Dynamic",按"Add"将这个forward port加上,就OK了。配置完成后,用PuTTY登陆上ssh,用netstat -an可以看到PuTTY已经在localhost:8888侦听了,这是一个SOCKS5服务,下面改怎么用,就不用我罗嗦了吧:-)。另外在 "SSH"页,可以根据要求选择"Protocol options"。保存session后,也可以用命令行的plink命令来利用这个session:
plink -load session_name (session_name就是session保存的名称)
登陆后效果也一样。
http://javasky.172baby.com/posts/123518.html
相关推荐
BPDU Tunnel技术能够支持多种二层协议报文的透传,包括但不限于以下几种: - **CDP(Cisco Discovery Protocol)**:思科发现协议,用于发现网络中相邻设备的信息。 - **DLDP(Device Link Detection Protocol)**...
GRE Tunnel 是一种有效的网络通信技术,尤其在与IPSec结合使用时,可以提供强大的数据加密和身份认证功能。对于那些希望在IP网络中传输非IP协议的企业来说,GRE Tunnel over IPSec是一个理想的解决方案。通过合理的...
在本实验中,我们将通过PacketTracer这个网络模拟和设计工具,了解和学习如何设置和使用GRE隧道技术,以及结合IPSec进行安全通信。 **GRE隧道**的主要目的是将一种网络协议的数据包封装在另一种协议中,使其可以在...
- **BPDU Tunnel 实现方式**:为了实现BPDU报文的透明传输,需要满足几个条件:保证同一用户网络的所有分支都能接收到自身的BPDU报文;运营商网络设备不应处理用户网络的BPDU报文;不同用户网络的BPDU报文需要隔离。...
标题 "tunnel_pascal_assembler_" 暗示我们即将探讨的是使用Pascal汇编器实现的某种隧道效应,可能是与计算机图形学或者物理模拟相关的技术。在编程领域,"tunnel effect"通常指的是在3D图形中创建的透视效果,使...
创建Tunnel分为以下几个步骤: - **Tunnel属性设置**:根据规划设置Tunnel的名称、保护Tunnel名称、协议类型、业务方向、保护类型和倒换模式等。 - **节点设置**:在物理拓扑图上指定Tunnel的入节点、出节点和...
在`mp_websocket_tunnel`项目中,可能就使用了这样的库来处理WebSocket连接。 2. **HTTP服务器**:为了与WebSocket服务配合,你需要一个HTTP服务器来处理初始的WebSocket升级请求。Golang的标准库"net/http"可以...
1. **读取数据**:使用Python的` vtk `库加载`box.vtp`和`tunnel.vtp`文件,获取其几何和属性信息。 2. **布尔操作**:应用VTK的布尔操作函数,如`Intersection`或`Difference`,将隧道模型与盒状模型结合,以模拟...
这个功能强大的工具允许用户通过Web服务器来创建TCP隧道,使得原本可能受限于防火墙的服务能够被公开访问,从而提供了一种灵活且实用的解决方案来绕过网络障碍。 【开源软件】标签表明,mod_tunnel遵循开源原则,源...
在这个系统中,"OCP"代表最优控制问题(Optimal Control Problem),而"气泡隧道方法"是一种在复杂环境中确保机器人安全导航的技术。 在路径规划领域,最优控制问题通常涉及找到一条从起点到终点的路径,这条路径...
这份资料集合包含了十几套试卷,是针对该课程的学习和备考的重要资源。 首先,我们要理解算法设计的核心概念。算法是一系列明确的指令,用于解决特定问题或执行特定任务。在设计算法时,我们需要考虑其效率,包括...
NGN网络最大的好处就是能为用户提供丰富的业务,但是像H.323、SIP、MGCP、H....本文主要探讨了NGN软终端和IAD的NAT问题,介绍了ALG、MidCom、STUN、协议修改、Proxy等几种私网穿越方法,并分析了方案的可行性和适用性
IES( Illuminating Engineering Society)是照明工程领域的权威机构,RP(Recommended Practice)是他们发布的一种标准或指南,用于提供专业实践建议。这个特定的RP222005文件很可能详细阐述了隧道照明的设计、实施...
JDBC驱动主要有四种类型:类型1、类型2、类型3和类型4。其中,类型4(如Oracle JDBC Thin Driver, MySQL Connector/J)是最常见且推荐使用的,因为它们是纯Java实现,无需中间件即可直接与数据库通信。 以下是一些...
PostgreSQL(通常简称为Postgres)是一种先进的开源关系数据库管理系统(RDBMS),它拥有超过30年的持续开发和完善的历程。它以其创新性、稳定性和高性能而闻名,支持复杂的SQL查询、外键、触发器、视图和事务完整性...
GRE over IPSec 是一种保护在不安全网络中传输的数据包的技术,通过将 GRE Tunnel 和 IPSec 结合使用,来实现数据包的加密和解密。GRE over IPSec 的配置需要注意 IPSec Peer 的配置、GRE Tunnel 的建立、OSPF 的...
综上所述,这篇文章的研究为我们提供了理解透水压力隧洞中水力和应力相互作用的深刻洞见,特别是在隧洞结构设计、材料属性的考虑,以及如何使用计算机模拟来分析和预测隧洞的实际行为。这项研究不仅对于隧洞工程师和...
在现代移动设备开发和管理中,SSH(Secure Shell)是一种广泛使用的网络协议,用于安全地远程登录到服务器进行管理和控制。尤其对于iOS设备,如iPhone,由于其封闭的操作系统环境,通过SSH连接可以方便地进行诊断、...
(2)终端级解决方案 用户使用一台客户端设备排他性选择连接内部网络和外部网络, 主要类型可分为以下几种。 (1)双主板,双硬盘型:通过设置两套独立计算机的设备实现, 使用时,通过客户端开关分别选择两套...
RTSP协议通常与以下几种协议协同工作: 1. **实时传输协议(RTP)**:用于传输多媒体数据。 2. **实时传输控制协议(RTCP)**:用于监控数据传输的质量并提供反馈。 3. **资源预留协议(RSVP)**:用于网络资源预留,确保...