私のホスト(hostname)からインターネット経由でホスト名(hostname)の外部ホストに接続したいとlocalhost
思います。exthost
パブリックIPアドレスはexthost
インターネットプロバイダによって動的に割り当てられます。
私の言葉は、exthost
常にその名前を使用し、プロバイダが割り当てた値(変更される可能性があります)に基づいてその名前を実際のIPアドレスにマッピングすることです。
この目的のために、/etc/hosts
接続された回線を正しく更新するIPアドレス値を使用したいと思いますexthost
。
たとえば、/etc/hosts
Linuxの行は次のようになります。
<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/hosts
chroot環境で独自のファイルを提供することです。/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でファイルを更新できます。