• bind 0.0.0.0的作用是什么呢?


    背景描述

      今天在看redis的内容,看到同事在配置文件中将bind配置为0.0.0.0进行监听,不明白什么意思就查询了下,在此记录下。

    解释

    0.0.0.0在服务器的环境中,指的就是服务器上所有的ipv4地址,如果机器上有2个ip 192.168.30.10 和 10.0.2.15,redis在配置中,如果配置监听在0.0.0.0这个地址上,那么,通过这2个ip地址都是能够到达这个redis服务的。同时呢,访问本地的127.0.0.1也是能够访问到redis服务的。

    测试验证:

    1.绑定到0.0.0.0

    [aiprd@hadoop1 redis]$ src/redis-server ./redis.conf 
    [aiprd@hadoop1 redis]$ ps -ef | grep redis
    aiprd     2422     1  0 11:53 ?        00:00:00 src/redis-server 0.0.0.0:6379
    aiprd     2426  1401  0 11:53 pts/0    00:00:00 grep redis

    2.本地ip地址

    [aiprd@hadoop1 redis]$ ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
        inet6 ::1/128 scope host 
           valid_lft forever preferred_lft forever
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
        link/ether 08:00:27:21:8b:7e brd ff:ff:ff:ff:ff:ff
        inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0
        inet6 fe80::a00:27ff:fe21:8b7e/64 scope link 
           valid_lft forever preferred_lft forever
    3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
        link/ether 08:00:27:9f:16:be brd ff:ff:ff:ff:ff:ff
        inet 192.168.30.10/24 brd 192.168.30.255 scope global eth1
        inet6 fe80::a00:27ff:fe9f:16be/64 scope link 
           valid_lft forever preferred_lft forever

    备注:本地地址127.0.0.1、10.0.2.15192.168.30.10

    3.分别通过3个ip地址进行访问

    [aiprd@hadoop1 redis]$ src/redis-cli
    127.0.0.1:6379> auth yksSLR7AU#7G6Wz
    OK
    127.0.0.1:6379> exit
    [aiprd@hadoop1 redis]$ 
    [aiprd@hadoop1 redis]$ src/redis-cli -h 192.168.30.10
    192.168.30.10:6379> auth yksSLR7AU#7G6Wz
    OK
    192.168.30.10:6379> exit
    [aiprd@hadoop1 redis]$ src/redis-cli -h 10.0.2.15
    10.0.2.15:6379> auth yksSLR7AU#7G6Wz
    OK
    10.0.2.15:6379> exit

    备注:通过3个地址是都能够访问的。

    4.绑定到192.168.30.10地址上

    [aiprd@hadoop1 redis]$ src/redis-server ./redis.conf 
    [aiprd@hadoop1 redis]$ ps -ef | grep redis | grep -v grep
    aiprd     2434     1  0 11:57 ?        00:00:00 src/redis-server 192.168.30.10:6379

    5.分别通过以上的地址进行访问

    [aiprd@hadoop1 redis]$ src/redis-cli
    Could not connect to Redis at 127.0.0.1:6379: Connection refused
    Could not connect to Redis at 127.0.0.1:6379: Connection refused
    not connected> exit
    [aiprd@hadoop1 redis]$ src/redis-cli -h 10.0.2.15
    Could not connect to Redis at 10.0.2.15:6379: Connection refused
    Could not connect to Redis at 10.0.2.15:6379: Connection refused
    not connected> exit
    [aiprd@hadoop1 redis]$ src/redis-cli -h 192.168.30.10
    192.168.30.10:6379> auth yksSLR7AU#7G6Wz
    OK
    192.168.30.10:6379> 

    备注:发现绑定到192.168.30.10之后,只有这个地址是可以访问,但是呢,访问127.0.0.1都是访问不到的。

    小结

    所以:综上,如果绑定到0.0.0.0那么所有机器上的地址都可以访问服务,如果绑定到特定的ip那么只能是特定的ip能够到达redis服务。

    文档创建时间:2019年5月27日11:48:12

  • 相关阅读:
    iOS多线程开发小demo5 线程间的通信
    iOS多线程开发小demo4,线程的同步问题
    iOS多线程开发小demo3,线程的状态
    iOS多线程开发小demo2,NSThread篇
    iOS多线程开发小demo
    iOS开发多线程基础知识
    sublime text 3 3083 注册码
    Canvas现实画板功能
    CSS3动画进度条
    移动端使用HTML5表单增强体验
  • 原文地址:https://www.cnblogs.com/chuanzhang053/p/10929903.html
Copyright © 2020-2023  润新知