通过 virsh 在启动 qemu 虚拟机,可以通过 VNC 访问虚拟机,但无法通过设置的 SSH 的外部映射端口登录。首先在宿主机上查看虚拟机(csv\tpm\name)的网络配置,可以看到端口映射情况和当前网络的网段(10.0.10.0/24)。
$ virsh edit csv_tpm_name
在配置中包含访问虚拟机的VNC端口(5995),通过该端口可以使用vncviewer软件设置访问该虚拟机。
使用 VNC 通过 5995 端口登录虚拟机,进一步使用ifconfig
命令查看虚拟机内部的网卡配置,发现存在 ens4 和 ens5 两张网卡。其中 ens4 网卡绑定了 192.168.122.21 地址, ens5 网卡绑定了 10.0.10.15 地址。根据之前在宿主机上查看虚拟机配置情况,知道 10.0.10.x 网段是虚拟机内部的网段,因此正常情况下该虚拟机的网关应该是绑定了 10.0.10.15 地址的 ens5 网卡。而网关应当是 10.0.10.0/24 网段内的一个地址,一般是前几个 IP 地址,可以逐个通过ping
命令尝试。在这里我尝试到 10.0.10.2 时显示可以 ping 通,因此可以大概率假定该 IP 地址为网关地址。
继续查看当前路由表,发现路由表设置的默认网关走 ens4,但根据上面的判断,正确的网关应该绑定在 ens5 网卡上,至此确定问题。
相应的解决方案就是修改路由表,重新定向默认网关。这里先删除当前默认的 ‘default’ 路由,然后采用dhclient
命令通过指定网卡直接生成新的默认路由表。
$ route del default $ dhclient ens5
经过上述操作后,便可正常通过 SSH 访问虚拟机了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构