如何将 vagrant ssh 转移到不同的来宾端口

How to vagrant ssh to different guest prort

我在 XXXX 端口上安装了 vagrant vm centos 7 运行 ssh(不是默认的 22)

如何使用 "vagrant ssh" 命令连接到 XXXX 端口

我试过了,但没有用。

  config.vm.network :forwarded_port, guest: 22, host: 2222, id: "ssh" , disabled: true
  config.vm.network :forwarded_port, guest: xxxx, host: 2223, auto_correct: true
  config.ssh.port = 2223

这可能取决于您使用的提供商,但是设置 config.ssh.guest_port=XXXX 以及端口转发对我来说在使用 Virtualbox 作为提供商时有用。

这样你甚至不必指定 config.ssh.port,因为 Vagrant 会自动检测端口转发设置。

另见 vagrantfile documentation

想知道 @su_li 到底使用了什么配置,我尝试了不同的可能性,下面的代码按预期工作了:

config.vm.network "forwarded_port", guest: 54321, host: 2222, id: "ssh"
config.ssh.guest_port = 54321

来宾 OS(虚拟机)在端口 54321 上运行 sshd。 主机 OS 将向端口 2222 发送 ssh 请求。 使用此配置,所有对主机端 2222 端口的请求将被转发到客户机端的 54321 端口。 来宾端来自端口 54321 的所有响应都将转发到主机端的端口 2222。

请注意,如果您想覆盖默认的 ssh 端口转发配置,id: "ssh" 部分是必需的。