web-dev-qa-db-ja.com

Linuxでホスト名にエイリアスを付けることはできますか?

Linuxでホスト名にエイリアスを付けることはできますか?

次のように、jmillikinからさまざまなUbuntuフォーラムで質問されています。


ホスト名エイリアスを作成することは可能ですか?/ etc/hostsのようなものですが、IPアドレスではなく他のホスト名を使用します。そのため、このようなファイルを使用すると、pingを実行できます「fakehost1」。「realhost」に再マッピングされ、「realhost」はIPアドレスに解決されます。

# Real Host        # Aliases
realhost           fakehost1 fakehost2 fakehost3

誰かがsshについて回答しましたが、pingなどについては回答していません。私の主な目的は、それを Subversion サーバーのエイリアスとして使用することです。私の場合、realhostは動的IPアドレスの下にあります。そのため、「/ etc/hosts」エイリアスは機能しません。 svn://my_svnserver/my_reposではなくsvn://realhost/my_reposとしてSubversionサーバーにアクセスしたい。

91
user10178

フォーラムにアカウントを持っていない(またはログインしたくない)場合:

主な問題がpingではなくsshである場合は、次のような行を追加して〜/ .ssh/configを作成/編集できます。

Host fakehost1
  Hostname real-hostname

Host fakehost2
  Hostname real-hostname2

Host fakehost3
  Hostname real-hostname3

Linuxは、HOSTALIASES環境変数を設定することでエイリアスをサポートしています。

echo "fakehost realhost" > /etc/Host.aliases
echo "export HOSTALIASES=/etc/Host.aliases" >> /etc/profile
. /etc/profile

次にできます

ping fakehost

N.B. pingを実行するには、これをrootとしてセットアップする必要がありますが、そのユーザーとして実行されるアプリケーションの場合は、どのユーザーとしても実行できます。ルートにsuidsをpingします。

32
teknopaul

DNSサーバーでこれを設定できます。CNAMEレコードを使用すると、マシンを複数のホスト名で認識できます。したがって、そのようなDNSサーバーにCNAMEレコードを追加します。


fakehost1 IN CNAME realhost 
fakehost2 IN CNAME realhost 
fakehost3 IN CNAME realhost 
25
Ali Mezgani

私はよく環境変数を使ってこれを行います。これはコマンドラインでのみ機能することはわかっていますが、ホスト名のエイリアスを切望することがよくあります(私はいくつかのスーパーコンピュータアカウントで作業し、すべてが長いURLで作業していました)。 BASHを使用している場合の例を次に示します。 〜/ .bashrc:

export fakehost = "long.ass.annoying.url.org"

次に、新しいシェルで:

ssh christopher @ $ fakehost

18
Christopher

これを行う唯一の方法は、独自のローカルDNSサーバーがある場合です。

11
theotherreceive

現在のIPアドレスをホスト名にマップするdyndnsサーバーが必要です。ログインするたびに、現在のIPアドレスをこのサーバーに通知し、ホスト名レコードを更新します。

5
Sven

/etc/hosts.aliasesの使用は、バインドリゾルバーライブラリの標準機能です。/etc/hostsにエントリを追加するよりも堅牢で、DNSにCNAMESを追加できない場合(アクセスできない場合)に使用できます。

一般に、ベストプラクティスは、/ etc/resolv.confで定義された適切なSEARCHを使用してDNSでCNAMESを使用することです。

/ etc/hostsの更新は、エントリをIPの変更と同期させる必要があるため、それほど堅牢ではありません。これが実際に機能するのは、小規模な場合、またはネームサービスを使用してホストマップを配布する場合(LDAPなど)のみです。

別の解決策はDNSMasqかもしれません http://en.wikipedia.org/wiki/Dnsmasq

5
Tom Hallam