`

linux之localhost&127.0.0.1&及本机地址的区别

阅读更多

今天,遇到了一个问题,是关于套接字(socket)的。

大概是这样,一个应用程序启动,从它的log来看,它提示我可以通过访问http://127.0.0.1:9990/console/index.html来打开控制画面。

于是我尝试着从本地windows机去访问下面的URL

http://192.168.100.25:9990/console/index.html,但是怎么也访问不了。关了防火墙,也没有用。

 

因为我对这个一点都不敏感,所以最后还是同事帮我解决的说是端口被绑在了127.0.0.1上,所以只支持本地访问。外面是没有办法访问的,后来修改了配置文件,将绑定的IP从127.0.0.1改成了192.168.100.25.

这样改完后,可以正常访问。于是拓展学习了一下。。。。。。。。。

 

socket(套接字)

它是网络通信过程中端点的抽象表示,包含进行网络通信必需的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程的协议端口。

Socket可以看成在两个程序进行通讯连接中的一个端点,是连接应用程序和网络驱动程序的桥梁,Socket在应用程序中创建,通过绑定与网络驱动建立关系。此后,应用程序送给Socket的数据,由Socket交给网络驱动程序向网络上发送出去。计算机从网络上收到与该Socket绑定IP地址和端口号相关的数据后,由网络驱动程序交给Socket,应用程序便可从该Socket中提取接收到的数据,网络应用程序就是这样通过Socket进行数据的发送与接收的。


网络通讯地址(IP+PORT)

 

localhost

localhost 是个域名,不是地址,它可以被配置为任意的 IP 地址,不过通常情况下都指向 127.0.0.1(ipv4)和 [::1](ipv6),性质跟 “www.baidu.com” 差不多。不能直接绑定套接字,必须先gethostbyname转成IP才能绑定。

 

127.0.0.1
127.0.0.1 是绑定在 loopback 接口上的地址,如果服务端套接字绑定在它上面,你的客户端程序就只能在本机访问。
loopback 是一个特殊的网络接口(可理解成虚拟网卡),用于本机中各个应用之间的网络交互。
[root@localhost configuration]# ifconfig
eno16780032: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.100.25  netmask 255.255.255.0  broadcast 192.168.100.255
        inet6 fe80::250:56ff:feb0:1174  prefixlen 64  scopeid 0x20<link>
        ether 00:50:56:b0:11:74  txqueuelen 1000  (Ethernet)
        RX packets 158463  bytes 180993677 (172.6 MiB)
        RX errors 0  dropped 345  overruns 0  frame 0
        TX packets 87686  bytes 15009155 (14.3 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 0  (Local Loopback)
        RX packets 11620  bytes 2163371 (2.0 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 11620  bytes 2163371 (2.0 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

 

本机地址

如果主机中存在多个网卡,分别连接不同的物理网络,比如 192.168.0.1/255.255.255.0 和 192.168.1.1/255.255.255.0,那么当你的服务端套接字绑到 192.168.0.1 这个地址上时,位于 192.168.1.* 网段的其他计算机是无法连接的,只有位于192.168.0.* 网段的计算机才能访问你的服务端程序。

 

分享到:
评论

相关推荐

    mysql不能用localhost,127.0.0.1连接,只能用ip连接 的解决方法

    在MySQL数据库系统中,连接方式通常分为通过主机名(如localhost)和IP地址(如127.0.0.1)两种。当你遇到“mysql不能用localhost,127.0.0.1连接,只能用ip连接”的问题时,这可能是由于MySQL配置文件中的设置或用户...

    MySQL数据库主机127.0.0.1与localhost区别

    在MySQL数据库中,`127.0.0.1` 和 `localhost` 都用于指代本地主机,但它们在连接方式上存在显著的区别。理解这些差异对于排查数据库连接问题至关重要。 首先,当我们使用 `mysql -h 127.0.0.1` 命令连接MySQL,它...

    Mac os 解决无法使用localhost连接mysql问题

    在这个问题中,我们发现`localhost`与`127.0.0.1`在连接MySQL时表现不同,这是因为它们采用的连接方式不同。`localhost`是通过Unix域套接字(socket)进行通信,而`127.0.0.1`是通过TCP/IP协议进行连接。 在Mac OS ...

    Linux监听各种IP的区别和作用

    这是因为 127.0.0.1 是回环地址,也就是localhost的IP地址,当服务监听这个地址时,只能通过本地回环地址访问服务,而无法通过其他地址访问。 监听 192.168.1.200 当服务监听 192.168.1.200 时,只能服务器通过 ...

    解决linux找不到hostname的处理

    3. **检查/etc/hosts文件**:确保`/etc/hosts`文件中包含了正确的条目,即本机IP地址与其主机名的映射。默认情况下,大多数Linux系统都会在`/etc/hosts`文件中包含`127.0.0.1 localhost`这样的条目,但是有时候可能...

    oracle for linux(11g&amp;12c;)

    127.0.0.1 主机名 localhost localhost.localdomain 如果忘记了主机名,可以使用 hostname 命令查看。 三、创建用户和组 在安装 Oracle 之前,需要创建 Oracle 安装组 oinstall 和数据库管理员组 dba。可以使用...

    java获取本机IP

    然而,这种方法在Windows系统下通常能正常工作,但在Linux系统中可能返回`127.0.0.1`,这是由于Linux默认将`/etc/hosts`文件中的localhost映射到了`127.0.0.1`,而不是实际的网络接口(即网卡)的IP地址。...

    127.0.0.1无法访问,没有权限: GetObject

    在开发环境中,尤其是对于Windows操作系统上的IIS服务器,有时会出现使用`127.0.0.1`地址访问本地网站时出现权限问题的情况。这种情况下,用户会遇到错误提示“没有权限:GetObject”,错误代码为`0x800A0046`。 ###...

    Linux如何查看当前有多少IP连接了这台机子.如何查看都谁连接了我

    这里添加了`grep -v '127.0.0.1'`来排除本地环回地址(localhost)的连接。 3. **统计IP连接数:** 如果你想要统计连接数,可以结合`wc`(单词计数)命令来计算行数,代表不同的IP连接: ``` netstat -an | ...

    Linux下sokcet聊天进程版

    在这个例子中,可能使用localhost(127.0.0.1)和一个随机端口。 5. **套接字监听**:父进程调用`listen()`函数,设置最大连接队列长度,等待子进程连接。 6. **套接字连接**:子进程使用`connect()`函数尝试连接...

    oracle11g单机安装linux6.4操作不走

    127.0.0.1 localhost localhost.localdomain 192.168.100.133 zsr133 192.168.100.136 zsr136 ``` ### 用户和组创建 为了满足Oracle的安全需求,需要创建特定的用户和组。文档中提到了以下组和用户: - `groupadd -...

    MS在linux的安装过程.pdf

    同时,我们需要更改 hostname 为 localhost 或 127.0.0.1,以便基于 IPv4 的原理。 第一步:安装前的准备 在安装 MS 之前,我们需要创建一个名为 msi 的用户,并上传 MS 安装文件到/home/msi/tmp 下。我们可以使用...

    IIS6.0 IIS,互联网信息服务

    转到“目录安全性”窗口,单击“IP地址及域名限制”下的“编辑”按钮,点选中“授权访问”以能接受客户端从本机之外的地方对IIS进行管理;最后单击“确定”按钮。 3.则在任意计算机的浏览器中输入如...

    Linux下DNS配置文件祥解

    DNS(Domain Name System)是互联网中不可或缺的服务之一,它负责将人类可读的域名转换成计算机可识别的IP地址。在Linux系统中,配置DNS服务器通常涉及到BIND(Berkeley Internet Name Domain)的设置。本文将深入...

    Linux 主机实现对网卡流量的监控.txt

    Linux 主机实现对网卡流量的监控: 本文所用到的监控流量插件来自“石头“的1.20版shell插件。感谢之。。。。 下载地址为:http://www.itnms.net/discuz/viewthread.php?tid=767&extra=pageD1&page=1 主要步骤: 1、...

    如何在Linux系统中防御垃圾邮件

    要关闭这个功能,你需要编辑/etc/mail/access文件,移除允许任意主机Relay的设置,只保留允许本地主机(localhost和127.0.0.1)进行Relay的条目。完成编辑后,运行`makemap hash access.db`命令使改动生效。 其次,...

    Linux各种应用服务器配置.pdf

    同时,需要设置localhost区域,确保localhost名称解析到回环地址127.0.0.1。这通常通过创建一个名为`localhost.zone`的区域文件完成,其中包含SOA(起始授权记录)、NS(DNS服务器记录)和A(主机记录)等。 对于主...

Global site tag (gtag.js) - Google Analytics