先在域名DNS控制台把域名解析到虚拟机公网IP,再在虚拟机内的Nginx/Apache/宝塔面板中建立站点并绑定该域名,最后重载服务即可生效。整个流程不需要重启虚拟机,整个过程大约需要五到十分钟,前提是你手头已经有一台能正常访问的虚拟机和一个已实名认证的域名。
虚拟机绑定域名怎么配置?先搞懂这层逻辑关系
很多新手第一次操作时容易把“域名绑定”和“域名解析”混为一谈,行业共识认为,这两者是递进关系而不是并列关系。
- 域名解析发生在公网层,负责把“example.com”翻译成虚拟机对应的公网IP,这是访问入口。
- 域名绑定发生在虚拟机内部,负责让Web服务器(比如Nginx)在收到带着“example.com”头部的请求时,返回指定目录下的文件,这是路由规则。
如果只做解析不绑定,访问域名时大概率会看到Nginx的默认欢迎页,或者直接报403,如果只绑定不解析,域名在公网根本找不到你的虚拟机,就会出现“无法访问此网站”的提示。
理解了这层关系之后,下面的步骤就不会让你觉得混乱了,所有操作都围绕这两层展开。
虚拟机域名解析怎么做:在DNS控制台完成的第一步
不管你的虚拟机是简米云、酷番云还是华为云的,解析操作路径几乎一致,我们以最常见的酷番云为例,简米云操作逻辑相同。
添加记录的具体操作路径
- 登录域名注册商的控制台,找到“域名解析”或“DNS管理”入口。
- 进入解析记录列表,点击“添加记录”。
- 主机记录填写
www(如果要绑定主域名,则填写)。 - 记录类型选择
A(将域名指向IPv4地址)。 - 记录值填写你虚拟机的公网IP,注意是公网而非内网IP。
- TTL保持默认600秒即可,没必要刻意调小。
- 保存后等待生效,通常一小时内全球生效,国内解析一般在几分钟内就能刷新。
解析是否生效的验证方法
在本地电脑打开命令行(CMD),输入以下命令:
ping www.yourdomain.com
如果返回的IP地址和你虚拟机公网IP一致,说明解析已经工作,如果显示“找不到主机”,可以稍等五分钟后重试,或者换用nslookup www.yourdomain.com

再检查一遍更稳妥。
centos虚拟机配置域名绑定的详细步骤:Nginx手动配置篇
目前主流虚拟机系统是CentOS 7.x或Ubuntu 22.04,这里以CentOS + Nginx环境为例,这也是用户搜索“centos虚拟机配置域名绑定”时最常遇到的场景,如果你用的是宝塔面板,可以直接跳到下一个模块看图形化操作。
第一步:找到站点配置文件
Nginx的虚拟主机配置存放在/usr/local/nginx/conf/vhost/或/etc/nginx/conf.d/目录下,先看现有配置文件列表:
ls /etc/nginx/conf.d/
如果没有看到任何.conf文件,说明你的站点配置写在主配置文件nginx.conf里,不管位置在哪,操作逻辑相同。
第二步:修改server块里的server_name
编辑配置文件,比如default.conf:
vim /etc/nginx/conf.d/example.conf
核心结构如下:
server {
listen 80;
server_name www.example.com example.com;
root /var/www/example;
index index.php index.html;
}
server_name就是实现域名绑定的关键字段,如果你只写server_name www.example.com,那么直接访问example.com是无法命中这个站点的,所以建议像上面这样,把带www和不带www的域名都写上,用空格分隔。
修改完成后,必须执行语法检查:
nginx -t
如果返回syntax is ok,才允许继续重载,否则修改可能被回滚,而且当前站点访问也会短暂中断。
第三步:重载Nginx使配置生效
nginx -s reload
或者用系统服务命令:
systemctl reload nginx
重载是平滑的,不会中断现有连接,此时你在浏览器输入http://www.example.com,应该能看到/var/www/example目录下的网站内容了。
宝塔面板做域名绑定:适合新手的一条捷径
对于没有命令行基础的用户,宝塔面板把域名绑定做成了傻瓜式交互,在“centos虚拟机配置域名绑定”这个搜索词下,宝塔方案占比相当高。
站点创建时的域名绑定
- 登录宝塔面板后台,默认端口一般是
8888。 - 左侧菜单点击“网站”,然后点击“添加站点”。
- 在“域名”一栏,直接填入你要绑定的完整域名,例如
www.example.com。 - 如果还需要让主域名也生效,用换行再写一行
example.com。 - 其他选项比如PHP版本、数据库类型保持默认即可,点提交。

宝塔会自动创建站点目录、生成配置文件,并重载Nginx,整个过程耗时在十秒左右。
后续修改绑定域名的位置
如果你已经建好站点、需要临时增加或更换域名,按以下路径操作:
- 在“网站”列表中找到对应站点,点击“设置”。
- 找到“域名管理”或“域名绑定”选项卡。
- 在输入框中添加新域名,点击“添加”保存。
宝塔支持将多个域名同时绑定到同一个站点目录,适用于同一项目有多个后缀域名的场景,避免重复建站导致目录混乱,此时你只需要把新域名的A记录解析到相同IP即可。
两种绑定方式和区别对比
| 对比维度 | 手动修改Nginx配置 | 宝塔面板绑定 |
|---|---|---|
| 适合人群 | 有Linux基础的运维人员 | 新手站长、建站用户 |
| 操作速度 | 需要编辑文件,较慢 | 输入域名点按钮,几十秒搞定 |
| 出错概率 | 容易漏写分号或括号 | 面板自动校验,基本不会出错 |
| 可移植性 | 高,任意Linux发行版通用 | 依赖宝塔环境,换机器需重装面板 |
| 多域名支持 | 手动写,容易遗漏 | 可视化添加,一目了然 |
如果是生产环境,建议直接手动管理配置文件,如果是个人博客或试验性项目,宝塔足够稳定,效率高很多。
虚拟机绑定域名后访问不了?按顺序排查这五个位置
相当一部分用户在完成上述步骤后仍访问失败,这里的坑并不在于绑定动作本身,而在于你忽略了虚拟机的网络访问控制层。
云服务商安全组端口
这是最容易被忽略的一层,国内主流云厂商的虚拟机默认安全组只放行22端口和3389端口,80端口和443端口默认是关闭的。
登录云厂商控制台,找到你的虚拟机实例,点击“安全组”或“防火墙”标签:
- 添加入方向规则。
- 协议选择HTTP(80)和HTTPS(443)。
- 来源设为
0.0.0/0。 - 保存后立即生效,无需重启机器。

虚拟机内部防火墙
部分CentOS镜像自带firewalld并且默认开启,在虚拟机里执行:
firewall-cmd --permanent --add-service=http firewall-cmd --permanent --add-service=https firewall-cmd --reload
执行完这三条命令,内部防火墙就放行了Web流量,Ubuntu系统一般默认没有主动防火墙,跳过这一步即可。
域名解析是否指向了旧IP
如果你之前把域名解析到过别的服务器,或者换过虚拟机公网IP,本地DNS缓存可能会残留旧记录,在本地电脑执行:
ipconfig /flushdns
然后重新访问域名,如果其他设备能打开、只有你的电脑打不开,大概率就是本地DNS缓存惹的祸。
Nginx配置文件语法错误
手动配置时最容易出错的地方是:
- 忘记在
server_name行尾加分号。 - 括号不匹配导致无法正常解析配置。
- 站点目录不存在或归属用户错误。
执行nginx -t会直接告诉你具体哪一行有问题,按提示修改后重新reload。
站点目录是否缺少默认索引文件
如果你访问域名出现403或404,说明绑定成功但内容没有指定,检查站点根目录下是否有index.html或index.php文件,很多人的问题是目录是空的,Nginx找不到可展示的页面,自然报错。
虚拟机域名绑定常见问题和排查方法
问:同一个虚拟机可以绑定多个域名吗?
可以,一个公网IP可以绑定无数个域名,前提是每个域名都正确解析到这个IP,在Nginx中,新增一个server块并设置对应的server_name和root目录即可;在宝塔中直接在“添加站点”里填多个域名,或者为每个站点单独添加域名记录,不同的域名可以指向同一个目录,也可以各自指向不同的独立站点目录,互不干扰。
问:虚拟机的IP变了,域名绑定的配置需要改吗?
域名绑定规则在虚拟机内部不依赖公网IP,所以配置文件不用动,你只需要回到域名DNS控制台,把A记录的值修改为新的公网IP即可,其余什么都不用动,等待解析生效后网站恢复访问,这也是域名绑定比直接用IP访问更灵活的原因IP变了,用户不需要知道。