V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
fyooo
V2EX  ›  程序员

老哥们知道怎么远程 ssh 到 KVM 的 guest 系统吗?

  •  
  •   fyooo · 2023-01-15 09:41:57 +08:00 · 2497 次点击
    这是一个创建于 678 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近要初始化一个服务器,配置比较高,想装 KVM ,然后切成几个 Linux 。

    发现网上的教程多数都是图形界面的,我手上的是 server 系统。

    然后看到有成功安装虚拟机的,也是用 virsh console 登录的,不知道能不能直接在本地 pc 直接 ssh 到目标虚拟机?

    服务器的宿主系统是 Ubuntu ,谢谢大家

    13 条回复    2023-01-16 16:16:17 +08:00
    zed1018
        1
    zed1018  
       2023-01-15 09:46:55 +08:00   ❤️ 1
    取决于你虚拟机网络设置,没用过 kvm ,但是大体大差不差。如果是 nat 的,在 kvm 做 port forward 给虚拟机;如果是桥接,理论上直接用 guest 拉到的 ip 访问因为 guest 跟 host 一个网。如果是 only-host ,应该也是转发吧。
    Liang
        2
    Liang  
       2023-01-15 10:10:48 +08:00   ❤️ 1
    1.在 guest 上做 frp
    2.linux 的图形模型转文本模式( tty?)
    3.使用 virt-manager
    4.使用远程控制软件(如:向日葵)
    lyonbrown4ddd
        3
    lyonbrown4ddd  
       2023-01-15 10:13:51 +08:00   ❤️ 1
    感觉其实不用这么麻烦?你只要连到 kvm host guest 做桥接 host 当成 ssh 跳板机就好了嘛
    debuggerx
        4
    debuggerx  
       2023-01-15 10:15:07 +08:00 via Android   ❤️ 1
    端转发 kvm 的 22 端口到宿主机不就行了
    studyingss
        5
    studyingss  
       2023-01-15 10:21:43 +08:00 via Android   ❤️ 1
    用过 qemu/kvm ,启动指令里可以设置一个端口转发,把 sever guest 的 22 端口转发到 sever host 的某个端口,然后 ssh 连 host 上转发的端口就行了
    Owenjia
        6
    Owenjia  
       2023-01-15 10:26:32 +08:00   ❤️ 1
    主要取决于你的网络配置,如果是使用 libvirt 默认的 nat 网络( 192.168.122.0/24 网段),那可以使用:
    ssh -J user@host_addr user@guest_addr
    zhlxsh
        7
    zhlxsh  
       2023-01-15 14:27:13 +08:00 via iPhone   ❤️ 1
    第一个问题,搜到的教程都是图形界面?

    用谷歌搜,网上很多很多教程,注意下别太旧的文章就好了

    第二个问题,ssh 直接登陆虚机

    就想象成你在图形界面的系统装了个 vmware workstation ,怎么从其他电脑连上虚机?道理是相通的。
    1. 新建虚机的时候网络选择桥接
    2. 网络设置( iptable 防火墙设置)里面指定端口转发
    3. 通过 frp 等软件做端口转发,甚至可以从公网登陆
    4. 通过 ssh 代理,相当于跳板机转发
    5. 登上宿主机之后通过 virsh 的 console 登陆
    6. virsh 开 vnc
    等等等等

    总的来说就是看你的设置,具体你的需求,可能防火墙做转发配置简单一劳永逸,或者用 ssh 登陆的时候用代理一下。哪怕这些都不懂,ssh 做好免密登陆。登陆两次也不是不能用。
    catinsky
        8
    catinsky  
       2023-01-15 15:13:10 +08:00   ❤️ 1
    可以直接在本地 pc 直接 ssh 到目标虚拟机.
    先用 vnc 安装虚拟机,配置好网络。就可以跟服务器所在内网的其他机器一样,正常使用了。
    defunct9
        9
    defunct9  
       2023-01-15 18:22:35 +08:00   ❤️ 1
    都是用 ssh 去登录管理的,无论虚机还是实体机。除了要装 windows 的 kvm 系统。虚机生产也是一个脚本搞定,用 cloud-init
    neoblackcap
        10
    neoblackcap  
       2023-01-16 02:55:26 +08:00
    可以是可以的,但是需要网络设备支持。比如说你的设备的 IP 是通过外部网关分配的,那么网络通了自然就能直接连接
    lilogo
        11
    lilogo  
       2023-01-16 12:25:36 +08:00
    建议把虚拟机的网络用 bridge 类型,这样虚拟机就和主机在同一网络了,如果 LAN 再是 DHCP 的话那就更方便了
    songjiyuan
        12
    songjiyuan  
       2023-01-16 13:23:15 +08:00   ❤️ 1
    sudo iptables -I FORWARD -m state -d 192.168.122.0/24 --state NEW,RELATED,ESTABLISHED -j ACCEPT
    sudo iptables -t nat -I PREROUTING -p tcp --dport 13389 -j DNAT --to-destination 192.168.122.xxx:3389

    用 iptables 转发, 192.168.122.x 是虚拟机 nat 出来的网段
    fyooo
        13
    fyooo  
    OP
       2023-01-16 16:16:17 +08:00
    @Owenjia 小哥,你的答案可行哈,已经发送感谢了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2726 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 15:06 · PVG 23:06 · LAX 07:06 · JFK 10:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.