다른 컴퓨터에서 랩톱의 로컬 웹 서버에 어떻게 액세스합니까? [닫은] 중입니다. 동일한 네트워크에 연결된 iPhone에서 해당 앱에 액세스하고

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

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



답변

먼저 웹 서버를 실행중인 컴퓨터의 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을 시도하십시오.

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


답변

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

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

ipconfig getifaddr en1

또는 일반적으로

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


답변

기본적으로 방화벽 설정에서 특정 응용 프로그램 (예 : 루비)이 들어오는 연결을 수락하도록 허용 할 수 있습니다. 또한 외부 세계 (예 : 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에서 실행 중입니다.


답변

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


답변

응용 프로그램이 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을 엽니 다.


답변

당신은 이것을 시도 했습니까, 그것은 나를 위해 일했습니다 (나는 그것과 관련이 없습니다) :

https://github.com/progrium/localtunnel