로컬 네트워크의 다른 컴퓨터에서 webrick / rails에 액세스
localhost : 3000에서 실행되는 rails 응용 프로그램이 있습니다. 동일한 네트워크에있는 다른 컴퓨터에서 액세스하고 싶습니다. 전에 쉽게 해본 것 같지만 슬픔을 느끼고 있습니다. 컴퓨터의 IP를 ping 할 수는 있지만 브라우저에서 ip : 3000을 누르면 작동하지 않습니다. 나는 발사 rails s -b ipaddress
도 시도했지만 운이 없었다.
제안?
대신 포트 80에서 서버를 실행 해보십시오. 방화벽이 포트 3000을 차단하고있을 수 있습니다.
서버 측 방화벽이 높은 포트에서 들어오는 연결에 대해 열려 있는지 확인한 후 (일반적으로 true이고 기본 포트는 3000이므로 아무것도 할 필요가 없습니다) 다음과 같이 서버를 시작해야합니다.
rails server -b 0.0.0.0
범용 주소에 바인딩합니다. localhost
기본적으로에 바인딩됩니다 .
이 방법을 사용하면 포트 80에 바인딩 할 필요가 없지만 다음과 같이 할 수 있습니다.
rails server -b 0.0.0.0 -p 80
(rvm을 사용하는 경우을 사용해야 할 수 있습니다. rvmsudo
)
이 변경을 더 영구적으로 만들려면 다음 config/boot.rb
을 추가하십시오.
require 'rails/commands/server'
module Rails
class Server
def default_options
super.merge(Host: '0.0.0.0', Port: 3000)
end
end
end
그런 다음 사용해야합니다 rails s
출처 : https://stackoverflow.com/a/29562898/1795429
rails server -b 0.0.0.0 -p 8000
이것은 나를 위해 일했습니다. 방화벽 문제가 없으며 슈퍼 사용자 권한을 부여 할 필요가 없습니다.
예, 이것은 일반적으로 좋은 대답 이었습니다 .
rails server -b 0.0.0.0
Ubuntu 를 사용하는 경우 방화벽 에서 포트를 열어야합니다 .
sudo ufw allow 3000
시스템이 VirtualBox 에서 실행 중이 면 네트워크 설정 을 확인해야 합니다 .
네트워크 모드의 경우
NAT
확장 옵션을 클릭하고 포트 포워딩 을 클릭해야합니다 . TCP 프로토콜, 호스트 포트 3000 (또는 기타) 및 게스트 포트 3000에 대한 규칙을 추가합니다.
Webrick이 문제없이 시작된다고 가정하면 이것은 100 % 방화벽 문제입니다. 호스트가 실행중인 운영 체제 및 방화벽 제어에 대한 관리자 권한이 있는지 여부와 같은 몇 가지 사양을 제공해야합니다.
Linux에서 iptables 방화벽 서비스를 실행하는 경우 포트 3000을 통한 트래픽을 허용하는 규칙을 추가해야합니다. 다음과 같이 표시됩니다.
iptables -A INPUT -p tcp --dport 3000 -j ACCEPT
이 명령은 일회성 솔루션이지만 시스템을 부팅하거나 로그인 할 때마다 영구적으로 만들기 위해 현재 iptables 규칙 스크립트를 확장해야합니다.
Windows를 실행하는 경우 XP 또는 Vista / 7을 실행하는지 여부에 따라 비슷한 작업을 수행해야합니다. 귀하가 Vista / 7 환경에 있다고 가정하고이 가이드를 통해 제공된 단계를 따르기 만하면됩니다. http://windows.microsoft.com/en-US/windows7/Open-a-port -in-Windows-Firewall .
한 가지 이유는 IP가 레일 서버에 바인딩되지 않았기 때문입니다. -b 명령 옵션으로 ip를 바인딩 할 수 있습니다.
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
Foreman을 사용하여 Procfile 기반 응용 프로그램을 관리하고 있습니다.
Procfile에서 -b 0.0.0.0
내 bundle exec rails s
명령에 추가하면 저에게 효과적이었습니다.
'Development Tip' 카테고리의 다른 글
Django : 길이가 고정 된 CharField, 어떻게? (0) | 2020.12.09 |
---|---|
Java에서 비트 시프 팅은 어떻게 작동합니까? (0) | 2020.12.09 |
모든 원격 연결 허용, MySQL (0) | 2020.12.09 |
C # WPF의 콤보 상자에서 선택한 값 가져 오기 (0) | 2020.12.09 |
Java는 문자열의 SHA-1 다이제스트에 대한 16 진 표현을 계산합니다. (0) | 2020.12.09 |