我在 Mac 上使用 Vagrant 2.2.18 并创建本地 Ubuntu 14.04 虚拟机。我想在我的虚拟机中公开端口 1234,所以我已经配置了这个
config.vm.define "dev" do |dev|
dev.vm.hostname = 'dev'
dev.vm.network 'forwarded_port', guest: 1234, host: 1234
dev.vm.network 'forwarded_port', guest: 3306, host: 3306
dev.vm.network 'forwarded_port', guest: 3000, host: 3000
dev.vm.network 'forwarded_port', guest: 3500, host: 3500
dev.vm.network 'forwarded_port', guest: 4444, host: 4444
dev.vm.network 'forwarded_port', guest: 8080, host: 8080
当我启动我的虚拟机时,我看到这个报告
$ vagrant reload
…
==> dev: Preparing network interfaces based on configuration...
dev: Adapter 1: nat
dev: Adapter 2: host-only
==> dev: Forwarding ports...
dev: 1234 (guest) => 1234 (host) (adapter 1)
dev: 3306 (guest) => 3306 (host) (adapter 1)
dev: 3000 (guest) => 3000 (host) (adapter 1)
dev: 3500 (guest) => 3500 (host) (adapter 1)
dev: 4444 (guest) => 4444 (host) (adapter 1)
dev: 8080 (guest) => 8080 (host) (adapter 1)
当我在我的虚拟机中时,我可以通过 telnet 连接到我的“1234”端口
myusername@dev:/var/$ telnet localhost 1234
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
但是从我的虚拟机外部,我似乎无法连接到该端口
$ telnet localhost 1234
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Connection closed by foreign host.
当我运行“vagrant port dev”时,它显示了这一点
$ vagrant port dev
The forwarded ports for the machine are listed below. Please note that
these values may differ from values configured in the Vagrantfile if the
provider supports automatic port collision detection and resolution.
22 (guest) => 2222 (host)
1234 (guest) => 1234 (host)
3000 (guest) => 3000 (host)
3306 (guest) => 3306 (host)
3500 (guest) => 3500 (host)
4444 (guest) => 4444 (host)
8080 (guest) => 8080 (host)
所以我很困惑我需要做哪些其他配置才能允许从我的虚拟机外部连接到端口 1234。