如何将子域名映射到内部IP?实现通过子域名访问NAS等内网服务
嘿,这个需求太常见了,刚好可以用Apache的反向代理功能完美解决——既让子域名好记,又能复用你现有的HTTPS证书,我给你一步步拆解操作:
实现步骤
1. 先搞定DNS解析
首先得让nas.example.com能指向你的Apache服务器,分两种场景:
- 如果需要外网访问:去你的域名服务商后台,添加一条A记录,把
nas.example.com指向你的家庭公网IP(要是你家是动态IP,记得配合DDNS服务自动更新IP) - 如果只需要内网访问:在路由器的内网DNS设置里添加映射,或者在每个设备的hosts文件里写
[你的Apache服务器内网IP] nas.example.com
2. 启用Apache的反向代理模块
Apache默认可能没开反向代理相关模块,先在终端执行命令开启:
# 如果你用Debian/Ubuntu系 sudo a2enmod proxy proxy_http proxy_ssl ssl sudo systemctl restart apache2 # 如果你用RHEL/CentOS系 sudo yum install mod_proxy mod_proxy_http mod_ssl sudo systemctl restart httpd
这些模块是实现反向代理和HTTPS支持的核心,必须开。
3. 创建子域名的虚拟主机配置
接下来给nas.example.com单独写个配置文件,路径根据系统不同略有区别:
- Debian/Ubuntu:
/etc/apache2/sites-available/nas.example.com.conf - RHEL/CentOS:
/etc/httpd/conf.d/nas.example.com.conf
把下面的内容复制进去,记得替换掉证书路径和NAS的内网地址:
<VirtualHost *:443> ServerName nas.example.com # 启用HTTPS,复用你现有的example.com证书 SSLEngine on SSLCertificateFile /path/to/your/example.com.crt # 替换成你的证书文件路径 SSLCertificateKeyFile /path/to/your/example.com.key # 替换成你的私钥文件路径 # 要是有中间证书,也加上这行 # SSLCertificateChainFile /path/to/your/chain.crt # 核心反向代理配置:把请求转发到NAS的Web端 ProxyPass / https://192.168.0.200:5001/ ProxyPassReverse / https://192.168.0.200:5001/ # 可选但重要:修复请求头部,让NAS能识别反向代理过来的请求 RequestHeader set X-Forwarded-Proto "https" RequestHeader set X-Forwarded-Port "443" # 日志配置(方便排查问题) ErrorLog ${APACHE_LOG_DIR}/nas.example.com.error.log CustomLog ${APACHE_LOG_DIR}/nas.example.com.access.log combined </VirtualHost> # 可选:把HTTP请求强制重定向到HTTPS <VirtualHost *:80> ServerName nas.example.com Redirect permanent / https://nas.example.com/ </VirtualHost>
4. 验证配置并重启Apache
先检查配置有没有语法错误:
# Debian/Ubuntu sudo apache2ctl configtest # RHEL/CentOS sudo httpd -t
如果输出Syntax OK,就重启Apache让配置生效:
# Debian/Ubuntu sudo systemctl restart apache2 # RHEL/CentOS sudo systemctl restart httpd
5. 给NAS做个小配置(避免踩坑)
因为你是反向代理到NAS的HTTPS地址,可能会遇到证书验证问题(比如NAS用的是自签证书):
- 要是出现502错误,可以在Apache配置里加一行跳过证书验证(仅限内网环境,外网不建议这么做):
ProxySSLVerify none - 更安全的做法是把NAS的证书导入到Apache的信任存储里
- 另外,Synology DSM需要在「控制面板-登录门户-高级」里,把你的Apache服务器内网IP加入到「信任的反向代理服务器」列表,不然可能会出现登录异常
最后测试访问
现在直接在浏览器输入https://nas.example.com,就能访问你的NAS Web端了——既用了好记的子域名,又复用了现有的HTTPS证书,完美符合你的需求!
内容的提问来源于stack exchange,提问作者suamikim
相关产品推荐
相关产品推荐

