web-dev-qa-db-ja.com

IPアドレスをlocalhostにマップする方法

そのため、localhostにマップするIPアドレス5x.2x.2xx.1xxがあります。私のhostsファイルには次のものがあります:

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サービスのnscdは運が悪ければ再起動します

1
user1532587

/etc/hostsは、特定のDNS nameを実際に持っているものとは異なる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

これにより、システムから5x.2x.2xx.1xxのデフォルトのMySQLポート3306へのすべての発信接続が、ご使用のシステムのポート3306にリダイレクトされます。 5x.2x.2xx.1xxと3306を実際のIPアドレスとポート番号に置き換えます。

上記のコマンドはすぐに有効になりますが、設定を永続化するために何か他のことをしない限り、再起動後も維持されませんが、おそらくそれさえ必要ないでしょうか?

3
telcoM

いいえ、機能しません-システムがIPを検出すると、DNSルックアップをスキップします(ホストファイルルックアップも含まれます)。そして、もしそれが機能するとしたら、(おそらく)何かが壊れるでしょう。とにかくそれはファイルの後方にあります。

ip.add.re.ss  hostname

だからあなたがしたい

127.0.1.1  5x.2x.2xx.1xx 

そして、それは機能しません。そして、私はまだそれがものを壊すと感じています。

代わりに名前を使用し、必要に応じて名前を変更することで機能します。

IE、

127.0.1.1 dbhost

そしてそれを

5x.2x.2xx.1xx dbhost

必要に応じて。そして、常にmysql -h dbhost -u root -pどのIPが名前を指しているかに関係なく...

0
ivanivan