1.
问题概述与常见表现
- 表现一:浏览器访问Discuz云平台域名返回超时或ERR_CONNECTION_REFUSED。
- 表现二:nslookup/dig显示A记录指向错误IP或返回SERVFAIL。
- 表现三:traceroute在香港节点被拦截或丢包率高(>30%)。
- 表现四:服务器日志中看到大量404/502或外部IP被DROP。
- 表现五:使用CDN或DDoS防护时,控制台显示流量被清洗或源站被切换为黑洞。
- 表现六:主机提供商防火墙策略(如阿里云/腾讯云/轻量VPS)把80/443端口限制为外部访问受限。
2.
快速排查步骤(DNS优先)
- 步骤一:本地运行dig domain.com A @8.8.8.8 和 dig @香港运营商DNS,确认A/AAAA是否一致。
- 步骤二:检查域名的TTL值与生效时间,示例TTL建议设置为300秒临时调试。
- 步骤三:查看域名DNS记录是否被CNAME指向CDN,若使用Cloudflare请检查Proxy(橙色云)状态。
- 步骤四:通过traceroute -n domain.com 或 mtr 查看到达香港服务器的路径与丢包点。
- 步骤五:在服务器上用curl -I http://127.0.0.1:80 与 curl -I http://外网IP 测试本地服务与外网访问差异。
- 步骤六:确认域名解析在各地生效,可用在线DNS查解析(例如dnspod/Google Public DNS检查)。
3.
防火墙与主机配置核查
- 核查一:检查服务器side防火墙(ufw/iptables/nftables)是否允许80/443端口。示例命令:sudo iptables -L -n --line-numbers。
- 核查二:若使用UFW,运行 sudo ufw status verbose,确保“ALLOW IN”含80、443、22。
- 核查三:查看云厂商控制台的安全组规则,确保公网安全组放行0.0.0.0/0的80/443。
- 核查四:确认服务器是否启用DDoS防护策略导致源站被黑洞(检查控制台“清洗类型/策略”)。
- 核查五:检查Nginx监听配置,示例:listen 80 default_server; listen 443 ssl; 并确认server_name与证书正确。
- 核查六:评估是否有Fail2Ban等工具错误阻断正常IP,查看 /var/log/auth.log 与 fail2ban-client status。
4.
具体修复命令与示例配置
- 示例一:DNS修改(将域名A记录指向香港VPS 203.195.200.101,TTL临时设为300):zone面板中A @ 203.195.200.101 TTL 300。
- 示例二:解除防火墙阻断(Ubuntu示例):sudo ufw allow 80/tcp; sudo ufw allow 443/tcp; sudo ufw reload。
- 示例三:iptables快速放行命令示例:sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT; sudo iptables -I INPUT -p tcp --dport 443 -j ACCEPT; sudo iptables-save。
- 示例四:Nginx server块示例:server_name forum.example.com; listen 80; root /var/www/discuz; index index.php index.html;。
- 示例五:若使用CDN(如Cloudflare),临时将Proxy置为DNS only,等待TTL过期并验证直连是否恢复。
- 示例六:若DDoS防护误触,联系机房客服撤销黑洞/清洗规则并白名单源站IP。
5.
真实案例:香港VPS无法访问Discuz云的修复过程
- 案例背景:客户使用香港KVM VPS,IP 203.195.200.101,Discuz云域名 forum.example.com,使用外部CDN与阿里云DDoS防护。
- 排查结果:dig 指向正确IP,但外网访问超时,traceroute第4跳在ISP处丢包。云厂商控制台显示“自动黑洞触发”。
- 处理过程:临时在控制台关闭自动清洗,调整DDoS策略为“仅触发告警”,同时把CDN Proxy设为DNS only。
- 服务恢复:解除后5分钟内回复访问,使用curl测得HTTP 200。后续将防火墙规则精简并在安全组中白名单CDN回源IP。
- 后续建议:将重要控制台告警设置邮件与电话并保持源站定期备份与监控。
6.
性能与对比数据示例(修复前后)
- 说明:以下为该真实案例在香港到内地测试节点的平均延迟与HTTP响应比较(时间为ms)。
| 项目 | 修复前 | 修复后 |
| Ping 平均延迟 | 120ms(丢包30%) | 45ms(丢包0%) |
| HTTP 首字节时间(TTFB) | 800ms | 120ms |
| HTTP 状态 | 连接超时/502 | 200 OK |
- 结论:通过调整DNS生效策略、解除云端黑洞、优化防火墙规则与CDN回源设置,可显著恢复Discuz云平台访问并降低延迟。
7.
预防建议与运维注意事项
- 建议一:上线变更时先把DNS TTL设低(300)便于回滚,再恢复至3000或更高。
- 建议二:将CDN回源IP与服务器IP加入白名单,避免误触DDoS清洗规则。
- 建议三:定期备份DNS记录与主机配置,保存nginx/conf、iptables-save输出与证书文件。
- 建议四:监控指标包括丢包率、TTFB、CPU/内存与连接数,遇异常立即切换维护页面。
- 建议五:与机房保持沟通渠道,制定紧急响应流程(联系电话、工单优先级)。
- 建议六:在生产环境中建议使用双线或多节点容灾并结合WAF以减少单点故障影响。
来源:DNS与防火墙设置导致香港服务器访问不了discuz云平台的修复方法