服务器租用与托管

物理服务器怎么绑定公网 IP 和域名:配置步骤与示例

物理服务器绑定公网 IP 和域名分四步:在服务器操作系统里按服务商给的参数配置静态公网 IP 并验证能上网;在域名服务商的 DNS 控制台添加 A(IPv4)和 AAAA(IPv6)记录指向这个 IP;在 Web 服务器里按域名绑定站点、放行 80 和 443 端口;服务器在中国内地机房的,网站上线前先完成 ICP 备案。

作者 顶联产品团队发布于 5 分钟阅读

物理服务器怎么绑定公网 IP 和域名,流程是固定的四步:配 IP → 做解析 → 绑站点 → 办备案。先按服务商给的参数在服务器系统里配好静态公网 IP、网关和 DNS,确认能 ping 通外网;再去域名服务商的 DNS 管理页把域名的 A 记录(IPv4)和 AAAA 记录(IPv6)指向这个 IP;然后在 Nginx、Apache 或 IIS 里按域名绑定站点,防火墙放行 80 和 443;服务器在中国内地机房的,网站对外开放前要完成 ICP 备案。下面按这个顺序给出每一步的具体配置和检查方法,示例里的 203.0.113.0/24 和 2001:db8::/32 是文档专用地址段,请替换成你自己的。

第一步:拿齐网络参数

服务器托管或租用开通后,服务商会给你一组参数,缺一项都配不通:

参数 示例 说明
公网 IP 203.0.113.10 分给这台服务器的地址,可能不止一个
子网掩码 / 前缀长度 255.255.255.0 或 /24 决定哪些地址和你在同一网段,写错会导致同段不通
网关 203.0.113.1 机房交换机或路由器的地址,所有出网流量先送到这里
DNS 服务器 服务商提供,或公共 DNS 如 223.5.5.5、119.29.29.29 服务器自己解析域名用
IPv6 地址与网关 2001:db8:1::10/64、2001:db8:1::1 有 IPv6 时提供
接线网口 eno1、ens192 等 公网线插在哪个网口,多网口服务器尤其要确认
MAC 绑定 是 / 否 很多机房把 IP 和网卡 MAC 绑定,换网卡要通知机房

网口名称用 ip -br link 查看,状态为 UP 且有流量的那个通常就是接了公网线的。租用服务器的话,这些参数一般在服务商的客户面板里能直接看到。

第二步:配置静态公网 IP

机房一般不为公网段提供 DHCP,公网 IP 要手工静态配置。下面给几种常见系统的做法。

Ubuntu(netplan)

Ubuntu 18.04 起默认用 netplan。编辑 /etc/netplan/ 下的 yaml 文件(文件名因安装方式而异,用 ls /etc/netplan/ 查看):

network:
  version: 2
  renderer: networkd
  ethernets:
    eno1:
      dhcp4: false
      dhcp6: false
      addresses:
        - 203.0.113.10/24
        - 2001:db8:1::10/64
      routes:
        - to: default
          via: 203.0.113.1
        - to: default
          via: 2001:db8:1::1
      nameservers:
        addresses: [223.5.5.5, 119.29.29.29]
# 先试运行,120 秒内不确认会自动回滚,远程改网络配置时能防止把自己锁在外面
sudo netplan try
# 确认无误后正式应用
sudo netplan apply

yaml 对缩进敏感,统一用两个空格。to: default 需要 netplan 0.103 及以上(Ubuntu 20.04 已更新到该版本),更老的版本改写成 to: 0.0.0.0/0,IPv6 为 to: ::/0。如果服务商给的是 /32 单个地址加一个不同网段的网关(部分机房的做法),要先加一条到网关的链路路由,再把默认路由标记为 on-link:

      addresses:
        - 203.0.113.10/32
      routes:
        - to: 203.0.113.1/32
          scope: link
        - to: default
          via: 203.0.113.1
          on-link: true

Debian(ifupdown)

Debian 默认不用 netplan,配置写在 /etc/network/interfaces:

auto eno1
iface eno1 inet static
    address 203.0.113.10/24
    gateway 203.0.113.1

iface eno1 inet6 static
    address 2001:db8:1::10/64
    gateway 2001:db8:1::1

DNS 写在 /etc/resolv.conf 里,每行一条 nameserver 223.5.5.5。改完执行 sudo systemctl restart networking,或者直接重启服务器。

RHEL / Rocky / AlmaLinux / CentOS Stream(nmcli)

# 查看连接名,通常与网口同名
nmcli con show
# 配置 IPv4
nmcli con mod eno1 ipv4.method manual ipv4.addresses 203.0.113.10/24 \
  ipv4.gateway 203.0.113.1 ipv4.dns "223.5.5.5 119.29.29.29"
# 配置 IPv6(没有 IPv6 可跳过)
nmcli con mod eno1 ipv6.method manual ipv6.addresses 2001:db8:1::10/64 \
  ipv6.gateway 2001:db8:1::1
# 重新激活连接使配置生效
nmcli con up eno1

多个公网 IP 写在同一个 ipv4.addresses 里用逗号分隔,附加的 IP 不需要再写网关。

Windows Server(PowerShell)

# 网卡别名用 Get-NetAdapter 查看;先关掉该网卡的 DHCP
Set-NetIPInterface -InterfaceAlias "Ethernet" -Dhcp Disabled
New-NetIPAddress -InterfaceAlias "Ethernet" -IPAddress 203.0.113.10 -PrefixLength 24 -DefaultGateway 203.0.113.1
Set-DnsClientServerAddress -InterfaceAlias "Ethernet" -ServerAddresses 223.5.5.5,119.29.29.29
# 附加 IP:不带网关
New-NetIPAddress -InterfaceAlias "Ethernet" -IPAddress 203.0.113.11 -PrefixLength 24

图形界面在“网络和共享中心 → 更改适配器设置 → 以太网 → 属性 → Internet 协议版本 4”里填同样的内容。

验证

ip -br addr            # 网口上应出现 203.0.113.10/24
ip route               # 应有一条 default via 203.0.113.1
ping -c 3 203.0.113.1  # 先通网关
ping -c 3 223.5.5.5    # 再通外网
dig +short example.com # DNS 能解析

网关不通,排查顺序是:网线插的网口对不对、IP 和掩码有没有写错、机房是否做了 MAC 绑定而你换了网卡、交换机端口 VLAN 是否正确。前两项自己改,后两项要找机房。网关通、外网不通,多半是网关填错或机房还没开通端口。

第三步:把域名解析到服务器

登录域名所在服务商的 DNS 管理页面,添加记录:

记录类型 主机记录 记录值 作用
A @ 203.0.113.10 example.com 指向 IPv4
A www 203.0.113.10 www.example.com 指向 IPv4
AAAA @ 2001:db8:1::10 example.com 指向 IPv6
AAAA www 2001:db8:1::10 www.example.com 指向 IPv6
CNAME blog www.example.com 子域名别名到 www,改 IP 时只改一处

几条规则:根域名(@)不能用 CNAME,只能用 A/AAAA;TTL 新建时可以用默认值(常见 600 秒),计划换 IP 前提前把 TTL 调小;泛解析 * 会把所有未定义的子域名都指向服务器,不需要就别加,避免被误用。

解析加好后验证,分别查权威 DNS 和公共递归 DNS,排除缓存影响:

# 先查域名的权威 DNS 是谁,再直接向它查询,结果不受缓存影响
dig +short NS example.com
dig +short @ns1.example-dns.com example.com A
# 问公共递归 DNS,看是否已传播
dig +short @223.5.5.5 www.example.com A
dig +short @223.5.5.5 example.com AAAA

Windows 上用 nslookup www.example.com 223.5.5.5。返回的 IP 正确,解析就完成了;没返回或返回旧值,等 TTL 过期再查。

第四步:Web 服务器按域名绑定站点

域名解析只是把请求送到服务器,服务器还要知道这个域名对应哪个站点。Web 服务器靠 HTTP 请求头里的 Host 字段区分。

Nginx

# /etc/nginx/conf.d/example.com.conf
server {
    listen 80;
    listen [::]:80;
    server_name example.com www.example.com;
    root /var/www/example.com;
    index index.html index.php;
}

# 兜底:直接用 IP 访问,或未绑定的域名指向本机时直接断开,不暴露任何站点
server {
    listen 80 default_server;
    listen [::]:80 default_server;
    server_name _;
    return 444;
}
sudo nginx -t && sudo systemctl reload nginx

Apache

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example.com
</VirtualHost>

Debian/Ubuntu 上文件放在 /etc/apache2/sites-available/,用 a2ensite example.com.conf 启用后 systemctl reload apache2;RHEL 系放在 /etc/httpd/conf.d/,apachectl configtest 通过后 systemctl reload httpd。

IIS

IIS 管理器 → 选中网站 → 右侧“绑定” → 添加:类型 http,IP 地址选“全部未分配”或指定公网 IP,端口 80,主机名填 example.com;再添加一条主机名为 www.example.com 的绑定。

放行防火墙并上 HTTPS

服务器本机防火墙放行 80 和 443:

# Ubuntu / Debian
sudo ufw allow 80,443/tcp
# RHEL 系
sudo firewall-cmd --permanent --add-service=http --add-service=https && sudo firewall-cmd --reload
# Windows
New-NetFirewallRule -DisplayName "Web 80/443" -Direction Inbound -Protocol TCP -LocalPort 80,443 -Action Allow

域名解析生效、80 端口可从公网访问后,就可以签发证书。用 certbot 为 Nginx 申请并自动配置:

sudo certbot --nginx -d example.com -d www.example.com

certbot 的 Nginx 插件默认走 HTTP-01 验证,要求域名已经解析到这台服务器且 80 端口对外可达,所以这一步必须放在解析和绑定之后。

备案:内地机房的前提条件

服务器放在中国内地机房、用域名对外提供网站服务,必须先办理 ICP 备案(非经营性互联网信息服务备案)。要点:

  • 向谁办:由为你提供服务器的接入服务商(机房或服务器租用商)在工信部 ICP 备案系统中提交,审核机关是网站主办者所在地的省级通信管理局。你自己不能绕过接入商直接备案。
  • 前提:域名已完成实名认证,域名持有者与备案主体一致;服务器 IP 属于这家接入商。
  • 未备案的后果:接入商会对未备案域名的 Web 端口进行阻断,网站打不开;解析本身不受影响。
  • 顺序:IP 可以先配好,解析也可以先加,但 Web 服务对外开放要等备案通过,并把备案号放到网站底部。
  • 其他:经营性网站需要另外办理增值电信业务经营许可(ICP 许可证);网站开通后还要办理公安机关的联网备案。审核周期、材料清单以接入商和当地通信管理局公布的要求为准。

服务器在香港、澳门、台湾或海外机房的,不需要 ICP 备案,解析加好就能访问;代价是内地用户访问的延迟和线路质量取决于机房的回国线路。

绑好之后打不开怎么排查

现象 常见原因 怎么确认
ping 网关不通 网口、IP/掩码、MAC 绑定或 VLAN 问题 ip -br addr 核对配置,联系机房核对 MAC 与端口
网关通、外网不通 网关地址错,或机房端口未开通 ip route 看默认路由,找机房确认
用 IP 能打开、域名打不开 解析未生效或记录值填错 dig +short 域名 看返回的 IP
域名解析正确,但连接超时 本机防火墙未放行,或未备案被阻断 在服务器上 curl -I http://127.0.0.1 能通,则是外部拦截
打开的是默认页或别的站点 server_name / ServerName 与域名不一致 nginx -T 查看实际加载的 server_name
浏览器提示证书错误 证书域名不含当前访问的域名 证书要同时包含 example.com 和 www.example.com
邮件被收件方拒收 IP 没有反向解析(PTR) PTR 由 IP 的持有方设置,向机房或服务商提工单

租用服务器时这些信息在哪看

租用服务器的用户不需要自己规划 IP:IP、网关、掩码和 DNS 由服务商分配,通常在客户面板的服务器详情页列出;装系统时服务商的镜像一般已经把公网 IP 配进系统,你只需核对。做得完整的面板还能让你自己重装系统、进救援模式、打开 VNC 控制台,网络配错把自己锁在外面时,用控制台改回来比提工单快得多(例如 Toplink DCIM 的客户自助端就把这几项放在一起)。托管自己的服务器则相反,这些参数要在上架前向机房索取,并且提前配好带外管理口,否则改错一次网络配置就得去一趟机房。

常见问题

一台服务器能绑定多个域名吗?

可以。多个域名的 A 记录都指向同一个 IP,再在 Nginx 或 Apache 里为每个域名配置一个 server 或 VirtualHost,Web 服务器按请求头里的 Host 字段把请求分到对应站点,IP 数量不限制域名数量。

域名解析改了多久生效?

权威 DNS 上的记录几乎立即更新,用户看到新结果要等各级递归 DNS 缓存按旧记录的 TTL 过期,通常几分钟到几小时。计划切换 IP 前一天把 TTL 调到 300 秒以内,切换后的等待时间就能压到几分钟。更换 DNS 服务商(改 NS 记录)的生效时间更长,通常以一两天计。

换了服务商或换了 IP,备案要重新办吗?

备案主体和域名不变、只在同一家接入商内换 IP 的,向接入商报备变更即可;换到另一家接入商,要在新接入商处办理接入备案(新增接入),原备案号保留,不用从头备案。材料和流程以新接入商的要求为准。

服务器只有 IPv6 地址,域名能用吗?

能,添加 AAAA 记录即可,但只有具备 IPv6 网络的用户能访问。目前多数用户仍依赖 IPv4,生产业务应同时配置 A 和 AAAA 记录。

想看看在你的机房里怎么用?

从一次产品演示开始,梳理你的业务链路。

查看价格
服务热线 400-112-2951

让我们聊聊你的 IDC 业务

扫码添加企业微信,预约产品演示或申请试用。

Toplink 企业微信二维码

长按保存或使用企业微信 / 微信扫描

也可致电
400-112-2951
Telegram
@TopLink88