SRVレコードに必要なサービス名をどのように知ることができますか?

SRVレコードに必要なサービス名をどのように知ることができますか?

私はLinuxに初めて触れたので、私の質問は次のとおりです。 SRVレコード(ポート転送)に必要なサービス名を見つけるためのコマンドや他の方法(インターネット検索を除く)はありますか?私はTeamspeak3のミュージックボット(Sinusbot)を使用しており、bot.mydomain.comを介してボットにアクセスしたいと思います。一般的なアクセス方法はmydomain.com:8087です。意味:「_ts3」、「_minecraft」などのようなものが必要ですが、可能であればコマンドで見つける必要があります)

答え1

DNS SRVレコードは、定義されたサービスエンドポイントを公開する方法です。クライアントは定義されたDNSラベルを検索してサービスを見つけることができます。

ここでの鍵は、登録されているか、少なくともサービスユーザーとプロバイダーの間でよく知られている「定義」です。サービスを実行するプロセスの名前を決定することは関係がないことを願っています。リッスンしているポートを知ることは重要であり、lsofコメントに提供されている参照 nick064 を使用して見つけることができます。 Linuxでリスンポートを決定するときにより一般的に使用されるのはまたnetstat -ltunp | grep ${processname}はですss -ltunp | grep ${processname}。 (${processname} は興味のある実際の名前です。)

サービスを実行するアプリケーションまたはプログラムの名前は、公開されたサービスラベルと同じである必要はありません。さまざまなプログラムが異なる環境で同じサービスを提供でき、DNSラベルという意味で同じサービス名に関連付けることができます。

各オペレータが同じサービスに対して異なるラベルを選択すると、クライアントがDNSで何を見つけるべきかわからないため、DNS SRVレコードは本質的に役に立たなくなります。

Garethが述べたように、IANAは登録されたサービスのリスト(インターネットの意味で)を維持します。その中には、接続されたDNS SRVタグが定義されています。このリストは、共通サービスをIETF RFCに便利にマッピングしたものです。 Teamspeakはこのリストにはありません。つまり、DNSラベルが何であるかを調べるには、使用しているサービスのユーザーコミュニティに連絡する必要があります。

RFC 3263、セクション4.2例を参考にしてください。

答え2

以下を使用してすべてのサービスを見つけることができます。

service --status-all

これをgrepして表示されたリストから検索できます。

service --status-all | grep pattern

この場合、特定のプロセスを見つける必要があるかもしれません。

ps aux | grep pattern

たとえば、次のようにします。ps aux | grep "_ts3"

関連情報