私はホスト名を自分のIPアドレスに関連付けることができることを知っています/etc/hosts
。
1.2.3.4 foo
たとえば、tcpdump
出力にfoo
私のIPアドレスの代わりに表示されます(-n
使用されていない場合)。
IP -> hostname
実際にファイルを編集せずにコマンドラインからこれらのマッピングを一時的に追加できますか?
Wi-Fiに接続してランダムなIPを取得したとしましょう。私はこのIPをtcpdumpの私のホスト名で解決したいと思います。今回のセッション(項目を永久に追加する必要はありません/etc/hosts
。
修正する:
私の質問とタイトルが明確でない場合は、修正せずにこれを行う方法を探しています/etc/hosts
。
hostname
編集なしで現在のセッション(つまり、次の再起動まで)のホスト名を設定するコマンドを使用できるように、変更なしで現在のセッション(つまり次の再起動/etc/hostname
まで)のリバースルックアップを設定しようとしています/etc/hosts
。
ベストアンサー1
Cライブラリのホスト名解決サービス(ホスト名解決が必要なほとんどすべてのソフトウェアで使用されます)は、hosts:
主にファイルの行によって制御されます/etc/nsswitch.conf
。この行の各キーワードはlibnss_*.so
そのライブラリをロードし、最終的にアプリケーションのホスト名解決要求を処理します。
ディストリビューションにというパッケージ(またはライブラリを提供するnss-myhostname
他のパッケージ)が含まれている場合は、そのパッケージをインストールして行に追加すると、ライブラリは自動的にローカルに設定されたシステムホスト名をすべてのIPアドレスに関連付けます。システムにネットワークインターフェイスを設定しました。この構成では、接続を更新するためにコマンドを実行する必要はありません。すべての操作が自動的に実行されます。システムにIPアドレスがまったく設定されていない場合、ローカルホスト名もIPアドレス127.0.0.2(およびIPv6アドレス::1)に関連付けられます。libnss_myhostname.so.*
myhostname
hosts:
nsswitch.conf
hosts:
行にnsswitch.conf
キーワードが含まれている場合、または行に行がresolve
ある/etc/resolv.conf
場合は、DNSリゾルバーをnameserver 127.0.0.53
使用しています。systemd-resolved
これは、ローカルホスト名とローカルに設定されたIPアドレスと同様の自動相関を提供しますlibnss_myhostname
(上記参照)。これが発生した場合は、man systemd-resolved
セクションを参照してお読みくださいSYNTHETIC RECORDS
。また、オプションのmDNS(以下を参照)およびLLMNR(Link Local Multicast Name Resolver / Responder)機能も含まれており、ロータリー方式でローカルホスト名解決を提供することもできます。
hosts:
回線にnsswitch.conf
マルチキャストDNS(mDNS)を使用できるホスト名解決サービスが含まれている場合mdns4_minimal
そしてシステムには、ローカルシステムのIPアドレスをavahi-daemon
自動的に確認できるmDNSレスポンダ(例:)が含まれており、その逆も同様です。<hostname>.local
hosts:
行にnsswitch.conf
異なるオプションが含まれている場合、またはディストリビューションが異なるライブラリを提供している場合は、ディストリビューションを指定していないため、そのlibnss_*.so
オプションが提供する機能を直接調査する必要があります。
hosts:
行にnsswitch.conf
クラシックfiles
とdns
キーワードのみが含まれている場合または現在、ローカルネットワークインターフェイスに設定されていないIPアドレス(たとえば、他のホストのIPアドレス名)に名前を割り当てる必要があります。次に、次の方法を参照してください。マーカス・ミュラーの答え。
これらの答えのどれも効果がなければ「いいえ、要求された機能はありません。しかし、プログラミング技術があれば直接実装するのに邪魔になることはありません」と答えることになりそうです。上記の可能なアプローチとMarcus Müllerの答えでは、このリストは自分のソリューションに接続するために使用できるインターフェイスのアイデアを提供する必要があります。