동일한 네트워크의 다른 컴퓨터에서이 로컬 호스트에 어떻게 연결합니까?


171

현재 프로젝트를 진행 중이며 한 랩톱은 다른 랩톱의 로컬 호스트에 연결되는 집에있는 두 개의 랩톱에서 테스트하고 싶습니다. XAMPP를 사용하고 있습니다. 어떻게해야합니까?

답변:


283

확실히 가능합니다. 여기서는 Apache와 관련된 일반적인 사례를 살펴 보겠습니다.

당신이 큰 Symfony2 팬이고 http://symfony.local/4 개의 다른 컴퓨터 (웹 사이트를 호스팅하는 주요 컴퓨터는 물론 Mac, Windows 및 Linux 배포판 (무선 또는 무선)에 연결되어 있음) 에서 symfony 웹 사이트에 액세스하고 싶다고 가정 해 보겠습니다. 메인 컴퓨터.

일반 스케치 :

여기에 이미지 설명을 입력하십시오


1 가상 호스트를 설정하십시오 .

먼저 아파치 httpd-vhosts.conf파일 에 가상 호스트를 설정해야 합니다. 에 XAMP , 여기에이 파일을 찾을 수 있습니다 C:\xampp\apache\conf\extra\httpd-vhosts.conf. 에 MAMP , 여기에이 파일을 찾을 수 있습니다 Applications/MAMP/conf/apache/extra/httpd-vhosts.conf. 이 단계symfony.local요청 을 처리하기 위해 컴퓨터의 웹 서버를 준비 합니다. 웹 사이트의 루트 / 메인 폴더뿐만 아니라 가상 호스트의 이름도 제공해야합니다. 이렇게하려면 해당 파일의 끝에 다음 줄을 추가하십시오. DocumentRoot기본 폴더 의 위치 를 로 변경해야합니다 . 여기 /Applications/MAMP/htdocs/Symfony/에서는 내 웹 사이트의 루트로 사용했습니다.

<VirtualHost *:80>
    DocumentRoot "/Applications/MAMP/htdocs/Symfony/"
    ServerName symfony.local
</VirtualHost>

2 호스트 파일을 구성하십시오 .

클라이언트 (이 경우 브라우저)가 symfony.local실제로 의미 하는 바를 이해 하려면 컴퓨터에서 호스트 파일을 편집해야합니다. 브라우저에 URL을 입력 할 때마다 컴퓨터는 그 의미를 이해하려고 시도합니다! symfony.local컴퓨터에는 아무 의미가 없습니다. 따라서 이름 symfony.local을 IP 주소로 확인 하려고 시도 합니다. 먼저 컴퓨터의 호스트 파일을 조사하여 IP 주소를 주소 표시 줄에 입력 한 것과 일치하는지 확인할 수 있습니다. 그렇게 할 수 없으면 DNS 서버에 요청 합니다 . 여기서 트릭은 다음을 호스트 파일에 추가하는 것입니다.

  • MAC ,이 파일에 /private/etc/hosts;
  • LINUX ,이 파일에 /etc/hosts;
  • WINDOWS ,이 파일에 \Windows\system32\private\etc\hosts;
  • WINDOWS 7 ,이 파일에서이다 \Windows\system32\drivers\etc\hosts;
  • WINDOWS 10 ,이 파일에서이다 \Windows\system32\drivers\etc\hosts;

Hosts file

##
# Host Database
# localhost is used to configure the loopback interface
##
#...
127.0.0.1           symfony.local

이제부터이 컴퓨터에서 symfony.local을 입력 할 때마다 컴퓨터는 루프백 인터페이스를 사용하여 symfony.local에 연결합니다. localhost (127.0.0.1)에서 작업하려는 것으로 이해합니다.

3 symfony.local다른 컴퓨터에서 액세스 :

우리는 마침내 다음과 같은 주요 질문에 도달합니다.

다른 컴퓨터를 통해 내 웹 사이트에 액세스하려면 어떻게합니까?

글쎄 이것은 지금 쉽다! 우리는 다른 컴퓨터들에게 그들이 어떻게 찾을 수 있는지 알려 주기만하면됩니다 symfony.local! 우리는 이것을 어떻게합니까?

3a 웹 사이트를 호스팅하는 컴퓨터의 IP 주소를 얻습니다 .

먼저 웹 사이트를 호스팅하는 컴퓨터의 IP 주소 (처음부터 작업 한 IP 주소)를 알아야합니다. 터미널의 MACLINUX 유형 ifconfig |grep inet, WINDOWS유형 ipconfig. 이 컴퓨터의 IP 주소가 192.168.1.5 라고 가정합니다 .

3b 웹 사이트에 액세스하려는 컴퓨터에서 호스트 파일을 편집하십시오. :

다시 MAC 에서이 파일은 /private/etc/hosts; 에 리눅스 에서 /etc/hosts; 과에 WINDOWS 에서 \Windows\system32\private\etc\hosts(당신이 사용하는 경우 WINDOWS 7 ,이 파일에 \Windows\system32\drivers\etc\hosts.. 비결은 우리가 접근 / 이야기하려고하는 컴퓨터의 IP 주소를 사용하는 지금) :

##
# Host Database
# localhost is used to configure the loopback interface
##
#...
192.168.1.5         symfony.local

4 마지막으로 브라우저에서 결과를 즐기십시오

이제 브라우저로 이동하여 http://symfony.local다른 컴퓨터에서 웹 사이트를 아름답게 볼 수 있습니다! OSX 사용자가 Virtual Box를 통해 Internet Explorer에서 웹 사이트를 테스트하는 경우 (Windows 컴퓨터를 사용하지 않으려는 경우) 동일한 전략을 적용 할 수 있습니다. 이것은 OSX에서 Windows / IE 테스트 환경 만들기 에서 아름답게 설명되어 있습니다.


모바일 장치에서 로컬 호스트에 액세스 할 수도 있습니다

모바일 장치에서 로컬 호스트 웹 사이트에 액세스하는 방법이 궁금 할 수 있습니다. 경우에 따라 기기에서 호스트 파일 (iPhone, iPad ...)을 수정할 수없는 경우도 있습니다 (탈옥 제외).

그렇다면 해결책은 웹 사이트를 호스팅하는 컴퓨터에 프록시 서버를 설치하고 iPhone에서 해당 프록시에 연결하는 것입니다. 실제로 다음 게시물에서 잘 설명되어 있으며 설정하기가 그리 길지 않았습니다.

Mac에서는 다음을 권장합니다. 모바일 장치에서 로컬 호스트 이름을 사용하여 Mac OS X 웹 사이트 테스트 : SquidMan 을 프록시로 사용 . 100 % 무료 솔루션입니다. 일부 사람들은 Charles 를 프록시 서버로 사용할 수도 있지만 50 달러입니다.

Linux에서는 Squid 를 프록시 서버로 사용하여 위의 Mac OS 방식을 조정할 수 있습니다 .

Windows에서는 Fiddler 를 사용하여 그렇게 할 수 있습니다 . 솔루션은 다음 게시물에 설명되어 있습니다. Fiddler를 사용하여 iPhone 트래픽 모니터링


편집 23/11/2017 : 이봐 내 호스트 파일을 수정하고 싶지 않아

@ 드레 호스트 파일을 수동으로 편집하지 않고 다른 컴퓨터에서 웹 사이트에 액세스 할 수있는 방법이 있습니까? 웹 사이트에 액세스하려는 컴퓨터 100 대가 있다고 가정 해 보겠습니다.

이것은 흥미로운 질문이며 OP 질문과 관련되어 있으므로 도와 드리겠습니다.

모든 컴퓨터가 웹 사이트가 호스팅되는 위치를 알 수 있도록 네트워크를 변경해야합니다. 대부분의 일상적인 라우터는 그렇게하지 않으므로 네트워크에서 자체 DNS 서버 를 실행 해야합니다.

라우터 (192.168.1.1)가 있다고 가정 해 봅시다. 이 라우터에는 DHCP 서버가 있으며 네트워크의 100 대 컴퓨터에 IP 주소를 할당합니다.

이제 위와 동일하게 192.168.1.5웹 사이트가 있는 머신과 동일한 네트워크에 있다고 가정하겠습니다 . 우리는 그 기계를 부를 것입니다 pompei.

$ echo $HOSTNAME
pompei

이전과 동일하게 해당 컴퓨터 pompei는 웹 사이트를 제공 192.168.1.5하는 HTTP 서버 를 실행합니다 symfony.local.

모든 컴퓨터 symfony.local가 호스팅되고 있음을 알기 pompei위해서는 이제 네트워크에서 symfony.local호스팅되는 위치를 알고있는 사용자 지정 DNS 서버가 필요합니다 . 그러면 네트워크의 장치는 pompei내부적으로 제공되는 도메인 이름을 확인할 수 있습니다 .

간단한 3 단계.

Step 1: DNS Server

네트워크에서 DNS 서버를 설정하십시오. 의는 그것을 보자 pompei처럼 편리하고 사용 뭔가 하는 dnsmasq .

Dnsmasq는 DNS (Domain Name System) 전달자 , ...를 제공 합니다.

pompeiDNSmasq를 실행하여 DNS 요청을 처리 Hey, pompei, where is symfony.local하고 응답 하려고 합니다 Hey, sure think, it is on 192.168.1.5 but don't take my word for it.

dnsmasq를 설치하십시오. dnsmasq 구성 파일은 일반적으로 /etc/dnsmasq.conf환경 에 따라 다릅니다.

나는 개인적으로 no-resolv구글 서버를 사용 합니다 server=8.8.8.8 server=8.8.8.4.

* 참고 : * / etc / hosts 파일을 수정하면 변경 사항이 적용되지 않으므로 항상 DNSmasq를 다시 시작하십시오.

Step 2: Firewall

작동하려면 pompei들어오고 나가는 '도메인'패킷을 허용해야합니다.이 패킷은 포트 53에서 송수신됩니다. 물론! 이들은 DNS 패킷이며 pompei허용되지 않으면 DNS 서버에 전혀 도달 할 수 없습니다. 계속해서 그 포트 53을여십시오. 리눅스에서는 iptables이것을 고전적으로 사용 합니다.

내가 생각해 낸 것을 공유하지만 방화벽으로 뛰어 들어 모든 것을 잘 이해해야 할 것입니다.

#
# Allow outbound DNS port 53
#
 iptables -A INPUT -p tcp --dport 53 -j ACCEPT
 iptables -A INPUT -p udp --dport 53 -j ACCEPT

 iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT
 iptables -A OUTPUT -p udp --dport 53 -j ACCEPT

 iptables -A INPUT -p udp --sport 53 -j ACCEPT
 iptables -A INPUT -p tcp --sport 53 -j ACCEPT

 iptables -A OUTPUT -p tcp --sport 53 -j ACCEPT
 iptables -A OUTPUT -p udp --sport 53 -j ACCEPT

Step 3: Router

라우터에게 귀하의 DNS 서버가 192.168.1.5지금 켜져 있다고 알려주십시오 . 대부분의 경우 라우터에 로그인하여 매우 쉽게 수동으로 변경할 수 있습니다.

당신이 시스템에있는과를 요청하는 경우 즉, 그것 뿐이다 symfony.local그것은 당신의 요청합니다, DNS 서버symfony.local 호스팅을하고, 즉시이 DNS 서버로부터 응답을받은 것처럼, 다음 적절한 보내드립니다 HTTP 요청을pompei192.168.1.5.

나는 당신이 이것으로 연주하고 타고 즐길 수 있습니다. 이 두 단계는 기본 지침이므로 처음 수행하는 경우 몇 시간을 디버깅하고 소비해야합니다. 이것이 좀 더 고급 네트워킹이라고 가정하고 기본 DNS 서버, 보조 DNS 서버 등이 있습니다. 행운을 빕니다!


좋은 답변입니다. "Fiddler로 iPhone 트래픽 모니터링"에 도달 할 때까지 마지막 부분을 따라갔습니다. 피들러 홈페이지를 가리 킵니다. 이것은 링크 여야합니다 : conceptdev.blogspot.com/2009/01/…
helpse

호스트 파일을 수정했지만 문제는 IIS 서버가 실행 중이므로 "localhost"또는 "127.0.0.1"이 IIS 서버를 가리키고 있다는 것입니다. 어떻게 xamp 서버로 바꿀 수 있습니까?
Uzair Ali

1
@ host파일을 수동으로 편집하지 않으면 서 다른 컴퓨터에서 웹 사이트에 액세스 할 수있는 방법이 있습니까? 100 대의 컴퓨터가 웹 사이트에 접속하고 싶다고 가정 해 봅시다
Drenyl

1
@Dre 예, 모든 컴퓨터에서 웹 사이트가 호스팅되는 위치를 알 수 있도록 네트워크를 변경해야합니다. 답변 끝에 정보를 추가했습니다. 희망이 도움이됩니다.
Mick

1
훌륭한 설명!
목자

25

동일한 무선 및 인터넷에서 두 랩톱 모두에서 테스트하려면 http://localhost.run/ 또는 https://ngrok.com/ 과 같은 서비스를 사용할 수 있습니다


3
localhost.run은 매력처럼 작동했습니다. 내 서버는 포트 8000에서 실행 중이며 명령 줄을 80에서 8000으로 변경했습니다.
Isuru

3
와! 가장 최고 ... 정말 하나의 이동에서 근무 ... 감사 @tommyvn
Jabongg

로컬 호스트 파일을 업데이트하는 것보다 NGROK를 설정하는 것이 훨씬 쉽습니다. +1
BlackHatSamurai

빠른 테스트를위한 간편한 솔루션
shamila

15

두 시스템이 동일한 작업 그룹 cmd.exe에있는 경우 연결하려는 시스템을 열고 회선 ipconfig의 IP를 입력 하고 메모하십시오 IPv4 Address.

그런 다음 연결하려는 컴퓨터에서을 사용하십시오 http:// + the IP of the target machine.

그렇게해야합니다.


3
포트 80이 앱의 포트 (일반적으로) 인 경우 작동하지만 다른 포트를 사용할 수 있음을 명심하십시오. : // + 대상 시스템 +의 IP "port_number는"그건 HTTP 말 것
ggderas

이것은 내가 찾고있는 간단한 솔루션이었습니다. @Codrin Eugeniu : ggderas가 언급 한대로 ": PORT_NUMBER"제안을 답변에 포함시키는 것을 고려하십시오. 필자는 Apache Superset을 사용하여 포트 8088을 통해 연결할 때 이것이 필요했습니다.
Ohumeronen

8

Mac OS X의 경우 :

  1. 터미널 ifconfig | grep 192.에서 현재 네트워크에있는 시스템의 내부 IP를 얻으려면 실행 하십시오. 그것은 같은 것일 수 있습니다192.168.1.140

  2. 서버를 시작하십시오. 예를 들어, node server.js일부 포트에서 서버를 시작할 수 있습니다.

  3. 휴대 전화에서 192.168.1.140:3000서버가 실행중인 포트 나 다른 포트를 방문하십시오 .


6

내 컴퓨터에 대한 관리자 권한이없고 이미 nodejs가 설치되어 있기 때문에이 도구를 사용하면 많은 비용을 절약 할 수 있습니다. 어떤 이유로 든 네트워크의 구성으로 인해 브라우저에서 IP를 가리키는 다른 컴퓨터에 액세스 할 수 없습니다.

# Using a local.dev vhost
$ browser-sync start --proxy

# Using a local.dev vhost with PORT
$ browser-sync start --proxy local.dev:8001

# Using a localhost address
$ browser-sync start --proxy localhost:8001

# Using a localhost address in a sub-dir
$ browser-sync start --proxy localhost:8080/site1

http://www.browsersync.io/docs/command-line/


localhost : 3000에서 webapp를 실행합니다. browser-sync start --proxy localhost:3000별도의 쉘에 사용 했습니다. 네트워크에 연결된 다른 장치에서 다음을 입력합니다. ${computerIP}:3000그러나 아무것도 보이지 않습니다. 더 제공해야 할 것이 있다고 생각합니다.
벤 잉어

5

방화벽으로 인해 로컬 호스트의 웹 서버에 액세스하지 못할 수 있습니다.
필요한 경우 두 컴퓨터의 인터넷 보안 안티 바이러스 네트워크 보안 IP 주소를 안전한 IP 주소로 설정하십시오.
Windows PC의 IP 주소를 찾는 방법 : 시작> (실행) 입력 : cmd (Enter)
(이것은 블랙 박스 명령 프롬프트를 엽니 다)
ipconfig 입력 (Enter)
Apache 또는 IIS 웹 서버가 PC에 설치되어 있다고 가정합니다 : 192.168.0.3
이고 랩톱으로 웹 서버에 액세스하려고합니다. (노트북의 IP는 192.168.0.5입니다.)
PC에서 웹 서버의 데이터에 액세스하려면 Firefox 또는 Internet Eplorer 브라우저에 http : // localhost /를 입력하십시오.
랩톱에서 http://192.168.0.3/을 입력하여 PC의 웹 서버에 액세스하십시오.

이 모든 것들이 작동하려면 웹 서버 (예 : IIS, Apache, XAMP, WAMP 등)를 올바르게 설치해야합니다.

작동하지 않으면 랩톱에서 PC를 핑 (Ping)하십시오. 랩톱에서
명령 propmt를 엽니 다. 시작> cmd (Enter)
ping 192.168.1.3 (Enter)
핑에 실패하면 방화벽이 연결 또는 네트워크를 차단합니다 케이블 연결에 결함이 있습니다. 모뎀 또는 네트워크 스위치와 기기를 다시 시작하십시오.
포트를 사용중인 채팅 프로그램과 같은 프로그램을 닫습니다.
http : 192.168.0.3 : 80 또는 http : 192.168.0.3 : 81 또는 끝에 임의의 숫자와 같은 다른 포트 번호를 사용해 볼 수도 있습니다.


1
tou @KarlosFontana에게 감사합니다-방금 내 질문에 대답했습니다. 데스크탑에 쓴 서버에 iPhone을 연결하는 데 문제가있었습니다. iPhone이 PC의 WiFi에 연결되었습니다. 마지막 줄이 내 질문에 답했습니다 :-)
Tommy

4

위의 단계를 수행 한 후에도 여전히 다른 장치에서 로컬 호스트에 액세스 할 수없는 경우 참고 사항입니다. 이것은 apache ports.conf가 외부가 아닌 로컬 (127.0.0.1)을 제공하도록 구성 되었기 때문일 수 있습니다.

다음을 확인하십시오 (ubuntu apache2의 경우).

  $ cat /etc/apache2/ports.conf

다음이 설정되면

NameVirtualHost *:80  
Listen 127.0.0.1:80  

그런 다음 기본값으로 다시 변경하십시오.

NameVirtualHost *:80  
Listen 80  

0

Windows를 사용하는 경우 ipconfig 를 사용 하여 로컬 IPv4 주소를 가져온 다음 Apache 구성 파일 아래에 httpd.conf 를 지정하십시오 .

Listen: 10.20.30.40:80

Apache 서버를 다시 시작하고 네트워크의 다른 컴퓨터에서 테스트하십시오.

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