したがって、localhostにマップするIPアドレス5x.2x.2xx.1xxがあります。私のホストファイルには次のものがあります。
cat /etc/hosts
127.0.1.1 test test
127.0.0.1 localhost
# 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
ff02::3 ip6-allhosts
5x.2x.2xx.1xx 127.0.0.1
私が達成したいのは、このコンピュータで5x.2x.2xx.1xxに接続するときにlocalhostに移動することです。
私が本当に望むのは、次のようにMySQLに接続することです。
mysql -uroot 5x.2x.2xx.1xx -p この IP アドレスを指す代わりにローカル MySQL サーバーを使用したいと思います。
それでもサーバーのIP(5x.2x.2xx.1xx)にリダイレクトされたため、機能しませんでした。
私も試してみました:運がないsudo service nscd restart
答え1
/etc/hosts
特定のDNSをマッピングするには、次のものを使用できます。名前実際のIPアドレスとは異なるIPアドレスに接続されているがアプリケーションがすでにIPアドレスを指定している場合、ホスト名解決操作に基づく他の技術は役に立ちません。アプリケーションには接続できる完全なIPアドレスがすでに存在しているため、接続されません。ホスト名解決サービスは必要ありません。
アウトバウンドトラフィックを指定された場所にリダイレクトする場合IPアドレスローカルシステムに戻ると、iptables
このシステムが必要です。
sudo iptables -t nat -I OUTPUT --dst 5x.2x.2xx.1xx -p tcp --dport 3306 -j REDIRECT --to-ports 3306
これにより、システムからデフォルトのMySQLポート3306(5x.2x.2xx.1xx)に到達するすべての接続がシステムのポート3306にリダイレクトされます。明らかに、5x.2x.2xx.1xxと3306を実際のIPアドレスとポート番号に置き換えます。
上記のコマンドはすぐに適用されますが、設定を永続化するために他の操作を実行しない限り、再起動後も持続しません。しかし、そうする必要さえないかもしれません。
答え2
いいえ、動作しません。システムがIPを表示すると、DNSルックアップ(ホストファイルルックアップも含む)はスキップされます。うまくいけば(おそらく)問題が発生します。とにかくファイルには逆さまです。
ip.add.re.ss hostname
だからあなたは欲しいでしょう
127.0.1.1 5x.2x.2xx.1xx
これはうまくいきません。私はまだそれが物事を台無しにする感じを持っています。
しかし、うまくいく方法は名前を使用し、必要に応じて変更することです。
つまり、
127.0.1.1 dbhost
そしてそれに変更
5x.2x.2xx.1xx dbhost
必要に応じて。名前がmysql -h dbhost -u root -p
どのIPを指していても、常に接続されています...