VxTerm SSH隧道
一、SSH隧道
SSH服务端支持的隧道功能:
1、正向:Direct TCP/IP 方式
在本地监听一个端口,本地网络访问此端口时,VxTerm将本地访问请求通过SSH隧道将本地请求与服务器端指定的网络资源建立关联,达到访问本地的端口时可以访问到服务器端的网络资源的目的。
2、反向:Forward方式
在服务器端监听一个端口,VxTerm将本地网络中的某一资源与该端口建立关联,达到服务器端的网络访问该监听端口时,可以通过VxTerm与服务器建立的SSH隧道访问到本地资源的目的。
二、VxTerm可以建立的代理功能:
1、反向代理:一般可以称为内网穿透。
可以达到服务器端的设备访问本地网络的目的。
比如,本地网络在没有互联网静态IP和互联网IP的时候,可以将本地的web服务端口映射到服务器端,互联网用户访问服务器端的IP端口即可以访问到本地发布的WEB服务。
2、正向代理:分两种方式
2.1 在本地监听特定端口,建立与服务器端特定资源的一对一的关联。此方式与反向代理的方式基本一致。
2.2 Sock5方式。
当前的VxTerm V15.x版本仅支持1和2.1两种方式,2.2中的Sock5方式将在以后的版本中实现。
三、使用场景:
1、突破网络限制,本端电脑或手机访问服务端可以访问的资源:
本端电脑A可以访问服务端S:SSH端口,S可以访问http://url.com,本端电脑A、电脑B、手机都无法访问http://url.com,使用正向隧道就可以实现:
1.1 设置正向隧道:
本机监听IP:A的IP
本机监听端口:8081
远程目标地址:url.com
远程目标端口:80
1.2 如果url.com需要域名才能访问,则需要在本端设置hosts,做域名重指向 A机的IP url.com,参考网络搜索。
启动隧道后,本端的A、B 就可以通过 http://url.com:8081或http://A机的IP:8081直接访问到http://url.com。
2、端口映射,俗称内网穿透,本端没有固定静态IP,但可以发布本端的网络资源,让互联网可以访问:
本端电脑A可以访问服务端S:SSH,S有互联网静态IP S_IP,本端电脑A、B都没有互联网静态地址,需要发布 http://B,让互联网的用户都可以访问
2.1 设置反向隧道:
服务器监听IP:S_IP
服务器监听端口:80或8081等
本地目标地址:B的内网地址
本地目标端口:80
2.2 启动隧道成功后,所有可以访问服务器端 S_IP 的用户,都可以通过 http://S_IP(:8081),就可以访问到 http://B
3、异地两端的网络互访:A和B分别在两个不同的地方,无法直接访问,但都可以通过互联网访问S:SSH。
可以实现A和B的互访。
A需要被B访问的资源是 A:1234端口,或者是A1:1234端口
3.1 A设置反向隧道
服务器监听IP:S_IP
服务器监听端口:1234
本地目标地址:A或A1的内网地址
本地目标端口:1234
此隧道启动后,所有可以访问到S_IP:1234的机子就可以直接访问到A:1234,相当于是端口映射(内网穿透)。如果不希望其它电脑访问,必须要在S服务端设置相应的安全策略,阻止别的电脑访问到S_IP:1234。
3.2 B设置正向隧道:
本机监听IP:B的IP
本机监听端口:1234
远程目标地址:S_IP
远程目标端口:1234
由于B也无法访问到S_IP:1234,但可以访问到S_IP:SSH,所以需要设置此隧道。
如果B可以直接访问到S_IP:1234,则可以不用启动这条隧道。
3.3 两边都启动隧道:
B访问B自己的IP:1234,就可以访问到A或A1:1234
反之一样。
更多的的实用场景,请关注更新。
四、操作说明:
界面操作方式:

正向隧道:

当此条隧道启动成功后,在本端自己的电脑上 telnet 127.0.0.1 25423,就可以访问到 对端的 192.168.0.11:25423
反向隧道:

当此条隧道启动成功后,在服务端访问 telnet 192.168.0.11 25423,就可以访问到运行VxTerm程序本端的网络环境中的 192.168.1.254:23端口
验证:
在两条隧道启动之前,telnet 127.0.0.1 25423

在隧道启动成功后:

能正常访问到192.168.1.254:23 的端口,表示两条隧道都启动成功。
脚本操作方式:
VxTerm V15.0使用内置的VxMatScript脚本方式实现隧道的建立、启动、停止、修改等操作。

3.1、 TunnelList ALL|Run|Stop|ID
列出当前配置中的所有隧道。
>>标识================:ZPF01 >>类型 :(F)orward >>描述 :反向代理:将本地的192.168.1.254:23映射到服务端的25423 >>分类名 :测试 >>远程监听IP : >>远程监听端口 :25423 >>本地目标IP :192.168.1.254 >>本地目标端口 :23 >>正在运行 :否 >>最后消息 >>标识================:ZPF022 >>类型 :(F)orward >>描述 :反向代理:将本地的192.168.1.6:5000映射到服务端的5000 >>分类名 :测试 >>远程监听IP : >>远程监听端口 :5000 >>本地目标IP :192.168.1.6 >>本地目标端口 :5000 >>正在运行 :否 >>最后消息 >>标识================:ZPF03 >>类型 :(D)irect >>描述 :正向代理:将服务端的192.168.0.33:5555映射到本地5555 >>分类名 :测试 >>本地监听IP : >>本地监听端口 :0 >>远程目标IP :192.168.0.33 >>远程目标端口 :5555 >>正在运行 :否 >>最后消息
当隧道已启动正在运行的时候,正在运行为是,最后消息显示该隧道在启动运行过程中收到的一些关键的信息。
3.2、 TunnelAdd ID标识
创建一个隧道。
3.3、 TunnelEdit ID标识, 名称 = 值
修改一个隧道的配置。有效的名称和值如下:
| 序号 | 名称 | 值 |
| 1 | 标识 | 字符串,不要有逗号等特殊符号,系统不进行校验,如果含有这些特殊符号,可能会造成无法正常使用。 |
| 2 | 类型 | 1、(F)orward 反向代理 2、(D)irect 正向代理 3、(S)ock5 未开放。 |
| 3 | 分类名 | 字符串,用于分类分组管理。 |
| 4 | 描述 | 字符串,描述此隧道的功能等 |
| 5 | 本地监听IP 、 Local_ListenIP | 用于正向代理,可为空,则表示监听本地所有IP |
| 6 | 本地监听端口、Local_ListenPort | 用于正向代理,默认为0。请指定有效值1-65535,否则无法正常启动。 |
| 7 | 远程目标IP、Remote_DestIP | 用于正向代理 |
| 8 | 远程目标端口、Remote_DestPort | 用于正向代理 |
| 9 | 本地目标IP、Local_DestIP | 用于反向代理 |
| 10 | 本地目标端口、Local_DestPort | 用于反向代理 |
| 11 | 远程监听IP、Remote_ListenIP | 用于反向代理 |
| 12 | 远程监听端口、Remote_ListenPort | 用于反向代理 |
每条隧道一般由 监听IP:监听端口,目标IP:目标端口组成。
正向代理为本地监听,访问指定的远程目标IP和端口;
反向代理为远程监听,访问指定的本地目标IP和端口。
当隧道已启动时,不允许修改。
3.4、 TunnelDel ID标识
删除指定的隧道。
当隧道已启动时,不允许删除
3.5、 TunnelStart ID标识
启动一条隧道。
隧道启动后,请用 TunnelList 查看其运行状态。
当反向代理中的远程监听端口为0时,隧道可以多次启动,每次启动时服务器会自动分配一个可用的端口。最后分配的端口请用TunnelList 查看。
3.6、 TunnelStop ID标识
停止隧道。
四、测试:
运行 TunnelStart zpf01
成功后,可以在服务端用 netstat -ant | grep 25423 看到,服务器已监听。

在服务器端中访问 telnet 127.0.0.1 25423

可以正常访问到本地的 192.168.1.254:23的资源。
转载请注明 : 文章转载自不了阁-飞哥 blog.forbs.cn
本站文章除注明转载/出处外,均为本站原创或翻译。若要转载请务必注明出处,尊重他人劳动成果共创和谐网络环境。




