IPの代わりに/etc/hostsのファイルへの参照を使用してください。

IPの代わりに/etc/hostsのファイルへの参照を使用してください。

私のホスト(hostname)からインターネット経由でホスト名(hostname)の外部ホストに接続したいとlocalhost思います。exthostパブリックIPアドレスはexthostインターネットプロバイダによって動的に割り当てられます。

私の言葉は、exthost常にその名前を使用し、プロバイダが割り当てた値(変更される可能性があります)に基づいてその名前を実際のIPアドレスにマッピングすることです。

この目的のために、/etc/hosts接続された回線を正しく更新するIPアドレス値を使用したいと思いますexthost

たとえば、/etc/hostsLinuxの行は次のようになります。

<ip_address>    exthost.domain     exthost

私はUbuntu 18.04を使用していますが、これは確かに他のディストリビューション/ Unixシリーズシステムにも当てはまります。

この目的のためにのみDNS(および時には無料サービスではなく動的DNS)を設定せずにこれを実行できますか?

<ip_address>たとえば、明示的なIPではなく文字列として必要なIPのみを含む他のファイルへの参照を使用できますか?これにより、ユーザーは異なる可能性のあるIP値に基づいてファイルにアクセスして変更できます。


メモ:この問題ローカルマシンに関するものなので、状況が違うようです。私は外部ホストに言及しています。

答え1

カスタムホストファイルが存在しないLinuxでは、HOSTALIASESを使用して正式名を処理できます。

あなたの質問に正しく答えたら、ダイナミックDNSサービス(DynDNSやNo-IPなど)を使用して、ISPに常に正しいパブリックIPアドレスを割り当てさせることができます。

exthostその後、HOSTSALIASESを使用して動的DNSサービスによって提供されるFQDN名にマッピングできます。

HOSTALIASES値をエクスポートし、ファイルexport HOSTALIASES=~/.hostsに次の行を追加して、exthostをno-ipが提供するFDQN名にマップします。~/.hosts

exthost yourname.no-ip.org

HOSTALIASES は、IP ではなく正規名に対してのみ機能します。したがって、FQDN名を取得するには動的DNSサービスを使用する必要がありますが、そのFQDNを使用してHOSTALIASESを完全にスキップできます。

/etc/hosts一部のDNSサービスを設定したり、リモートサイトにスクリプトを作成して常にパブリックIPを送信したり、ローカルファイルでそのIPを変更しないとこれを行うことはできません。

別のオプションは、ユーザーに変更権限を付与するか、chroot環境でユーザーを設定し、/etc/hostschroot環境で独自のファイルを提供することです。/etc/hosts

答え2

私の/ etc / hosts:

127.0.0.1   localhost
127.0.1.1   *some-host*

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

だから:

sudo nano /etc/hosts

行を追加します。

IPOFEXTHOST   exthost

ここで、IPOFEXTHOSTは既知のexthostのIPです。

この時点から、exthostを含む行を置き換えてファイルを更新するスクリプトを作成できます。それにもかかわらず、コンピュータの1つにdyndnsまたはno-ipアップデータが必要です。これにより、exthostのURLを直接知ることができ、またはexthostが別のコンピュータのアドレスを知ることができ、sshを逆方向にし、対応するカールパブリックIPでファイルを更新できます。

関連情報