다른 컴퓨터에서 랩톱의 로컬 웹 서버에 어떻게 액세스합니까? [닫은]


37

컴퓨터에서 127.0.0.1:3000에 앱이 실행 중입니다.

동일한 네트워크에 연결된 iPhone에서 해당 앱에 액세스하고 싶습니다. 나는 이것을 전에 했었지만 어떻게했는지에 대해 비워 두었다. 어떤 아이디어?


2
을 시도한 rails server -b 0.0.0.0다음 iPhone에서이 브라우저를 사용하십시오.
zx1986

답변:


37

먼저 웹 서버를 실행중인 컴퓨터의 IP 주소 또는 이름을 결정해야합니다. macosx지침은 Linux 시스템과 유사하지만 게시물에 태그를 지정했기 때문에 Mac에서 웹 서버를 실행한다고 가정합니다 . 따라서 Mac에서 :

  • 를 엽니 다 Terminal.app. 아래에 Applications->Utilities있습니다.
  • ifconfig터미널에서 실행하십시오 . 머신의 모든 네트워크 인터페이스가 표시됩니다. 그중 하나는 머신이 활발하게 연결된 네트워크입니다. Mac이 유선 연결 인 경우 en0. 후 주소를 메모하십시오 inet주소를 컴퓨터의 사용을해야합니다 -.
    • 그것이 192.168.10.1이라는 것을 발견했다고 가정 해 봅시다.
  • 로 서버에서 해당 주소에 연결할 수 있는지 확인하십시오 nc -v 192.168.10.1 3000.
    • 와 같은 메시지가 나타납니다 Connection to 192.168.10.1 3000 port [tcp/http] succeeded!.
    • 그래도 작동하지 않으면 아래를 참조하십시오.
    • 작동 ctrl-C하면 nc 세션을 종료하십시오.
  • 이제 클라이언트 컴퓨터에서 연결을 시도하십시오.
    • 이것이 웹 앱인 경우 브라우저를 통해 연결할 수 있어야합니다
    • 예를 들어 http://192.168.10.1:3000을 시도하십시오.

서버의 실제 주소에서 응용 프로그램에 연결할 수 없으면 응용 프로그램이 해당 주소에서 수신 대기하지 않는 것입니다. 해당 동작을 수정하기 위해 응용 프로그램 구성을 변경하는 방법을 조사해야합니다. 실행중인 응용 프로그램을 모르기 때문에 좋은 아이디어를 제공 할 수 없습니다.


10x 메이트 ... Wamp 서버가있는 Windows 기반 시스템에 대해 이야기 할 때의 차이점은 무엇입니까?
Sagive SEO 2012 년

맥 시에라를 사용하고 있습니다. 10.55.18.22:3000을 통해 내 Mac (서버가 실행중인)에서 서버 에 액세스 할 수 있지만 둘 다 동일한 네트워크에 있어도 다른 컴퓨터에서 서버 에 액세스 할 수 없습니다. sierra에서는 웹 공유 옵션을 사용할 수 없습니다. 우리는 어떻게이 일을 할 수 있습니까?
santhosh kumar

saanthosh : 라우터의 포트 전달을 살펴보십시오. 그것이 OSX의 인터넷 공유 기능을 발견하기 전에 내가 한 일입니다 (적어도 OSX 10.6 이후부터 가능했습니다). 라우터 구성에 대한 표준 / 소규모 변경 (예 : 포트 전달)을 통해 OSX dev 시스템과 동일한 방 / 네트워크의 다양한 모바일 장치에서 로컬 호스트 테스트를 수행했습니다. 다른 기사 및 SO 스레드는 라우터 구성에 대한 정보를 제공합니다. 궁극적으로 지금은 새로운 위치에 있으며 라우터에 액세스 할 수 없으므로 대신 OSX (High Sierra) 인터넷 공유를 사용하여 동일한 결과를 얻습니다.
MarsAndBack

12

hostname(터미널 프롬프트에서)를 사용 하여 Mac 이름을 찾아 URL에서 사용하십시오. 예 : http : //Tonys-iMac.local : 3000 /

어떤 이유로 Bonjour가 사용자 환경에서 작동하지 않는 경우 iMac 또는 MacBook에서 공항 주소를 찾으십시오.

ipconfig getifaddr en1

또는 일반적으로

ipconfig getifaddr $(route -n get default|awk '/interface/ { print $2 }')


이 답변에는 호스트 이름과 IP 주소를 찾는 것과 관련하여 내 최적화가 잘되어 있습니다.
Phil Hollenback

2
왜 bonjour가 작동하지 않습니까? 호스트 이름이 gm20152.local입니다. 그러나 동일한 컴퓨터에서 gm20152.local : 3000 을 시도 하면 유효한 페이지가 나타납니다. 그러나 내 안드로이드 폰에서 gm20152.local : 3000 을 시도하면 내 폰의 브라우저가 호스트를 찾을 수 없습니다. 내 전화에는 gm20152.local을 내 맥북의 IP 주소에 매핑하는 방법이 없기 때문이라고 생각합니다. 어떻게하면 되나요?
gprasant

@gprasant Bonjour를 사용하기 위해 안드로이드를 얻는 것은 꽤 어려워 보인다
James

5

기본적으로 방화벽 설정에서 특정 응용 프로그램 (예 : 루비)이 들어오는 연결을 수락하도록 허용 할 수 있습니다. 또한 외부 세계 (예 : www)에 대한 액세스를 허용하려면 라우터 설정을 통해 트래픽을 내부 게이트웨이 포트로 전달해야합니다.

이를 수행하는 방법은 다음과 같습니다.

  1. Mac-> 시스템 환경 설정-> 공유->“웹 공유”활성화 확인란
  2. Mac-> 시스템 환경 설정-> 보안-> 응용 프로그램 (예 : 루비)이 들어오는 연결을 수락하도록 허용
  3. 라우터에서 포트 (192.168.1.1을 통해)를 열어 your_web_ip : port에서 local_gateway : port로 트래픽을 전달하십시오.

    1. 예를 들어 Verizon의 라우터 설정-> 포트 전달-> 규칙 생성 : 로컬 게이트웨이로 전달 (예 : 192.168.1.4), 사용자 지정 포트, 프로토콜 tcp, source = any, destination = 3280, 모든 연결 유형, 포트 = 3000으로 전달.

끝난. 이제 원격 컴퓨터에서 브라우저를 웹 IP 주소 ( http://www.whatismyip.com/을 통해 찾음) + 위의 대상 포트 번호 (예 : 72.189.194.65:3280)로 엽니 다. 그러면 로컬 192.168.1.4에 연결됩니다. : 3000

참고 : Mac OSX 10.7.5에서 실행 중입니다.


2

127.0.0.1은 모든 컴퓨터 자체의 로컬 주소입니다. 머신의 실제 IP 주소 (또는 Host / Bonjour 이름)가 무엇인지 확인해야합니다. 시스템 환경 설정, 네트워크로 이동하여 케이블을 사용하는 경우 이더넷 포트 또는 WLAN을 사용하는 경우 공항 중 하나의 시스템 IP를 찾으십시오. 그런 다음 iPhone의 Safari에서이 주소를 : 3000 부분과 함께 엽니 다.


또한 공유 환경 설정 창에는 항상 컴퓨터에 연결할 수있는 이름 또는 주소가 표시됩니다.
James

2

응용 프로그램이 127.0.0.1:3000에서만 수신 대기중인 경우 다른 컴퓨터에서 액세스 할 수 없습니다. 그렇게하려면 IP 또는 0.0.0.0 (사용 가능한 모든 인터페이스)을 수신하도록 구성을 수정해야합니다.

두 번째 옵션은 프록시를 사용하는 것입니다.

세 번째 옵션은 iPhone에서 ssh를 사용할 수 있다면 ssh 전달을 사용할 수도 있습니다.

ssh user @ host -L 3000 : 127.0.0.1 : 3000

그런 다음 iPhone에서 127.0.0.1:3000을 엽니 다.


1
AFAIK, iPhone에서는 ssh 포트 전달을 수행 할 수 없습니다. 어쨌든 탈옥되지 않았다면 아닙니다.
Sven

들어 봐 0.0.0.0! 내가 어떻게 생각하지 못했습니까?
구스타보 스트라 우베

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.