使用ssh隧道实现不能互通的两台虚拟机相互拷贝文件

目录

1、问题描述

2、环境信息

3、解决思路

4、操作

4.1建立本地转发隧道

4.2 使用隧道进行scp

5、验证

6、提醒


1、问题描述

我的台式机通过不同的vpn管理两台虚拟机(A和B),虚拟机A、B之间不能互通,我想用ssh隧道,借助中间机(我的台式机)实现AB之间互通,相互拷贝文件。  

  

2、环境信息

拨vpn后登录虚拟机A,看到如下信息:

Connecting to 10.202.1.126:7009...
Connection established.
To escape to local shell, press Ctrl+Alt+].

Last login: Tue Jul 11 11:15:54 2023 from 10.110.110.24

 我们得知:

台式机IP(拨VPN后连接虚拟机A的IP):10.110.110.24

虚拟机A的IP和ssh端口:10.202.1.126:7009

很容易也可能得到虚拟机B的IP和ssh端口:192.168.40.10:22

3、解决思路

在台式机上建立一个到B的本地转发隧道,如使用端口9998连B的ssh端口22,这样A访问台式机的9998端口,就直连到B的ssh端口。

4、操作

4.1建立本地转发隧道

废话不说,上操作:

在台式机cmd命令行下输入以下ssh命令,建立到B的本地转发隧道。

ssh -f -N -L 10.110.110.24:9998:192.168.40.10:22 [email protected]

C:\Users\Administrator>ssh -f -N -L 10.110.110.24:9998:192.168.40.10:22 [email protected]

[email protected]'s password:

敲回车后,需要输入虚拟机B的登录密码进行隧道建立认证。

这时候可以看一下台式机的本地监听端口:

C:\Users\Administrator>netstat -an|findstr 9998
  TCP    10.110.110.24:9998     0.0.0.0:0              LISTENING

4.2 使用隧道进行scp

在虚拟机A上如下操作:

[root@node1 tmp]# scp -P 9998 /tmp/999.txt [email protected]:/tmp

Are you sure you want to continue connecting (yes/no)? yes
[email protected]'s password: 
999.txt                                     100%    4     0.7KB/s   00:00    
[root@node1 tmp]# 

说明:使用scp,拷贝文件/tmp/999.txt到台式机10.110.110.24:9998的/tmp目录下。

因为台式机做了隧道的本地转发,10.110.110.24:9998已经和虚拟机B 192.168.40.10:22形成了隧道,所以往10.110.110.24:9998拷贝,就直接到到了虚拟机B的ssh端口,这里根据提示,要输入虚拟机B的用户名密码进行认证。

5、验证

登陆虚拟机B,验证奇迹的时刻:

root@others tmp]# ip a |grep 192
inet 192.168.40.10/24 brd 192.168.40.255 scope global noprefixroute ens33
[root@others tmp]# ll /tmp/999.txt 
-rw-r--r-- 1 root root 4 Jul 13 14:28 /tmp/999.txt

可以看到文件999.txt已经从之前不能互通的虚拟机A拷贝过来了。

6、提醒

建立隧道的时候,要指定台式机的IP:

ssh -f -N -L 10.110.110.24:9998:192.168.40.10:22 [email protected]

否则会变成这样:

ssh -f -N -L 9988:192.168.40.10:22 [email protected]

C:\Users\Administrator>netstat -an|findstr 9988
  TCP    127.0.0.1:9988         0.0.0.0:0          LISTENING
  TCP    [::1]:9988                  [::]:0                 LISTENING

这样台式机的9988端口只在回环地址127.0.0.1监听,虚拟机A不能连上。

文中用到ssh隧道的知识,如果读者有疑问,可以留言一起探讨。

猜你喜欢

转载自blog.csdn.net/aligeter/article/details/131702035