포트를 사용하여 호스트 이름을 로컬 호스트로-OSX [닫기]


14

Node.js내 컴퓨터에서 로컬로 여러 웹 서버 를 실행하려고 합니다.

내가 쓰고있는 코드는 도메인 이름을 참조해야하기 때문에 관례를 지키고 dev.myHost.com노드에서 실행되는 비 포트 80 서비스를 가리키고 싶습니다 (기술적으로는 하나에서 하나를 실행 Harp.j하고 있습니다 Sails.js).

  • 따라서 dev.hostOne.com가리켜 야합니다localhost:123
  • 그리고 dev.hostTwo.com가리켜 야한다localhost:456

이게 가능해? 그렇다면 어떻게하십시오.

답변:


23

내 이해에 따르면 하나의 로컬 개발 컴퓨터 만 사용하는 것으로 보입니다 .DNS를 제공하는 네트워크에 연결되어 있지 않음을 의미합니다.

내가 옳다면 아래에 설명 된 것과 같은 것을 설정하는 것이 좋습니다.

1 단계 : MAC OS에 하나 이상의 IP 주소를 할당합니다 (도메인 당 하나).

192.168.0.10
192.168.0.11

두 번째 IP를 설정하려면 두 번째 이더넷 어댑터 (논리적 아님)를 추가해야합니다.

2 단계 : DNS 서버가 없으므로 /etc/hosts다음을 추가 하여 파일을 설정할 수 있습니다.

192.168.0.10     dev.hostone.com
192.168.0.11     dev.hosttwo.com

3 단계 : 루프백 인터페이스에 별명 지정 :

sudo ifconfig lo0 192.168.0.10 alias
sudo ifconfig lo0 192.168.0.11 alias

4 단계 :ipfw 패킷을 전달하도록 설정

sudo ipfw add fwd 127.0.0.1,123 tcp from me to 192.168.0.10 dst-port 80
sudo ipfw add fwd 127.0.0.1,456 tcp from me to 192.168.0.11 dst-port 80

끝났습니다!

지금 :

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


Node.js귀하의 사례를 테스트하기 위해 두 개의 웹 서버를 설정했습니다 .

$ netstat -anp tcp | grep -E "123|456"
tcp4    0    0  127.0.0.1:123    *.*    LISTEN
tcp4    0    0  127.0.0.1:456    *.*    LISTEN

중요 : 주의 ipfw규칙과 루프백 인터페이스의 별명이 지속되지 않습니다 더 이상 재부팅 후 존재하지 않습니다. 시작 스크립트를 추가해보십시오.


1
아름답게 일했습니다. 이것은 내가 원하는 것입니다.
mondo 2013

1
다행입니다! 나는 그것이 완전히 "중복"이 아니라고 확신했다;)
krisFR

Mac OS에서 시에라 sudo : ipfw : 명령을 찾을 수 없음
ClintM

3
@ClintM : ipfw로 대체되었습니다 pfctl. 포트를 여는 방법의 예 : gauravsohoni.wordpress.com/2015/04/14/mac-osx-open-port
Joe Atzberger

pfctl 예상 형식으로 답변을 업데이트하는 것이 정말 좋습니다.
사이먼
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.