1. 程式人生 > >服務監聽在127.0.0.1和0.0.0.0上,到底有什麽區別呢?

服務監聽在127.0.0.1和0.0.0.0上,到底有什麽區別呢?

0.0.0.0 127.0.0.1 區別

服務監聽在127.0.0.1和0.0.0.0上,到底有什麽區別呢?給個實際的例子,大家看看


今天發現在nb1380的mysql從nb1381連不上?

1、使用grant加權限,失敗

mysql> select user,host,password from mysql.user;
11 rows in set (0.00 sec)
mysql> grant all privileges on *.* to 'root'@'nb1381' identified by '  ' with grant option;

2、telnet失敗,考慮可能是iptables限制,加規則,無效

root@nb1380:/var/log/mysql# iptables -I INPUT -p tcp --dport 3306 -j ACCEPT

3、猜測可能是監聽在127.0.0.1上,而不是0.0.0.0上,查看my.cnf,果然是這個原因

root@nb1380:/var/log/mysql# vim /etc/mysql/my.cnf 
bind-address            = 127.0.0.1 改為:
bind-address            = 0.0.0.0

重啟mysql,果然telnet通了

root@nb1381:~# telnet nb1380 3306
Trying 192.168.64.43...
Connected to nb1380.
Escape character is '^]'.

mysql也能連接了

root@nb1381:~# mysql -uroot -p -hnb1380
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 40
Server version: 5.6.33-0ubuntu0.14.04.1 (Ubuntu)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>


總結:

3306端口監聽在127.0.0.1,只有本機客戶端可以訪問,其他服務器無法訪問

3306端口如果監聽在0.0.0.0上,如果沒有端口限制,那麽其他服務器則可以連接該服務器的該端口


服務監聽在127.0.0.1和0.0.0.0上,到底有什麽區別呢?