公网IP地址,内网IP地址,物理地址,本地环回地址(127.0.0.1)以及localhost的区别

公网IP地址,内网IP地址的区别

这篇文章讲的十分透彻:https://blog.csdn.net/gui951753/article/details/79210535

简而言之:公网IP是你办宽带时营业厅给你分配的地址,用于连接互联网。一般通过百度输入IP查到的就是这个公网IP。除非你换宽带,这个地址一般也不变。

而内网IP指的是局域网(如家里安装的路由器)给你随机分配的地址,当你连上家里的Wi-Fi时,这时候就会随机给你分配一个IP,这个IP是可变的。

一般在cmd终端上通过ipconfig命令查到的就是这个内网IP。

另外还有一点,在同一个局域网内,IP地址是唯一的;但是在不同的局域网内,IP地址是可以重复出现的。

举个小例子: 在局域网A中,有个主机的IP地址192.168.10.128,那么绝不可能在局域网A中还有其他主机的IP地址192.168.10.128。但是在局域网B中却可以有主机的IP地址也是192.168.10.128
如果局域网A中的192.168.10.128主机局域网B中的192.168.10.128主机通信,不会冲突吗?不会,因为上述说过,它们最终都是使用路由器中的公网IP来连接外网的,而公网IP是全球唯一的。

现在分析物理地址,本地环回地址(127.0.0.1)以及localhost:

物理地址(又称为MAC地址或者硬件地址)

顾名思义,肯定是跟最底层硬件有关的地址,这个地址就像你的身份证一样是世界上唯一的,在设备出厂的时候就打在设备的芯片里了,即固化在网卡上的ROM中,是按照国际上的标准和规定统一的格式,这个地址是永远不变的,同一型号的两个设备硬件地址也不同。

本地回环地址(127.0.0.1)

所谓的回环地址,通俗的讲,就是我们在主机上发送给127开头的IP地址的数据包会被发送的主机自己接收,根本传不出去,外部设备也无法通过回环地址访问到本机。

127.0.0.1作为{127}集合中的一员,当然也是个回环地址。只不过127.0.0.1经常被默认配置为localhostIP地址
一般会通过ping 127.0.0.1来测试某台机器上的网络设备是否工作正常。

localhost

localhost其实是域名,在 Windows 中,这个域名是预定义的,从 hosts 文件中可以看出:一般windows系统默认将localhost 指向127.0.0.1。

在操作系统支持 ipv6 后,它同时还指向ipv6 的地址 [::1] 。

但是localhost并不等于127.0.0.1localhost指向的IP地址是可以配置的。如下图的host文件:

所以,你也可以去host文件中,将localhost改为其它的127开头的ip地址。

注意:

localhost是不经网卡传输!这点很重要,它不受网络防火墙和网卡相关的的限制。127.0.0.1是通过网卡传输,依赖网卡,并受到网络防火墙和网卡相关的限制。一般设置程序时本地服务用localhost是最好的,localhost不会解析成ip,也不会占用网卡、网络资源。

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

 

<think>好的,用户的问题是关于如何配置本地外网IP以访问项目,目前localhost127.0.0.1可以访问,但公网IP不行。我需要结合提供的引用内容来给出解决方案。首先,根据引用[3],用户可能处于局域网内,使用的是内网IP,如192.168.x.x,而公网IP路由器地址。这时候需要配置NAT转发,把路由器的端口映射到本地机器的端口,类似引用[2]提到的NAT转换。 然后,检查防火墙设置,确保端口开放,如引用[4]提到的案例,用户可能忽略了防火墙阻止外部访问的问题。需要指导用户如何在防火墙中放行端口,比如80或自定义端口。 另外,服务绑定地址是否正确?如果服务只绑定到127.0.0.1,那么外部无法访问,应该绑定到0.0.0.0,允许所有IP连接。引用[4]中的用户可能配置的是特定IP而非0.0.0.0,导致无法通过公网IP访问。 还要确认公网IP是否真的可用,可能用户的路由器获取的是运营商的私有地址(如CGNAT),这时候需要联系ISP获取公网IP或者使用内网穿透工具。 最后,可能需要配置路由器的端口转发,将外部请求转发到本地服务器的内网IP和端口,如引用[2]中的NAT转换步骤。需要指导用户进入路由器管理界面设置转发规则。 总结下来,步骤应该是:检查服务绑定地址、配置防火墙、设置路由器端口转发、确认公网IP有效性。可能还需要处理ISP方面的限制,或者考虑使用反向代理如nginx进行配置。</think>要解决本地外网IP无法访问项目的网络配置问题,需逐步排查以下关键环节: --- ### 一、检查服务绑定地址 1. **确认服务监听的IP地址** 若服务仅绑定到`127.0.0.1`,则只能通过本地访问。需修改配置使其监听所有网络接口: ```nginx # nginx示例(监听所有IP的80端口) server { listen 80 default_server; listen [::]:80 default_server; } ``` **注意**:`0.0.0.0`表示监听所有可用网络接口[^4]。 --- ### 二、防火墙配置 2. **开放目标端口** - **Windows**:通过`控制面板 > Windows Defender 防火墙 > 高级设置`添加入站规则,允许TCP/UDP流量通过目标端口(如80/443) - **Linux**:使用命令`sudo ufw allow 80/tcp`或直接配置iptables --- ### 三、路由器端口转发(NAT配置) 3. **设置端口映射规则** 登录路由器管理页面(通常地址为`192.168.0.1`或`192.168.1.1`),在**NAT/端口转发**模块添加规则: - **外部端口**:80(或其他公网访问端口) - **内部IP**:本地服务器的内网IP(如`192.168.0.106`) - **内部端口**:本地服务实际端口(如80) *此步骤将公网请求转发到内网服务器[^2][^3]* --- ### 四、验证公网IP有效性 4. **确认是否为真实公网IP** 通过访问[ipinfo.io](https://ipinfo.io)查看当前公网IP,并与路由器WAN口IP对比。若两者不一致,说明处于运营商级NAT(如移动网络),需联系ISP申请独立公网IP或使用**内网穿透工具**(如frp/ngrok)。 --- ### 五、其他可能问题 5. **ISP端口封锁** 部分运营商封锁80/443等常用端口,可尝试改用非标准端口(如8080)并同步修改端口转发规则 6. **反向代理配置** 使用Nginx反向代理时,需确保`server_name`包含公网IP或域名: ```nginx server { listen 80; server_name your_public_ip; location / { proxy_pass http://localhost:实际服务端口; } } ``` ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值