-1

我在 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。

4

1 回答 1

0

简单的防火墙

您是否尝试检查防火墙,您可以尝试安装ufw软件包。通常防火墙似乎是罪魁祸首。你可以试试安装。

sudo apt install ufw

然后公开你想要的端口。

ufw allow 1234
于 2021-10-13T15:05:19.560 回答