服务器要同时具备公网和私网IP,本质是三件事:公网IP由运营商或云厂商分配并绑定到实例,私网IP在本机网卡或VPC子网内配置,两者靠路由表和NAT协同工作。公网IP不是“配”出来的,而是“分配绑定放行”三步走;私网IP才是你在网卡上真正动手设置的部分。
先分清:公网IP和私网IP到底差在哪
服务器公网IP和私网IP有什么区别
这是新手最容易绕晕的地方,简单说,私网IP是“楼内门牌号”,公网IP是“整栋楼的城市地址”。
| 对比项 | 公网IP | 私网IP |
|---|---|---|
| 地址范围 | 除保留段外的全球唯一地址 | 0.0.0/8、172.16.0.0/12、192.168.0.0/16 |
| 谁来分配 | 运营商、云厂商(由CNNIC/IANA体系逐级分配) | 你自己或VPC子网自动分配 |
| 能否被外网直连 | 能 | 不能,必须经NAT或跳板机 |
| 费用 | 通常单独计费或含在带宽里 | 免费 |
| 安全暴露面 | 直接暴露在互联网 | 默认隔离,相对安全 |
依据RFC 1918,上述三段地址专供内网使用,不会在公网上被路由,所以你在家里路由器看到的192.168.1.x,和云服务器VPC里的10.0.x.x,性质完全一样。
云上还有个细节:实例创建后,私网IP就自动分配好了,你几乎不用管;而公网IP默认可能没有,需要单独申请弹性公网IP(EIP)再绑定。
云服务器怎么绑定公网IP
大部分人的服务器都在云上,这条路径最常用。
弹性公网IP的申请与绑定流程
以主流云平台为例,操作逻辑基本一致:
- 登录控制台,进入“弹性公网IP”或“公网IP”页面。
- 点击申请,选择计费方式:按固定带宽或按使用流量。
- 选择地域,必须和你的云服务器在同一地域,跨地域无法直接绑定。
- 申请成功后,在列表里点“绑定”,选中目标实例或NAT网关。
- 回到实例详情页确认公网IP已显示,再用
ping或curl ifconfig.me验证出网。
绑定完成后,别忘了安全组,行业共识认为,新实例最常见的问题不是IP没绑上,而是安全组没放行22或3389端口。
不绑公网IP也能出网:NAT网关方案
生产环境里,数据库、缓存这类机器通常不配公网IP,只保留私网IP,它们要下载依赖、调用外部接口怎么办?走NAT网关。
做法是:私网实例所在子网的路由表,把0.0.0.0/0指向NAT网关,NAT网关再绑定EIP出网,这样实例没有入方向公网暴露,只有出方向访问,安全性和成本都更划算,据工信部相关公开信息,云服务商普遍建议对外服务与内部服务分属不同子网管理,NAT就是其中一种落地方式。
物理服务器双网卡怎么同时配置公网和内网IP
自建机房或托管服务器,往往一块网卡接公网、一块接内网,需要手动配置。
Linux下的双网卡配置
先确认网卡名称:ip addr,假设eth0接公网,eth1接内网。
临时生效的写法:
ip addr add 203.0.113.10/24 dev eth0 ip addr add 10.0.0.20/24 dev eth1 ip route add default via 203.0.113.1 dev eth0
永久配置因发行版而异,Ubuntu 22.04以后用netplan,编辑/etc/netplan/00-installer-config.yaml,分别在两个网卡下写addresses和gateway4(新版为routes);CentOS/Rocky用nmcli:
nmcli con mod eth0 ipv4.addresses 203.0.113.10/24 ipv4.gateway 203.0.113.1 nmcli con mod eth1 ipv4.addresses 10.0.0.20/24 ipv4.gateway "" nmcli con up eth0 && nmcli con up eth1
注意:内网网卡不要配默认网关,否则会出现两个默认路由打架。
路由优先级:别让内网流量跑公网
多网卡最容易踩的坑是回包路径不对,用ip route查看,确保只有一条默认路由指向公网网关,内网网段走直连路由。
如果确实需要双默认网关,用metric区分优先级:
ip route add default via 203.0.113.1 dev eth0 metric 100 ip route add default via 10.0.0.1 dev eth1 metric 200
metric值小的优先,更多时候,正确做法是给内网网段单独加一条明细路由,例如ip route add 10.0.0.0/8 via 10.0.0.1 dev eth1。
Windows Server的操作路径
图形界面在“网络连接属性IPv4高级”里分别设置,内网网卡的高级TCP/IP设置中取消“自动跃点”,手动填一个较大的接口跃点数。
命令行更直接:
New-NetIPAddress -InterfaceAlias "以太网 2" -IPAddress 10.0.0.20 -PrefixLength 24 Set-NetIPInterface -InterfaceAlias "以太网 2" -InterfaceMetric 200
北京、上海等地的托管机房在申请公网IP段时,通常还要走备案和IP资源审核流程,运营商分配的地址段也存在地域差异,落地前先和机房确认可用网段。
公网IP多少钱一个月,成本怎么算
这块没有统一价,公网IP的费用通常由两部分构成:IP地址本身的保有费,加上带宽或流量费。
- 按固定带宽计费:适合流量平稳的对外服务,带宽买断,超用不额外收费。
- 按使用流量计费:适合访问量波动大的场景,闲时几乎不花钱。
- 共享带宽:多台实例共用一个带宽包,单价更低,是控制成本的主要手段。
近年来不少云厂商对绑定了实例的EIP免收地址费,只收带宽费;未绑定的闲置IP则可能收取保有费,所以别申请一堆EIP放着不用,选型时先估算峰值带宽,再对比按带宽和按流量的月度账单,多数情况下业务稳定后按带宽更省。
私网机器怎么安全出网:NAT与防火墙配置
Linux做NAT网关的经典配置是开启转发加MASQUERADE:
sysctl -w net.ipv4.ip_forward=1 iptables -t nat -A POSTROUTING -s 10.0.0.0/8 -o eth0 -j MASQUERADE
用firewalld更简单:firewall-cmd --add-masquerade --permanent再reload。
内网服务器本身的网关要指向这台NAT机的内网地址,DNS可以填公共DNS,做完用curl -I https://www.baidu.com验证,安全上记得在NAT机的公网侧只放行必要端口,别把转发机变成跳板。
配完不通?按这个顺序排查
ip addr确认地址真的挂上了,别只看配置文件。ip route确认默认路由指向正确的网关。- 本机
ping网关,通说明二层没问题。 - 外部
ping公网IP,不通先查云安全组和系统防火墙。 - 能ping通但服务连不上,查服务是否监听0.0.0.0而非127.0.0.1。
- DNS解析异常,检查
/etc/resolv.conf是否被覆盖。
业内专家指出,超过一半的“公网IP配好了却访问不了”,根因集中在安全组和监听地址两处,而不是IP配置本身。
服务器公网和私网IP常见问题
云服务器只有一个私网IP,能直接当公网用吗?
不能,私网IP在互联网上不可路由,外部主机无法直接寻址,必须通过EIP绑定、NAT网关或负载均衡做地址转换,才能被公网访问。
一台服务器可以同时有多个公网IP吗?
可以,云上通常支持一块弹性网卡绑定多个EIP,物理服务器也可在同一网卡上配置多个公网地址或使用辅助IP,但要注意每个IP对应的安全组规则和带宽计费,避免成本失控。
内网服务器访问外网必须要有公网IP吗?
不需要,通过NAT网关或自建NAT转发,私网实例就能以共享的公网出口访问互联网,同时不暴露入方向端口,这也是生产环境推荐的默认架构。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/790139.html


