【发布时间】:2016-04-21 09:58:19
【问题描述】:
我下载了一个 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?
【问题讨论】:
-
所以
vagrant reload没有清除旧的转发端口?vagrant port命令的输出是什么? docs.vagrantup.com/v2/cli/port.html -
这很奇怪,因为 vagrant 似乎没有采用“端口”的参数。我安装了 Vagrant 1.7.4 版。
-
对,该命令是在 1.8.0 中添加的。在我写这篇文章时,你应该安装最新的 1.8.1。
-
用“vagrant port”的输出更新了问题