建立SSH隧道以及远程桌面转发
来源:互联网 发布:mac appstore 更新不 编辑:程序博客网 时间:2024/05/29 17:28
ssh隧道功能,也就是端口转发功能非常好用,可以实现一些代理功能或者是穿透内网功能。在许多的内外网通信过程中都有着重要作用,尤其用于搭建大规模的数据中心管理平台,可以降低对于防火墙的依赖和改动,增强系统集成度。
ssh的端口转发(或者叫做隧道)命令分为三种:
本地:ssh -C -f -N -g -L listen_port:DST_Host:DST_port user@Tunnel_Host
远程:ssh -C -f -N -g -R listen_port:DST_Host:DST_port user@Tunnel_Host
动态:ssh -C -f -N -g -D listen_port user@Tunnel_Host
乍一看有点乱,仔细一分析就更蒙了-_-!
但是再深入的分析了搜索出来的相关的说明和别人的一些分享之后,终于搞清楚了使用方法。下面详细的看各个参数的用法。
-L port:host:hostport
将本地机(客户机)的某个端口转发到远端指定机器的指定端口.
ssh -C -f -N -g -L listen_port:DST_Host:DST_port user@Tunnel_Host
以这个为例,在本地监听一个端口listen_port,把listen_port的所有数据通过Tunnel_Host全部转发到DST_Host:DST_port上去。
-R port:host:hostport
将远程主机(服务器)的某个端口转发到本地端指定机器的指定端口.
ssh -C -f -N -g -R listen_port:DST_Host:DST_port user@Tunnel_Host
远程端口转发,在Tunnel_Host上面监听一个端口 listen_port,把listen_port的所有数据通过Tunnel_Host全部转发到DST_Host:DST_port上去。
DST_Host:DST_port是对于本机来说的,但却是通过Tunnel_Host来访问的,所以Tunnel_Host必须能访问到DST_Host:DST_port,才能进行转发。
举个例子:我在家里和公司各有一台电脑,均没有公网ip,不能互通,但是我有一个有公网ip的VPS,我的两台电脑都可以访问vps,但是vps不能访问我的两台电脑,然后通过公司电脑ssh到vps建立一条隧道,我在家里就可以访问公司里的电脑了。说起来罗嗦的不得了,但是做起来很容易:
在公司的电脑上:ssh -C -f -N -g -R 8080:127.0.0.1:80 root@vps的ip
然后在家里直接访问vps的8080端口,就相当与访问了公司电脑的80端口了,over。
当然80端口只是web端口,我们可以转发22或者3389端口,就可以远程控制公司的电脑了。
-D port
指定一个本地机器 “动态的’’ 应用程序端口转发. 这个动态的就简单了,
ssh -N -f -D 8000 登录名@我的vps的ip
就相当与在本机上开了一个sock代理,端口是8000,给浏览器挂上127.0.0.1:8000的代理,查一下本机ip,发现已经变成vps的ip了。
我的上面用的vps是ubuntu系统,有的时候做了远程端口转发之后发现不能从外面访问,需要修改一下vps上面ssh的一个配置,/etc/ssh/sshd_config,把这个改成yes,如果没这句就加上:
GatewayPorts yes
然后重启sshd。这个作用是把转发的端口绑定在0.0.0.0的接口上,让外部地址也可以访问。
还要注意一点就是listen_port必须是没有被使用的,不然会监听失败。
下面是几个辅助参数,看着乱的话可以忽略,用的时候按需加上就好了。
-C Enable compression.
压缩数据传输。
-f Fork into background after authentication.
后台认证用户/密码,通常和-N连用,不用登录到远程主机。
-N Do not execute a shell or command.
不执行脚本或命令,通常与-f连用。
-g Allow remote hosts to connect to forwarded ports.
在-L/-R/-D参数中,允许远程主机连接到建立的转发的端口,如果不加这个参数,只允许本地主机建立连接。
-p port Connect to this port. Server must be on the same port.
被登录的ssd服务器的sshd服务端口,省略就是默认的22端口。
同时两种方式还可以同时使用,用于内网多个机器的跳转和转发,例如建立RDP远程桌面连接。
Remote Desktop : 158.85.241.88(10.124.116.109的公网地址):45040 相当于访问 10.113.65.190 上面的远程桌面。
ssh -o StrictHostKeyChecking=no -i sshhub_id_rsa -N -fR 10.124.116.109:45040:10.113.82.141:3388 sshhub@10.124.116.109
ssh -o StrictHostKeyChecking=no -i sshhub_id_rsa -NfL 10.113.82.141:3388:10.113.65.190:3389 sshhub@10.113.82.141
- 建立SSH隧道以及远程桌面转发
- 建立SSH隧道(SSH端口转发)
- 建立SSH隧道(SSH端口转发)
- 建立SSH隧道(SSH端口转发)
- SSH 隧道的建立
- 建立 SSH 反向隧道
- ssh隧道建立
- SSH端口转发(隧道)
- SSH端口转发(隧道)
- SSH端口转发(隧道)
- 使用ssh建立隧道通信
- SSH隧道:远程操作与端口转发
- 【SSH隧道】端口转发,socket代理
- SSH隧道技术----端口转发,socket代理
- SSH隧道远程端口转发配置方法
- SSH隧道技术----端口转发,socket代理
- SSH隧道简洁介绍以及SSH隧道实际应用
- 使用plink以及ssh转发连接到局域网内的远程桌面或其它端口
- Min Stack
- Android性能优化--Inspact Code代码检查
- 文章标题
- c#实现txt转化为excel
- Markdown编辑器写博客
- 建立SSH隧道以及远程桌面转发
- js基础知识示例1----给网页的所有p元素添加onclick元素 fl ch2 28
- Java——线程——生产者——消费者问题
- 总结--插入排序
- jdk开发webservice例子
- 记录多渠道打包技术方案
- JavaScript 放大镜(商品放大)
- Unix 环境多线程与互斥量的编程实例
- Java子线程中的异常处理