Dostęp webrick / rails z innego komputera w sieci lokalnej
Mam aplikację rails działającą na localhost: 3000. Chcę uzyskać do niego dostęp z innego komputera w tej samej sieci. Czuję się, jakbym robił to już wcześniej z łatwością, ale to przyprawia mnie o smutek. Mogę ping IP komputera dobrze, ale uderzenie ip: 3000 w przeglądarce nie działa. Próbowałem też odpalić rails s -b ipaddress
i bez powodzenia.
Sugestie?
7 answers
Spróbuj uruchomić serwer na porcie 80, twój firewall prawdopodobnie blokuje port 3000.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-09-06 20:40:53
Po upewnieniu się, że firewall po stronie serwera jest otwarty dla połączenia przychodzącego na wysokich portach (zwykle jest to prawdą, a domyślny port to 3000, więc prawdopodobnie nie musisz nic robić) musisz również uruchomić serwer w następujący sposób:
rails server -b 0.0.0.0
Który wiąże go z uniwersalnym adresem. Domyślnie wiąże się z localhost
.
Używając tej metody nie musisz wiązać się z portem 80, ale możesz to polubić:
rails server -b 0.0.0.0 -p 80
(Jeśli używasz rvm, może być konieczne użycie rvmsudo
)
Aby ta zmiana była bardziej trwała Edytuj swój config/boot.rb
i dodaj to:
require 'rails/commands/server'
module Rails
class Server
def default_options
super.merge(Host: '0.0.0.0', Port: 3000)
end
end
end
Wtedy należy tylko użyć rails s
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-18 07:05:37
rails server -b 0.0.0.0 -p 8000
To mi pomogło. Brak problemów z zaporą i nie ma potrzeby nadawania uprawnień super user.Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-18 07:06:19
Zakładając, że Webrick uruchamia się bez problemu, jest to w 100% problem z zaporą sieciową. Powinieneś podać pewne specyfikacje, takie jak system operacyjny, na którym działa twój host i czy masz uprawnienia administratora, jeśli chodzi o kontrolowanie zapory.
Jeśli używasz Linuksa i używasz usługi zapory sieciowej iptables, musisz dodać regułę akceptującą ruch na porcie 3000. Wyglądałoby to tak:
iptables -A INPUT -p tcp --dport 3000 -j ACCEPT
To polecenie byłoby rozwiązaniem jednorazowym, musisz rozszerzyć swój obecny skrypt reguł iptables, aby stał się on za każdym razem, gdy system uruchomi się lub zaloguje.
Jeśli używasz systemu Windows, w zależności od tego, czy używasz XP czy Vista / 7, musisz zrobić coś podobnego. Zakładam, że jesteś w środowisku Vista / 7 i po prostu musisz postępować zgodnie z instrukcjami zawartymi w tym przewodniku http://windows.microsoft.com/en-US/windows7/Open-a-port-in-Windows-Firewall .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-09-06 20:38:34
-
Tak, to była dobra odpowiedź ogólnie :
rails server -b 0.0.0.0
-
Jeśli używasz Ubuntu , prawdopodobnie musisz otworzyć port w firewall :
sudo ufw allow 3000
-
Jeśli Twój system działa w VirtualBox , musisz sprawdzić ustawienia sieci .
W przypadku trybu sieciowego
NAT
należy kliknąć na rozszerzone opcje i tam na Przekierowanie Portów. Dodaj regułę dla protokołu TCP, host port 3000 (lub każdy inny), a port gościnny 3000.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-18 20:32:53
Jednym z powodów jest to, że twój adres ip nie jest powiązany z serwerem rails. Możesz powiązać adres ip z opcją polecenia-B.
Usage: rails server [mongrel, thin etc] [options]
-p, --port=port Runs Rails on the specified port.
Default: 3000
-b, --binding=IP Binds Rails to the specified IP.
Default: localhost
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-21 10:20:31
Używam Foremana do zarządzania moją aplikacją opartą na Procfile.
Dodanie -b 0.0.0.0
do mojej komendy bundle exec rails s
w Procfile zadziałało na mnie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-10 16:35:33