ruby-on-rails ruby ruby-on-rails-4 vagrant ruby-on-rails-4.2

no se puede conectar localhost: 3000 ruby on rails in vagrant



ruby-on-rails ruby-on-rails-4 (3)

Intenté conectar localhost: 3000 en Windows

el servidor Rails se ejecuta en vagabundo (ubuntu 14.10)

el traspaso está hecho

cuando, probé lynx 127.0.0.1:3000 en ubunutu, funciona

pero, en Windows, no puedo conectar localhost: 3000, 127.0.0.1:3000 también

acaba de mostrar ERR_CONNECTION_REFUSED

en cmd, ejecuté netstat -t resultado es: 3000 TIME_WAIT

¿Como puedó resolver esté problema?

este es mi ''Vagrantfile''

# -*- mode: ruby -*- # vi: set ft=ruby : # All Vagrant configuration is done below. The "2" in Vagrant.configure # configures the configuration version (we support older styles for # backwards compatibility). Please don''t change it unless you know what # you''re doing. Vagrant.configure(2) do |config| # The most common configuration options are documented and commented below. # For a complete reference, please see the online documentation at # https://docs.vagrantup.com. # Every Vagrant development environment requires a box. You can search for # boxes at https://atlas.hashicorp.com/search. config.vm.box = "ubuntu 14.10" # Disable automatic box update checking. If you disable this, then # boxes will only be checked for updates when the user runs # `vagrant box outdated`. This is not recommended. # config.vm.box_check_update = false # Create a private network, which allows host-only access to the machine # using a specific IP. # config.vm.network "private_network", ip: "192.168.33.10" # Create a forwarded port mapping which allows access to a specific port # within the machine from a port on the host machine. In the example below, # accessing "localhost:8080" will access port 80 on the guest machine. config.vm.network "forwarded_port", guest: "3000", host: "3000" # Create a public network, which generally matched to bridged network. # Bridged networks make the machine appear as another physical device on # your network. # config.vm.network "public_network" # Share an additional folder to the guest VM. The first argument is # the path on the host to the actual folder. The second argument is # the path on the guest to mount the folder. And the optional third # argument is a set of non-required options. # config.vm.synced_folder "../data", "/vagrant_data" # Provider-specific configuration so you can fine-tune various # backing providers for Vagrant. These expose provider-specific options. # Example for VirtualBox: # # config.vm.provider "virtualbox" do |vb| # # Display the VirtualBox GUI when booting the machine # vb.gui = true # # # Customize the amount of memory on the VM: # vb.memory = "1024" # end # # View the documentation for the provider you are using for more # information on available options. # Define a Vagrant Push strategy for pushing to Atlas. Other push strategies # such as FTP and Heroku are also available. See the documentation at # https://docs.vagrantup.com/v2/push/atlas.html for more information. # config.push.define "atlas" do |push| # push.app = "YOUR_ATLAS_USERNAME/YOUR_APPLICATION_NAME" # end # Enable provisioning with a shell script. Additional provisioners such as # Puppet, Chef, Ansible, Salt, and Docker are also available. Please see the # documentation for more information about their specific syntax and use. # config.vm.provision "shell", inline <<-SHELL # sudo apt-get install apache2 # SHELL end

editar: Intenté el adaptador de red de solo host y traté de conectar 192.168.33.10:3000 en el equipo host pero todavía no puedo conectarme. Una cosa extraña, puedo enviar Ping a 192.168.33.10 en máquina host y la respuesta llegó. No sé cuál es el problema. Me confundí. Alguien me ayude por favor :(


La solución ejecuta el siguiente código para iniciar su servidor:

rails s -b 0.0.0.0

Encontré esta solución de otra publicación sobre el mismo problema. El contestador dijo "Querrá asegurarse de que el servidor esté enlazado a 0.0.0.0 para que todas las interfaces puedan acceder a él".

Espero que esta publicación ayude a las personas que enfrentan el mismo problema :)


Puede encontrar el motivo aquí: http://edgeguides.rubyonrails.org/4_2_release_notes.html

Debido a un cambio en Rack, el servidor de rails ahora escucha en localhost en lugar de 0.0.0.0 por defecto

Si desea utilizar rails s lugar de rails s -b 0.0.0.0 , puede editar /config/boot.rb :

ENV[''BUNDLE_GEMFILE''] ||= File.expand_path(''../../Gemfile'', __FILE__) require ''bundler/setup'' if File.exist?(ENV[''BUNDLE_GEMFILE'']) require ''rails/commands/server'' module Rails class Server alias :default_options_alias :default_options def default_options default_options_alias.merge!(:Host => ''0.0.0.0'') end end end


También he hecho algo así para que Guardia comience de esta manera: guard ''rails'', force_run: true, host: ''0.0.0.0'' do watch(''Gemfile.lock'') watch(%r{^(config|lib)/.*}) end