我有带 IP 的专用服务器。我安装了 KVM,启动了虚拟机 (Centos),虚拟机具有互联网连接 (NAT),我安装并启动了 openssh 服务器 (22 端口)。我如何通过 ssh 连接到该 VM?是的,我可以通过 ssh 连接到主机 PC,然后从主机 PC 通过 ssh 连接到 VM。但我想直接连接到 VM,而不输入主机 PC 密码。我想我需要转发端口?如何以正确的方式做到这一点?PS 主机 PC 使用 ppp0
答案1
我认为,您需要在主机上设置网桥并为您的虚拟机分配 IP,以便通过 ssh 直接连接。以下是此链接上的示例设置(标题为“公共网桥”):http://www.linux-kvm.org/page/Networking
答案2
kvm -net 用户,hostfwd=::1234-:22
对此有很多好的答案,但我认为最简单的是使用qemu-system
内置的主机转发功能。
kvm -hda devonshire.img -net nic -net user,hostfwd=::1234-:22
任何到主机端口 1234 的连接都将被发送到客户机端口 22 (ssh)。
手册 qemu 系统
这就是您所需要的,但如果您好奇,这里是手册页qemu-system
关于该选项的说明hostfwd
:
-网 用户[,选项][,选项][,...]
使用用户模式网络堆栈,无需管理员权限即可运行。有效选项包括:
主机转发=[传输控制协议|UDP协议]:[主机地址]: 主机端口 -[客人地址]: 宾客港
将传入的 TCP 或 UDP 连接重定向到主机端口 主机端口访客 IP 地址客人地址在来宾端口上 宾客港。 如果客人地址未指定时,其值为 xxx15(内置 DHCP 服务器给出的默认第一个地址)。通过指定主机地址,规则可以绑定到特定主机接口。如果未设置连接类型,则使用 TCP。此选项可以多次给出。
例如,要将主机 X11 连接从屏幕 1 重定向到客户屏幕 0,请使用以下命令:
# on the host qemu-system-i386 -net user,hostfwd=tcp:127.0.0.1:6001-:6000 [...] # this host xterm should open in the guest X11 server xterm -display :1
要将 telnet 连接从主机端口 5555 重定向到客户机上的 telnet 端口,请使用以下命令:
# on the host qemu-system-i386 -net user,hostfwd=tcp::5555-:23 [...] telnet localhost 5555
然后,当您在主机上使用时
telnet localhost 5555
,您将连接到客户 telnet 服务器。