Linux中的0.0.0.0和 ::

本文深入解析了IP地址中0.0.0.0和::的含义及其在网络配置中的作用,特别是它们如何用于表示本地网络中的所有IP地址,以及与环回地址127.0.0.1的区别。

Linux中的0.0.0.0和 ::

nailwl 2020-04-07 10:58:10  143  收藏
展开
IP地址表示,IP地址有两个部分组成,net-id和host-id,即网络号和主机号。

127.0.0.1

127.0.0.1属于{127,}集合中的一个,所有的网络号为127的地址都被称为环回地址,所以环回地址不等价于127.0.0.1,后者只是环回地址的一份子,是包含关系,环回地址loop back。
相比于127.0.0.1,localhost 具有更多的意义,localhost是个域名,而不是一个ip地址。之所以我们经常把localhost与127.0.0.1认为同一个是因为我们使用的大多数电脑上都将localhost指向了127.0.0.1这个地址。

0.0.0.0

服务器端,通过0.0.0.0匹配所有服务器IP,如果进程监听0.0.0.0那么客户端访问服务器任何一个可达IP都可以使用此进程。
个人电脑未配置IP时表示本机地址
路由器表示默认路由

127.0.0.1是个环回地址,是IP,并不表示“本机”,0.0.0.0才是真正表示网路中的本地。
例:服务端绑定端口的时候一般选择绑定到0.0.0.0,这样用户可以通过多个本服务器的IP进行访问。
实际:服务器有内外网IP,一般财务系统绑定内网IP仅内部访问,OA绑定0.0.0.0内外网均可访问。


::

全0的IPV6地址,和IPV4的0.0.0.0一样,表示匹配多个IPV6地址。

用双冒号“::”表示一组0或多组连续的0,但只能出现一次,每项数字前导的0可以省略,省略后前导数字仍是0则继续,下组IPv6是等价的。
2001:0DB8:02de:0000:0000:0000:0000:0e13
2001:DB8:2de:0000:0000:0000:0000:e13
2001:DB8:2de:000:000:000:000:e13
2001:DB8:2de:00:00:00:00:e13
2001:DB8:2de:0:0:0:0:e13

参考资料
原文链接:https://blog.youkuaiyun.com/nailwl/article/details/105359470

### MySQL 3306端口监听状态与`netstat`命令 为了确认MySQL数据库的3306端口是否处于监听状态,可以使用`netstat`命令来查看网络连接状态。以下是具体方法: #### Windows平台 在Windows操作系统中,可以通过以下命令检查3306端口的状态: ```bash C:\> netstat -na | findstr 3306 ``` 此命令会过滤并显示所有涉及3306端口的相关信息[^1]。如果结果显示如下,则表明该端口正在监听: ``` TCP 0.0.0.0:3306 0.0.0.0:0 LISTENING ``` 对于更详细的输出,可执行以下命令以获取绑定到特定进程的信息: ```bash C:\> netstat -ano | findstr 3306 ``` 通过观察最后一列中的PID(Process ID),可以在任务管理器中进一步定位具体的进程。 #### Linux平台 在Linux环境下,同样能够利用`netstat`工具完成相似的任务。例如,要查找是否有任何服务正于本地地址上侦听3306端口,应运行下面这条语句: ```bash $ netstat -anp | grep ":3306" ``` 这不仅限定了搜索范围至指定端口号,还附加了程序名称及其ID以便识别关联的服务实例[^2][^4]。典型输出可能类似于这样: ``` tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 1234/mysqld ``` 其中,“LISTEN”表示服务器正处于等待接收来自客户端请求的状态;而右侧最后部分则指明是由名为mysqld的过程负责处理这些通信事务,并给出了相应的进程编号即PID值为1234。 另外,在某些较新的发行版里,默认情况下不再安装传统版本的net-tools包,因此建议改用ss替代原生netstat功能实现相同目的: ```bash $ ss -tanp | grep ":3306" ``` 以上就是在不同平台上验证MySQL默认端口——也就是常说的3306端口是否正常工作的基本方式之一[^5]。 ```python # 示例Python脚本检测端口开放状况 import socket def check_port(host, port): s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) try: s.connect((host, int(port))) return True except Exception as e: print(e) return False finally: s.close() if __name__ == "__main__": host = 'localhost' port = 3306 result = check_port(host, port) if result: print(f"{host}:{port} is open.") else: print(f"{host}:{port} is closed or unreachable.") ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值