Ubuntu 14.04.4 LTS를 실행하는 PC가 있습니다. Teamspeak와 Minecraft 서버는 물론 웹사이트를 호스팅하는 데 사용합니다.
하위 도메인이 올바른 서비스만 가리키도록 하려고 합니다. 예를 들어
사용은 (CP 패널)
panel.example.com
만 가리킵니다 .https://localhost:8000
A 레코드 대신 DNS URL 리디렉션을 사용하여 CP 패널을 깔끔하게 관리했습니다.
사용은 (Minecraft 서버) mc.example.com
만 가리킵니다 .localhost:25565
(Teamspeak 서버) ts.example.com
만 가리킵니다 .localhost:9987
사용은 웹사이트( ) example.com
만 가리킵니다 .example.com/forums /index.php
나는 적어도 다음을 사용하여 웹 브라우저를 통해 이루어진 연결에 대해 이 작업을 수행했습니다 httpd.conf
.
<VirtualHost *:80>
ServerName mc.example.com
redirect / localhost:25565
</VirtualHost>
<VirtualHost *:80>
ServerName ts.example.com
redirect / localhost:9987
</VirtualHost>
하지만 이것은 웹 브라우저의 연결에만 작동합니다. 하위 도메인이나 도메인 이름을 사용하여 Teamspeak에 연결하려고 하면 계속 연결됩니다...
이것은 아마도 쓸모가 없으며 도메인 이름만 사용해야 하지만 몇 가지 정렬을 수행하고 싶습니다.
가능합니까?
내가 이해한 바로는 이것이 IPTable과 관련이 있을 수 있지만 솔직히 잘 모르겠습니다. 이 같은?
iptables coming from any ip:25565 to anything else than localhost:25565 Drop
iptables coming from any ip:9987 to anything else than localhost:9987 Drop
iptables coming from any ip:80 to anything else than localhost:80/8000 Drop
내가 맞나요?
답변1
생성한 IPTABLE 규칙은 모든 트래픽을 거부하고 삭제합니다. 그 아파치 규칙도 쓸모가 없습니다.
원하는 것을 달성하는 유일한 방법은 Linux 서버에 3개의 가상 네트워크 어댑터를 추가하는 것입니다. 그러면 각 어댑터가 유효한 외부 IP 주소를 갖게 됩니다. 각 도메인 이름이 4개의 IP 주소 중 하나를 가리키도록 DNS를 구성할 수 있습니다.
Minecraft는 externalIp1:25565에 바인딩되어야 하고, Teamspeak는 externalIP2:9987에 바인딩되어야 하며, CPannel은 externalIP3에 바인딩되어야 하며, 마지막으로 Apache는 externalIP4:80에 바인딩되어야 합니다.
"바인드"라고 말하면 애플리케이션이 IP(대부분 애플리케이션의 기본 동작)가 아닌 특정 IP를 수신하도록 구성되어야 한다는 의미입니다.