2017-12-31 239 views
1

도메인 이름은 ovh.com에 등록되어 있습니다. domain.com이라고 가정 해 봅시다.동일한 IP이지만 다른 포트를 가리키는 하위 도메인 추가

이 도메인은 내 라우터의 공용 IP를 가리키고 있습니다. 그런 다음 내 라우터의 https 포트 443을 내 서버 포트 443으로 리디렉션합니다. 따라서 domain.com으로 이동하면 내 서버 : 443으로 리디렉션됩니다.

정확하게 말하면 domain.com은 라우터의 공용 IP로 리디렉션됩니다. 예를 들어 그래픽 데이터베이스 관리자를 사용하는 경우 서버 주소가 domain.com : [SGBD 포트]라고 말할 수 있으며 작동합니다.

하지만 내 모든 응용 프로그램은이 동일한 서버에서 실행됩니다. 보안을 좀 더 추가하려면 모든 프로토콜에 일반 포트를 사용하지 않습니다. 그래서 내 포트는 다음과 같다 가정 해 봅시다 :

  • 자식 : 50000
  • SGBD : 55000
  • 클라우드 : 60000
  • 웹 사이트 65000

및 몇몇 다른 사람, 예를 들어, 일부 TCP 포트 40000에서 50000 사이.

내 자식 및 내 클라우드에는 domain.com:50000 또는 domain.com:600을 입력하여 액세스 할 수있는 그래픽 관리자가 있습니다. 00 어디서나 내 웹 브라우저에서. 내 모든 소프트웨어에 동일한 URL을 사용합니다. 내 자식 클라이언트는 domain.com:50000, 데이터베이스 클라이언트는 domain.com:55000입니다.

이 방법은 완벽하게 작동되지만 저 짜증나는이 문제가 있습니다

첫 번째는 내 응용 프로그램을 사용하기 쉬운의 모든 사람에게 포트 번호를 알려해야한다는 것입니다가. 그러나 나는 조금 더 많은 보안을 위해 일반적인 포트 번호를 사용하지 않기 때문에 모든 사람들과이 번호를 공유하고 싶지는 않습니다.

두 번째 문제가 더 중요합니다. 내가 직장에있을 때와 같이 방화벽이 내가 사용하고있는 포트 번호를 차단하고있을 가능성이 있습니다. 따라서 내 개인 자식은 액세스 할 수 없으며 내 클라우드 등에 대해서도 마찬가지입니다.

이러한 문제를 해결하기 위해 내 도메인에 하위 도메인을 추가하고이 하위 도메인을 다른 포트로 리디렉션하고 싶습니다.

  • 웹 사이트 : 예를 들어 domain.com:65000
  • git.domain.com ==> domain.com:50000
  • SGBD.domain.com ==> domain.com:55000
  • cloud.domain.com ==> domain.com:60000
  • 내 브라우저에서 git.domain.com 입력 할 수있는이 솔루션은 HTTPS로 통신을 시작하는 내 마음에 그래서

은 (HTTPS 포트입니다 거의 차단되지 않음), OVH에서 내 라우터의 포트 50000으로 리다이렉트하면 라우터가 리다이렉트한다. 내 서버의 자식 포트.

하지만 분명히 이것은 진실 인 것이 좋을 것입니다.

하위 도메인을 만들 때 (적어도 OVH에서는) 포트를 지정할 수 없습니다. 그래서 설정할 수 없습니다. git.domain.com은 myRouterIp : 50000으로 리디렉션되지만 myRouterIp로만 리디렉션됩니다. 그래서 웹 브라우저에서 git.domain을 입력하십시오.com이 myRouterIp : 443으로 리디렉션됩니다. myRouterIp : 443은 이미 내 웹 사이트에서 가져온 것입니다.

저는 약간 혼란 스럽습니다. 애플리케이션마다 공용 IP가 다른 라우터 하나를 구입 한 다음 다른 라우터를 가리키는 모든 하위 도메인을 하위 도메인으로 지정해야합니까? 거의 우스꽝 스럽다. 내가 어떻게 해결할 수 있다고 생각하니?

+0

모든 하위 도메인 응용 프로그램이 http 프로토콜을 통해 실행되고 있습니까? –

+0

최소한 웹 사이트, git 및 클라우드. sgbd 및 tcp 포트가 아니거나 ssh, ftp 등이 아닙니다. –

답변

1

정확하게 알았으므로 DNS 콘솔에서 포트를 지정할 수 없습니다. 그 이유는 DNS가 포트를 신경 쓰지 않기 때문입니다. 유일한 목적은 호스트 이름을 IP 주소로 해석하는 것입니다.

또 다른 중요한 점은 라우터 (/ http)가 아닌 응용 프로그램 클라이언트는 라우터/서버에 연결을 시작하기 전에 친절한 호스트 이름을 사용하여 해당 이름을 IP 주소로 확인한 다음 해당 IP 주소를 사용한다는 것입니다 라우터/서버와 통신하기위한 것입니다. 즉, 요청이 라우터/서버의 포트에 도달하면 라우터/서버가 처음에 어떤 호스트 이름을 사용했는지 확인할 방법이 없습니다. 드문 경우지만 브라우저가 요청한 호스트 이름을 항상 Host HTTP 헤더로 보내는 HTTP입니다. 즉, 은 동일한 포트 (예 : 공유 웹 호스팅의 작동 방식)에서 하나의 IP 주소로 여러 웹 사이트를 실행할 수 있음을 의미합니다. 이것을 설정하는 것은 매우 간단해야하지만, 아마도 범위 외이므로 SF 또는 SU을 사용해보십시오.

기타 (HTTP 서비스가 아닌) 경우 유일한 해결책은 다른 포트 (이미 수행 한 포트)에서 실행하거나 여러 개의 공용 IP 주소 (ISP에서 얻기 어려울 수 있음)를 사용하는 것입니다. 또한 일부 기본 포트가 아닌 임의의 포트에서 비 http 서비스를 실행하면 (사용자에게 포트 번호를 알려주는 경우) 각각의 기본 포트에서 실행하는 것보다 훨씬 안전 할 수 있습니다.

유스 케이스에 따라 다른 가능한 솔루션은 보안 VPN을 사용하여 로컬 네트워크에 사용자를 연결 한 다음 서비스에 액세스 할 수있게하는 것입니다 (다른 개인 IP 주소 및 포트).

+0

이 분명한 답변을 보내 주셔서 감사합니다. htaccess 또는 httpd.conf 파일에 대해 들었습니다. 하나의 IP에서 여러 웹 사이트를 실행할 수있는 솔루션입니까? 또한이 도구로 SSL 인증을 설정할 수 있습니다. 따라서 비 http 서비스의 경우 differents 포트가 솔루션입니다. 그것은 내가 직장에서 내 자식/클라우드에 액세스 할 수 없다는 것을 의미합니까? –

+1

예. 하나의 웹 사이트에서 여러 웹 사이트를 실행하는 것은 httpd.conf (Apache 웹 서버), google 'apache 가상 호스트 구성'에서 구성 할 수 있습니다. 비 http 서비스의 경우 VPN을 조사하십시오. SSL 설정을 위해서는 https://superuser.com이 더 좋은 질문이 될 수 있습니다. –