【问题标题】:How to access Guest's port 3000 from Host?如何从 Host 访问 Guest 的 3000 端口?
【发布时间】:2015-06-09 03:09:12
【问题描述】:

这是我的Vagrantfile

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure(2) do |config|
config.vm.box = "ubuntu-14.04-x64"

# Sync'd folders
config.vm.synced_folder ".",           "/vagrant",  disabled: true
config.vm.synced_folder "~/work",      "/home/vagrant/work", create: true
config.vm.synced_folder "~/apt-archives", "/var/cache/apt/archives/", create: true

# Ubuntu VM
config.vm.define "ubuntu" do |ubuntu|
ubuntu.vm.provision "shell", path: "provision.sh", privileged: false
ubuntu.vm.network "forwarded_port", guest: 3000, host: 8080   # http
ubuntu.vm.network "private_network", ip: "10.20.30.100"
ubuntu.vm.hostname = "ubuntu"

# VirtualBox Specific Stuff
# https://www.virtualbox.org/manual/ch08.html
config.vm.provider "virtualbox" do |vb|

  # Set more RAM
  vb.customize ["modifyvm", :id, "--memory", "2048"]

  # More CPU Cores
  vb.customize ["modifyvm", :id, "--cpus", "2"]

end # End config.vm.provider virtualbox
end # End config.vm.define ubuntu
end

例如,当我使用端口 3000 运行 rails 应用程序时,我会从客户机访问 http://localhost:3000

但我正在尝试通过主机的浏览器访问该应用程序。

以下均无效:

http://10.20.30.100:8080

https://10.20.30.100:8080

http://10.20.30.100:3000

https://10.20.30.100:3000

主持人显示的浏览器:ERR_CONNECTION_REFUSED

【问题讨论】:

标签: ruby-on-rails vagrant virtualbox portforwarding vagrantfile


【解决方案1】:

出于安全原因,Rails 4.2 在开发模式下限制远程访问。这是通过将服务器绑定到 'localhost' 而不是 '0.0.0.0' ....

要访问运行在 VM(例如由 Vagrant 创建的 VM)上的 Rails,您需要将默认的 Rails IP 绑定更改回“0.0.0.0”。

请参阅以下StackOverflow Question 的答案,建议使用多种不同的方法。

这个想法是通过强制执行以下命令来让 Rails 运行:

rails s -b 0.0.0.0

或者通过将绑定硬编码到 Rails 应用程序中(我发现不太理想):

# add this to config/boot.rb
require 'rails/commands/server'
module Rails
  class Server
    def default_options
      super.merge(Host:  '0.0.0.0')
    end
  end
end

就个人而言,我可能会接受使用 foreman 和 Procfile 的建议:

# Procfile in Rails application root
web:     bundle exec rails s -b 0.0.0.0

我相信,这将允许更轻松的部署同步性。

【讨论】:

    猜你喜欢
    • 2013-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-12
    • 2014-07-29
    • 1970-01-01
    • 2019-03-05
    • 2019-12-17
    相关资源
    最近更新 更多