加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

linux中 SSH Tunnel的简单使用示例

发布时间:2023-07-17 13:28:02 所属栏目:Linux 来源:
导读:一些同仁一直不能理解ssh tunnel是干嘛的,其实很简单,tunnel就是隧道,下面我们来看一个SSH Tunnel的简单使用例子.背景介绍:目前,线上有好几个数据中心,不同数据中心之间的速度差异还是比较大的,我们一般选择一个最优

一些同仁一直不能理解ssh tunnel是干嘛的,其实很简单,tunnel就是隧道,下面我们来看一个SSH Tunnel的简单使用例子.

背景介绍:目前,线上有好几个数据中心,不同数据中心之间的速度差异还是比较大的,我们一般选择一个最优的数据中心作为VPN的接入点.

但有些时候直接通过VPN访问其它数据中心的服务会很慢,于是就临时通过SSH Tunnel来解决.

应用场景:直接访问服务器idc1-server1很快,但是直接访问idc2-server2很慢,而idc1-server1到idc2-server2却很快.

于是,我们打算用idc1-server1服务器作为跳板来连接idc2-server2.

ssh -i /path/to/sshkey -l username -f -N -T -L 8088:idc2-server2:80 idc1-server1

通过浏览器直接访问http://localhost:8088就相当于访问了http://idc2-server2

关键参数介绍:

-L 8088:idc2-server2:80

将本地的某个端口转发到远端指定机器的指定端口,工作原理是:本地机器上分配了一个socket侦听port端口,一旦这个端口上有了连接,该连接就经过安全隧道(idc1-server1)转发出去,即.

localhost:8088 -> (idc1-server1) -> idc2-server2:80; 

ssh -i /path/to/sshkey -l username -f -N -T -L 2022:idc2-server2:22 idc1-server1 

通过scp可以将文件通过idc1-server1中转后传送到idc2-server2中:

scp -i /path/to/sshkey -P 2022 upload_file_name.tgz dong@localhost:/path/to/upload/ 

假设位于公网的客户端是10.66.0.78(当然事实上这是一个私网IP),公司有一个暴露在公网的主机,公网IP是10.66.0.190(当然事实上这还是一个私网IP),公司私网的IP是192.168.200.20.

我在公司真正要登录的主机是192.168.200.100,那么我可以做如下操作.

方法1:在 10.66.0.190上执行:

[root@dhcp-0-190 ~]# ssh -Nf -L 10.66.0.190:10000:localhost:22 192.168.200.100 --Cuoxin.com

方法2:a. 在10.66.0.190上修改配置文件/etc/ssh/sshd_config

开启:GatewayPorts yes,然后重新载入sshd配置:

[root@dhcp-0-190 ~]# service sshd reload 

Reloading sshd:[  OK  ] 

b. 然后在192.168.200.100上执行

[root@localhost ~]# ssh -Nf -R 10.66.0.190:10000:192.168.200.100:22 192.168.200.20 

然后我们就可以在公网通过访问10.66.0.190:10000端口来连接192.168.200.100的22端口了.

安全因素:大家看我上面其中2条命令.

# ssh -Nf -L 10000:localhost:80 209.132.177.100 

# ssh -Nf -L 10.66.0.190:10000:localhost:22 192.168.200.100 

再看下ssh tunnel用例:

-L [bind_address:]port:host:hostport 

bind_address默认是127.0.0.1 

格式是:[要打开的监听IP:]要打开的监听端口:要映射到的监听IP:要隐射到的监听端口.

为什么有时候用locahost,有时候用10.66.0.190?如果说ssh tunnel打开的端口只需要给本机用到,那么就让端口只在回环接口监听,如果需要让别的机器共享ssh tunnel打开的端口,则需要让ssh在可访问的IP上打开端口了.

总之处处小心,设好安全权限,防止入侵.

Ssh tunnel通常能实现3种功能:

1) 加密网络传输

2) 绕过防火墙

3) 让位于广域网的机器连接到局域网内的机器

(编辑:银川站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章