如何利用HTTP隧道连接MariaDB_绕过防火墙限制技巧

张开发
2026/4/14 6:01:11 15 分钟阅读

分享文章

如何利用HTTP隧道连接MariaDB_绕过防火墙限制技巧
不能直接连因HTTP隧道不理解MySQL/MariaDB二进制协议需用ngrok或frp等支持TCP隧道的工具封装MySQL流量配置skip-name-resolve和ssl-modeDISABLED并确保bind-address、安全组及中间网络兼容。HTTP隧道能连上MariaDB吗不能直接连必须中转http隧道本身不理解mysql/mariadb协议mysql客户端发的是二进制握手包而http代理比如nginx或curl默认只处理get/post文本请求。强行把mysql流量塞进http通道服务端会直接断连或返回400 bad request——这不是配置问题是协议层不兼容。真正可行的路径只有一条用支持TCP隧道的HTTP代理工具在客户端和服务端之间建立一条“伪装成HTTP流量”的长连接通道让mysql流量走这个通道。关键不是“HTTP隧道”而是“HTTP封装的TCP隧道”。用ngrok或frp暴露MariaDB端口最省事这类工具本质是反向代理隧道它们在客户端启动一个本地监听把所有发往该端口的TCP连接比如3306加密后通过HTTPS发到公网中继节点再由中继节点转发到你指定的MariaDB服务器。整个过程对mysql客户端完全透明。frp更可控服务端部署frpsMariaDB机器跑frpc配置项type tcp不碰HTTP路由规则ngrok更快捷一行命令ngrok tcp 3306但免费版域名随机、带宽限速、连接不稳定别用ssh -R反向隧道配HTTP代理容易因Connection: keep-alive超时断开且mysql空闲时不会发心跳隧道极易被中间设备如NAT网关静默关闭mysql客户端连接时必须绕过DNS解析和SSL验证隧道建立后你拿到的是一个公网地址比如0.tcp.ngrok.io:12345但mysql默认会尝试反向DNS查主机名而这类动态域名通常没PTR记录导致连接卡住或报错Host xxx is not allowed to connect。同时隧道中继节点不提供MySQL证书ssl-modeREQUIRED会直接失败。 有道翻译AI助手 有道翻译提供即时免费的中文、英语、日语、韩语、法语、德语、俄语、西班牙语、葡萄牙语、越南语、印尼语、意大利语、荷兰语、泰语全文翻译、网页翻译、文档翻译、PDF翻

更多文章