如何将 IP 地址映射到本地主机

如何将 IP 地址映射到本地主机

所以我有一个 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 我想使用本地 MySQL 服务器,而不是指向该 IP 地址

当时它不起作用,因为它仍然重定向到服务器的 IP (5x.2x.2xx.1xx)

我也尝试过: sudo service nscd restart 没有运气

答案1

/etc/hosts如果您想映射特定的 DNS,可以使用姓名到与实际不同的 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 

这是行不通的。我仍然有一种感觉它会破坏东西。

不过,可行的方法是使用名称,并根据需要更改名称。

IE,

127.0.1.1 dbhost

并将其更改为

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

如所须。并且mysql -h dbhost -u root -p无论名称恰好指向哪个 IP,始终连接...

相关内容