127.0.0.1 与 localhost 区别

区别一


localhost 也叫 local,正确的解释是:本地服务器;

127.0.0.1 在 Windows 等系统的正确解释是:本机地址(本机服务器);

他们的解析通过本机的 host 文件,Windows 自动将 localhost 解析为 127.0.0.1 。

区别二


localhost(local)是不经网卡传输!这点很重要,它不受网络防火墙和网卡相关的的限制;

127.0.0.1 是通过网卡传输,依赖网卡,并受到网络防火墙和网卡相关的限制;

本机 IP 也是通过网卡传输的,依赖网卡,并受到网络防火墙和网卡相关的限制。

但是本机 IP 与 127.0.0.1 的区别是:127.0.0.1 只能通过本机访问,本机 IP 通过本机访问也能通过外部访问。

一般设置程序时本地服务用 localhost 是最好的,localhost 不会解析成 IP,也不会占用网卡、网络资源。

有时候用 localhost 可以,但用 127.0.0.1 就不可以的情况就是在于此。猜想 localhost 访问时,系统带的本机当前用户的权限去访问,而用 IP 的时候,等于本机是通过网络再去访问本机,用的到网络用户的权限。

关于在 MySQL 的区别


  • mysql -h 127.0.0.1的时候,使用 TCP/IP 连接,mysql server 认为该连接来自于 127.0.0.1 或者是“localhost.localdomain”。

  • mysql -h localhost的时候,是不使用 TCP/IP 连接的,而使用 Unix socket;此时,mysql server 则认为该 client 是来自“localhost”

(完)