VxTerm SSH隧道

郑鹏飞3年前VxTerm1821

一、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

    反之一样。

    更多的的实用场景,请关注更新。

四、操作说明:

界面操作方式:

image.png

正向隧道:

image.png

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


反向隧道:

image.png

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


验证:

在两条隧道启动之前,telnet 127.0.0.1 25423

image.png

在隧道启动成功后:

image.png

能正常访问到192.168.1.254:23 的端口,表示两条隧道都启动成功。


脚本操作方式:

    VxTerm V15.0使用内置的VxMatScript脚本方式实现隧道的建立、启动、停止、修改等操作。

image.png

    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 看到,服务器已监听。

image.png

在服务器端中访问 telnet 127.0.0.1 25423

image.png

可以正常访问到本地的 192.168.1.254:23的资源。



我是郑鹏飞。 如果您觉得我的文章对您有帮助,可以点击站点上的 关于站点/支持和帮助
转载请注明 : 文章转载自不了阁-飞哥 blog.forbs.cn
本站文章除注明转载/出处外,均为本站原创或翻译。若要转载请务必注明出处,尊重他人劳动成果共创和谐网络环境。

相关文章

VxTerm SSH工具的强大之处在于什么?

VxTerm SSH工具的强大之处在于什么?

VxTerm的每一个特性单拎出来,都是极致的!所有这些特性聚集于一身,世界也就VxTerm可以。1、程序大小才7M,运行时使用的内存才10M左右上下浮动,即使是在多窗口多会话情况下;2、完全国产全中文...

VxTerm,系统运维SSH、Telnet、MUD工具软件正式发布!

VxTerm,系统运维SSH、Telnet、MUD工具软件正式发布!

郑鹏飞:2023-9-2VxTerm已正式更新到C++语言版本,新版本的信息链接为:https://blog.forbs.cn/post/111.html从今天起,原来的.net版本正式停用,最终的版...

VxTerm SSH/SFTP工具是不是唯一一个即使是在最极端的网络环境之下,都能保证把大文件和目录都能最终传输完成的?

VxTerm SSH/SFTP工具是不是唯一一个即使是在最极端的网络环境之下,都能保证把大文件和目录都能最终传输完成的?

VxTerm的SFTP功能模块能够实现:1、批量/多任务同时传输文件和文件夹2、支持网络断开、传输错误后重连重传、续传测试在最极端的网络环境下,最终都能把大文件(超过5G甚至更多)、多文件的目录传输完...

VxTerm有一个使用细节需要处理一下

VxTerm有一个使用细节需要处理一下

一个会话在发起连接时,如果需要弹出了用户名或密码的输入框,并且在输入后,如果验证通不过,此时再在会话中发起重连时,因为用户名或密码已经在本次会话中输入,将不会再次弹出输入框,需要在会话选项中重新输入。...

VxTerm竟然实现了SSH协议的集成!

VxTerm竟然实现了SSH协议的集成!

虽然是用了Renci.SSH.NET的组件,但毕竟是实现了!至少也是知道它是如何运作的,以后如果想自己实现,也是有可能的!...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。