本机的Linux服务器地址,指的是这台Linux设备在网络中的身份标识,通俗讲就是它的IP地址,通常分为回环地址(127.0.0.1)、内网IP和公网IP三种形态。搞不清这句话,后面所有关于配置、部署、连接的操作都会像无头苍蝇,这篇内容会把这些概念拆开揉碎,告诉你什么时候用哪个地址,以及怎么把地址查出来。
先分清“本机地址”的三种真实身份
很多人刚接触Linux时,被“本机地址”这个词搞晕,原因在于,一台Linux机器在网络世界里其实不止一个名字。
回环地址:机器跟自己的对话通道
回环地址固定是0.0.1,在Linux里还常常写作localhost,它不参与外部网络通信,专门给本机上的程序访问本机服务用,比如你在自己电脑上装了Nginx,然后在浏览器里输入0.0.1能打开页面,就说明Nginx在你本机跑起来了。
这个地址的特点是,只有这台机器自己能用,局域网里的其他电脑拿这个地址访问你的服务,绝对连不上,因为它在别人眼里就是“别人自己”的意思。
内网IP:局域网里的门牌号
当你的Linux服务器连着路由器,它会被分配一个内网IP,常见网段是168.x.x、x.x.x或16.x.x,这个地址是给同一局域网内的设备互相访问用的,比如你在办公室有一台Linux服务器,IP是168.1.100,那隔壁工位的同事访问你提供的服务时,输入这个IP就能通。
关键点在于,内网IP是路由器通过DHCP动态分配的,也可能是你手动配置的静态地址。多数情况下,路由器重启或过了一段时间,这个地址可能变掉,除非你做了DHCP地址保留。
公网IP:互联网上的全球定位
如果你的Linux服务器部署在云机房(比如简米云、酷番云),或者你家宽带有公网IP,那这台机器就拥有一个公网地址,别人在家里、在咖啡厅,甚至在地球另一端,都能通过这个公网IP访问你的服务器。
这也就是大家常说的云服务器公网IP,平时你在云厂商控制台看到的“公网IP”那一栏,就是它。
查询linux服务器地址的实操命令
知道概念后,实操才是关键,你可能面临“linux服务器地址怎么查看”的困惑,下面这些命令直接复制粘贴到终端就能用。
- 查看所有网卡对应的IP:执行
ip addr
,这是目前Linux系统最推荐的命令,输出信息里,
lo那块显示的是0.0.1,eth0或ens33那块显示的通常是内网IP。 - 只看IPv4地址(简洁版):用
hostname -I,能立刻列出这台机器所有的IP地址,用空格隔开,这个命令最直观,适合紧急情况。 - 如果系统比较老:也可以用
ifconfig,需要先安装net-tools工具包,它的输出信息看着习惯了也顺手,但新系统不一定预装。
特别提醒一点:如果你租用了云服务器,在机器里用ip addr查出来的IP,跟你买服务器时看到的公网IP可能“对不上”,这是因为云厂商在底层做了NAT转发,你在机器网卡上看到的往往是内网IP,想确认真正的公网地址,上云厂商控制台看,或者用命令curl ifconfig.me请求外部服务查询。
本机IP与服务器地址的根本区别对比
新手常常纠结“linux本机ip和服务器地址区别”这个问题,觉得“本机的”和“服务器的”是两码事,这种理解其实跑偏了。
| 概念 | 本质 | 常见例子 | 使用场景 |
|---|---|---|---|
| 本机IP | 就是这台设备自身的网络标识 | 0.0.1、192.168.1.5 | 本机调试、局域网互访 |
| 服务器地址 | 提供服务的入口地址,本质上也是IP,只不过语义上更强调“对外提供服务” | 公网IP、域名 | 互联网用户访问、跨区域连接 |
行业共识认为,当人们说“服务器地址”时,心理预期是一个“别人能来访问我”的地址,而“本机IP”有时候只是自己看看,但如果你的服务器就在本机,那这两个词指向的是同一个东西,只是看问题的角度不同。
为什么排查问题时两个地址都要看
想一下这个场景:你在自己的电脑上通过虚拟机跑了个Linux,数据库端口开在3306,但Navicat就是连不上。
排查步骤:
- 先在Linux里执行
ip addr,确认机器的内网IP是哪一段。 - 再确认监听地址是不是写成了
0.0.1,如果数据库配置文件里写的bind-address=127.0.0.1,那外部工具绝对连不上,因为MySQL服务只监听回环地址。 - 把监听地址改成
0.0.0,表示所有网卡都可以监听,服务才能从内网IP被访问到。

“本机地址”和“服务器地址”的区别,在故障处理时就体现得淋漓尽致,搞混了,排查一整天也找不到病根。
部署场景决定你用哪个地址
本地开发调试
你在自己电脑上装了Linux虚拟机,或者直接用带图形界面的Linux系统开发代码,此时服务只给自己用,直接访问0.0.1即可,比如跑一个Spring Boot项目,端口8080,浏览器输入0.0.1:8080就行,这时候没必要关心内网IP是啥,用它反而可能有防火墙拦截。
公司内部测试环境
团队共用一个Linux服务器跑测试代码,服务器放在机房里,大家通过局域网访问,作为开发人员,你需要知道这台机器的内网IP,随便找一台联网的电脑,ping 内网IP能通,然后访问http://内网IP:端口。
这里有一个实用操作:在服务器终端输入ip addr后,把eth0或ens33下面的IPv4地址记下来,那就是团队协作时需要的“服务器地址”。
生产环境对外服务
服务器要面向全网用户,这时候你必须搞到公网IP或用域名绑定公网IP,如果你只是在家搭建个个人网站,且宽带没有公网IP,会非常痛苦你需要内网穿透工具,比如frp或ngrok,把内网服务映射到一台有公网IP的跳板机上。
各云厂商控制台与本机命令查出来的地址差异
采购过云服务器的人都知道,云服务器价格里其实包含了两层地址的理解成本,在简米云或酷番云买一台“轻量应用服务器”,控制台上明晃晃写着一个“公网IP”,但SSH登录进去后,发现网卡上配置的明明是24.x.x或0.x.x之类的私网地址。
- 这种架构下,公网IP是云厂商的NAT网关映射出来的,数据包先到达网关,再转到你服务器的内网IP上。
- 云服务器公网ip怎么绑定这个问题,普通用户其实不用管底层技术,新买机器时系统自动分配一个,如果觉得不好记,就买一个弹性公网IP,在控制台点击“绑定”操作,几秒钟搞定,无需修改机器内部任何配置。
本机服务器地址的常见疑难杂症
很多人问“linux服务器地址是多少”时,背后经常藏着具体的报错场景。
SSH连接提示“Connection refused”
这意味着你访问的IP和端口上,根本没有SSH服务在听,执行systemctl status sshd查看状态,再执行

ss -lntp | grep 22查看监听地址,特别注意,有些云主机镜像默认改了SSH端口,如果控制台安全组只放行了22,你却从别的端口连,自然拒绝连接。
防火墙拦截
Linux上有firewalld或iptables工具,如果你在云服务器上开了服务,但外部访问不通,先查机器防火墙,执行firewall-cmd --list-all(CentOS系)或iptables -L -n看规则,不过别忘了云控制台的安全组规则,那是一个更前置的“虚拟防火墙”。两处都放行了,端口才能真正对外可达。
容器环境下的地址混淆
用Docker部署服务的场景里,本机地址又有了新内涵,容器有容器自己的IP,宿主机有宿主机的IP,两个地址互相独立,如果在容器里执行ip addr,看到的是17.0.x这类地址,这是Docker网桥分配的,跟你服务器的内网IP毫无关系,配置端口映射(-p 8080:80)时,只需要关心宿主机的IP和端口即可。
常见问题快速解答
Q1:linux本机ip和服务器地址那个容易混淆的点用什么方法彻底分清?
A1:记住一条准则:本机IP是物理事实,服务器地址是服务视角,先跑ip addr看本机到底有哪些IP,再根据服务的监听地址和外部访问入口(安全组、NAT、域名)来综合判断,当服务监听0.0.0且防火墙放行,本机IP就是服务器地址;当服务只监听某个固定IP,那个IP才是服务器地址。
Q2:为什么云服务器查出来的内网IP和外网IP不一样?
A2:这是云计算虚拟化架构决定的,云厂商在底层用NAT(网络地址转换)技术,让一台物理服务器共享一个公网出口,你的虚拟机只持有私网地址x.x.x或x.x.x,访问互联网时,数据包经物理机的公网IP转发出去,外部用户访问时用的是公网IP,而机器内部看到的只是内网IP,两者职责不同,共存不冲突。
Q3:没有公网IP的Linux服务器,怎么让外网访问?
A3:使用内网穿透工具,比较成熟的做法是安装frp,把你本机的SSH端口(22)或Web端口(80)映射到一台有公网IP的中转服务器上,客户端访问中转服务器的指定端口,frp会自动把数据转发到你本机的对应端口,这相当于借了一条隧道,让没有公网IP的机器也能被外部访问,但受限于中转服务器的上行带宽。
