http tunnel 原理 及 穿透防火墙方法

转自 http://blog.csdn.net/blue_dream_/article/details/1905697

 http tunnel 原理 及 穿透防火墙方法-1

tunnel 很多文章解释为 "隧道", "通道".

这里所谓的 tunnel 是指一种绕过防火墙端口屏蔽的通讯方式, 可以有效地解决防火墙对端口的屏蔽作用.

原理:
防火墙两端的数据包封装在防火墙所允许通过的数据包类型或是端口上,然后穿过防火墙与对端通讯,当封装的数据包到达目的地时,再将数据包还原,并将还原后的数据包交送到相应的服务进程上。  

举例如下: 
A 主机系统在防火墙之后,受防火墙保护。防火墙配置的访问控制原则是只允许80端口的数据进出,屏蔽了其他的所有端口.  B主机系统在防火墙之外,是开放的。 现在假设需要从 A 系统Telnet到B系统上去,怎么办?
使用正常的Telnet肯定是不可能了,但我们知道可用的只有80端口,那么这个时候使用http Tunnel,就是一个好的办法。思路如下:  在A 机器上运行一个 Tunnel 的Client端,让它侦听本机的一个不被使用的任意指定端口(Port>1024 and port < 65535),如1234. 同时将来自1234端口上的数据导向到远端(B机)的80端口上(注意,是80端口,防火墙允许通过),然后在B机上运行一个tunnel Server,同样在80端口上监听,然后把 80 端口上接收到的数据 (数据由 tunnel client传来)转到本机的 Telnet 服务端口23,这样就ok了。

根据刚才的设置, 数据流程大概是:

[telnet.exe:任意端口] ---> [tunnel client.exe:1234] ---->[Firewall]---->[tunnel server.exe:80]---->[telnet Server.exe:23]

说明:
telnet.exe 和 tunnel client.exe 是在同一个机器上的.
tunnel server.exe 和 telnet Server.exe 是在同一台机器上的.

按照流程图: 
telnet.exe:           把发送的数据转向到 tunnel client.exe 的 1234 端口
tunnel client.exe     把数据发送给 tunnuel server.exe:80 ( 这次连接外网机器的80端口了, 防火墙应该是没有异议吧 ) 
Friewall              只允许 80 端口的数据进出.
tunnel server.exe     负责把接收到的数据转发给 telnet 的服务进程, 并可以接收 telnet 服务进程的数据
telnet Server.exe     把要发送的数据转给 tunnel server.exe,由它把数据经 80 端口发给 tunnel client.exe.


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值