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
私は少なくとも次のようにWebブラウザを介して行われた接続に対してこれを行いましたhttpd.conf
。
<VirtualHost *:80>
ServerName mc.example.com
redirect / localhost:25565
</VirtualHost>
<VirtualHost *:80>
ServerName ts.example.com
redirect / localhost:9987
</VirtualHost>
しかし、これはWebブラウザの接続でのみ機能します。サブドメインまたはドメイン名を使用して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ルールは、すべてのトラフィックを拒否して削除します。そのApacheルールも役に立ちません。
必要なものを達成する唯一の方法は、Linuxサーバーに3つの仮想ネットワークアダプタを追加することです。これにより、各アダプタに有効な外部IPアドレスがあります。各ドメイン名が4つのIPアドレスのいずれかを指すようにDNSを設定できます。
MinecraftはexternalIp1:25565にバインドし、TeamspeakはexternalIP2:9987にバインドし、CPannelはexternalIP3にバインドし、最後にApacheはexternalIP4:80にバインドする必要があります。
「バインド」とは、アプリケーションがIP(ほとんどのアプリケーションのデフォルト動作)ではなく特定のIPを受信するように設定する必要があることを意味します。