如何通过SSH连接远程主机上的不同QEMU实例?
如何通过SSH连接远程主机上的不同QEMU实例?
咱们先理清问题出在哪:你设置的QEMU端口转发hostfwd=tcp::4444-:22,核心作用是把远程主机(170.170.70.70)的4444端口,转发到对应QEMU实例的22端口——但你之前的SSH命令搞混了目标地址和端口的对应关系,所以才会被拒绝连接。
方法一:从本地笔记本直接连接QEMU实例
不需要先SSH到远程主机,直接在本地终端执行以下命令即可:
- 连接第一个QEMU实例:
ssh root@170.170.70.70 -p 4444 - 连接第二个QEMU实例:
ssh root@170.170.70.70 -p 5555
原理很直观:当你访问远程主机的4444/5555端口时,QEMU会自动把流量转发到对应虚拟机的22端口(SSH服务默认端口)。
方法二:先SSH到远程主机,再连接QEMU实例
如果你已经登录到远程主机(170.170.70.70)上了,要连接QEMU实例的话,得用远程主机的回环地址(localhost/127.0.0.1)搭配转发端口:
- 连接第一个QEMU实例:
ssh root@127.0.0.1 -p 4444 - 连接第二个QEMU实例:
ssh root@127.0.0.1 -p 5555
为什么你之前的命令无法生效?
你之前尝试的ssh root@192.168.7.2 -p 4444存在两个关键问题:
192.168.7.2是QEMU实例的内部IP,但4444端口是绑定在远程主机上的,并非QEMU实例的端口——QEMU实例里只有22端口开启了SSH服务,4444端口在虚拟机内部根本没有对外开放,自然会被拒绝连接。- 就算你想直接访问QEMU实例的内部IP,也需要确保远程主机和QEMU实例的tap网络配置正确(比如路由规则、防火墙放行),但这完全没必要,因为你已经配置了端口转发,直接用转发端口是更简单可靠的方式。
从你贴出的netstat输出能看到,远程主机的4444、5555端口确实被QEMU监听着,说明转发配置本身是没问题的,只要用对命令就能顺利连上啦。
备注:内容来源于stack exchange,提问作者JaSON
相关产品推荐
相关产品推荐

