2013-07-27 1 views
1

최근 공공 IP가있는 클라우드 서버를 구입했으며 이것을 xmpp 서버를 호스트하는 데 사용하고 있습니다.ejabberd와 함께/fake 도메인 사용하기

내 첫 번째 작업은 내 하위 도메인을 사용하여 사용자를 연결하는 것입니다 (예 : m.chat.com).

%% Hostname 
{hosts, ["m.chat.com"]}. 

나는 그 도메인과 관리자 사용자를 만들어 내 구성에서

나는 다음 있습니다.

는 parrellel에서 나는 나를 ejabberd 웹 관리 콘솔에 액세스 할 수있는 나의 능력이었다 의아해

Name    TTL Class Type Record 
m.chat.com  14400 IN  A  [IP of the server] 

것은 내 하위 도메인 m.chat.com에 대해 다음 DNS 내 호스트 공급자 기록, Hostgator의를 만들었습니다. 이것은 다음을 통해 이루어졌습니다 : [서버의 IP] : 5280/admin 그러나 m.chat.com:5280/admin을 통해 액세스 할 수 없습니다.

웹 콘솔에서 "Virtual Hosts" 호스트 "m.chat.com"을 참조하십시오. 사용자 "[email protected]"을 생성하고 Adium을 통해 연결을 시도했습니다.

Adium 내부에서는 암호가있는 [email protected]을 입력하기 만하면 작동하지 않습니다. 대신이 경우 "서버의 IP"인 "Connect 서버"도 지정해야했습니다.

잘 연결되어 있고 모든 사용자가 다른 사용자를 등록했는지 확인하고 있습니다.

그런 다음 나는 ejabberd 구성으로 돌아가서 어지럽게 시작한다고 생각했습니다. 다음과 같이 호스트 이름을 변경했습니다.

%% Hostname 
{hosts, ["m.chat.com", "facebook.com"]}. 

해당 도메인의 사용자를 등록하고 ejabberd를 다시 시작했습니다. 놀랍게도 웹 콘솔을 확인하자 가상 호스트 "facebook.com"을 볼 수있었습니다. "Connect server"섹션에 정의 된 [IP 서버의 IP]로 Adium에서이 사용자를 테스트했으며 제대로 연결되었습니다. 나는 자신의 PC에서이 계정을 사용하기 위해 다른 사람들에게 인터넷 연결을 요청했고 그들은 연결할 수도있었습니다.

스토리 이상 - 내 질문에 모두에게 이것이 가능합니까? 내가 놓친 게 있니? 도메인 인증이 없는지 여부. 온라인으로 검색 한 후에도 가짜 도메인을 사용할 수 있습니다.

앞으로 내 서비스 (iOS 채팅 앱)를 사용하려는 경우 자신의 공용 서버에서 내 도메인 이름을 사용하는 사람을 원하지 않습니다.

누군가가 빛을 낼 수 있습니까?

감사합니다.

편집 : 두 번째 질문 - 클라이언트를 사용할 때 "Connect Server"를 정의하지 않는 것이 바람직합니다. 클라이언트가 @ m.chat.com 도메인을 인식하고 서버 IP에 자동으로 연결되도록하고 싶습니다. 내 DNS 레코드를 올바르게 구성 했습니까? Hostgator를 사용하는 다른 사용자에게는 내가해야하는 추가 작업이 있습니까?

편집 : 이제 m.chat.com:5280/admin을 통해 웹 콘솔에 액세스 할 수 있으며 더 이상 클라이언트를 사용할 때 Connect 서버를 지정할 필요가 없습니다. 나는 아무것도하지 못했습니다. DNS 또는 다른 것을 업데이트하는 Hostgater의 사례라고 생각합니다. 대개 4 시간이 걸립니다. 그러나 나는 facebook.com 도메인으로 계정을 만들 수있는 이유에 대해 여전히 약간 당황 스럽다.이 도메인의 DNS 관리자에 액세스 할 수 없기 때문에 레코드를 만들 수는 없지만 도메인을 사용하고 Connect 서버를 지정하는 것을 방지하지는 못합니다.

답변

0

초기 문제 (m.chat.com을 사용하여 서버에 액세스 할 수 없음)는 거의 확실하게 DNS 문제였으며 레코드를 업데이트하는 데 걸리는 시간까지는 격리되어있는 것 같습니다.

두 번째 질문 - 제한없이 가상 호스트를 지정할 수 있다는 사실에 관해서는 간단하지만 흥미 롭습니다. 어떠한 제약이 있어야한다고 생각하니? 내 디스크의 파일에 "m.chat.com"을 저장할 수 없거나 인터넷을 통해 "m.chat.com"을 보낼 수 없다는 내용의 명령입니다.

이것은 DNS가 존재하는 이유이며 DNS가있는 방식입니다. 서버에 facebook.com이라는 호스트가 있다고 말할 수는 있지만 facebook.com의 DNS 레코드가 내 서버를 가리 키지 않기 때문에 아무도 연결하지 않습니다 (일반적으로 사용자는 "호스트 연결"을 수동으로 설정하지 않습니다). 어떤 질문을 ... 왜 내 서버에 호스트 facebook.com을 말하고 싶습니다, 그리고 만약 내가 그랬다면, 왜 페이 스북 케어해야합니까?

DNS 위에 추가로 관련성이 높은 ID 계층은 인증서입니다. 클라이언트는 "호스트 연결"설정에도 불구하고 가상 호스트 이름을 확인해야합니다. facebook.com에 대한 인증서를 가질 수 없으므로 클라이언트는 일반적으로 경고를 팝업하거나 전혀 연결하지 않아야합니다. 그렇지 않은 경우 인증서를 올바르게 확인하지 못하고있는 것입니다.