接続されたネットワークでホスト名を条件付きで解決する方法は?

接続されたネットワークでホスト名を条件付きで解決する方法は?

私は小さなホームサーバーを持っていて、ラップトップのプログラムがLANとWANの両方からアクセスできるようにしたいです。これを達成する最もきれいな方法は、カスタムホスト名を定義し、接続されているネットワークによって異なる方法で解決することです。

つまり、ホスト名を解決できますか?XIPアドレスへネットワークに接続した場合金持ちとIPアドレス第二そうでなければ?

私はnetctlネットワーク管理者としてArch Linuxを使用しています。私が望むことを達成する方法は、ネットワーク設定ファイルにフックを設定することです。金持ちどういうわけかホストファイルを変更しますが、後者の実行方法がわかりません。

もちろん、より良い解決策も聞きたいです。

ベストアンサー1

私はこの問題をdnsmasq。質問の例に従って、dnsmasqノートブックにDNSキャッシュを設定した後に実行した操作は次のとおりです。

  1. ディレクトリの作成/etc/hosts.d

  2. 次のスクリプトを入れて/etc/netctl/X/実行可能にします。

 #!/bin/sh
 # /etc/netctl/X/X_local.sh
 echo 'A X' > /etc/hosts.d/X
 chmod 744 /etc/hosts.d/X
 #!/bin/sh
 # /etc/netctl/X/X_remote.sh
 echo 'B X' > /etc/hosts.d/X
 chmod 744 /etc/hosts.d/X
  1. ネットワーク構成ファイルに次の行を追加します。/etc/netctl/Foo
 ExecUpPost=/etc/netctl/X/X_local.sh
 ExecDownPre=/etc/netctl/X/X_remote.sh
  1. addn-hosts=/etc/hosts.dに追加する/etc/dnsmasq.conf

これは、オプションがディレクトリ内の追加のホスト名接続を検索するように指示するaddn-hostsために機能します。dnsmasq/etc/hosts.d

おすすめ記事