vagrant - 如何删除 Vagrant 中的转发端口?

标签 vagrant port

我下载了一个 Vagrantfile 并在我的 CentOS 7 机器上运行它。当我执行 vagrant up ,该过程成功启动,机器已启动并准备就绪。我可以使用 URL 访问该过程:

http://<IP_ADDRESS_OF_BOX>:8080

但是,我不希望 Vagrant 使用端口 8080,而是希望使用像 8601 这样的不知名端口。因此,我修改了 Vagrantfile 以包含 config.vm.network 的另一个条目。 .

更改前 - Vagrantfile
Vagrant.configure(2) do |config|
    config.vm.box = 'ToraToraTora'
end

更改后 - Vagrantfile
Vagrant.configure(2) do |config|
    config.vm.box = 'ToraToraTora'
    config.vm.network "forwarded_port", guest: 80, host: 8601
end

现在我可以使用新端口访问该进程:
http://<IP_ADDRESS_OF_BOX>:8601

但是,以前的端口也继续工作:
http://<IP_ADDRESS_OF_BOX>:8080

正在执行 sudo netstat -tulpn :
[ToraToraTora@andromeda ~]$ sudo netstat -tulpn | grep 26206
tcp        0      0 127.0.0.1:2222          0.0.0.0:*               LISTEN      26206/VBoxHeadless  
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      26206/VBoxHeadless  
tcp        0      0 0.0.0.0:8601            0.0.0.0:*               LISTEN      26206/VBoxHeadless  
udp        0      0 0.0.0.0:40168           0.0.0.0:*                           26206/VBoxHeadless  
[ToraToraTora@andromeda ~]$

运行输出 vagrant port :
[ToraToraTora@andromeda app]$ vagrant port
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)
    80 (guest) => 8080 (host)
    80 (guest) => 8601 (host)
[ToraToraTora@andromeda app]$ 

如何阻止 Vagrant 进程使用端口 8080 而只使用端口 8601?

最佳答案

您可以明确禁用 8080 转发端口...

Vagrant.configure(2) do |config|
    config.vm.box = 'ToraToraTora'
    config.vm.network "forwarded_port", guest: 80, host: 8601
    config.vm.network "forwarded_port", guest: 80, host: 8080, disabled: true
end

如果您进行更改并执行 vagrant reload ,它会清除 8080 转发端口。此时,您可以从 Vagrantfile 中删除 8080 行。

注意: Vagrant 中的端口转发可以与 radio 广播进行比较。 guest 端口就像 radio 台,而主机端口就像 radio 。就像一个电台可以向任意数量的电台广播一样,Vagrant 机器上的一个访客端口可以转发到主机上的多个端口。但是,每个主机端口一次只能接收来自一个访客端口的转发流量,就像 radio 一次只能调谐到一个电台一样。

所以在这种情况下,两个 radio (主机上的端口 8601 和 8080)被调谐到同一个电台( guest 上的端口 80)。解决方案只是在 8080 处关闭 radio 。

关于vagrant - 如何删除 Vagrant 中的转发端口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34817312/

相关文章:

postgresql - chef-solo + postgres 导致 pg_hba.conf 无效

ubuntu - 如何在 VM box 上升级到 VirtualBox Guest Additions?

php - 在 Vagrant Server 中创建虚拟主机

windows - VBoxManage 仅在不存在时添加共享文件夹?

Java:端口不可用(在 Windows 7 上)

port - 在 Windows 上查找使用端口的进程的 PID

node.js - Vagrant、Puppet 和 nodejs 模块 : throwing error on npm module installation

c++ - 如何在C中的控制总线上设置IO/PORT线

java - Web 服务器无法启动。 8080端口已被使用

ios - 需要打开的端口号以接收来自 APNS 的推送通知