发布日期:2026年5月24日
FRP穿透数据库:安全访问内网MySQL/Redis/MongoDB
数据库是企业最核心的数据资产,通常部署在内网中,禁止外网直接访问。但在某些场景下,开发人员需要远程连接内网数据库进行调试,运维人员需要在外出时紧急处理数据库问题,数据分析人员需要从办公网络访问生产数据库执行查询。通过FRP穿透数据库服务,可以在保证安全的前提下实现灵活的远程数据库访问需求。
一、MySQL穿透配置
MySQL默认监听3306端口。在frpc.ini中添加:[mysql] type=tcp local_ip=127.0.0.1 local_port=3306 remote_port=33060。remote_port建议使用非标准端口(非3306),增加隐蔽性。配置完成后,使用MySQL客户端连接:mysql -h frps服务器IP -P 33060 -u user -p。连接前请确保MySQL用户允许远程连接(检查mysql.user表的host字段),并已授予必要的权限。
二、Redis穿透配置
Redis默认监听6379端口。穿透配置:[redis] type=tcp local_ip=127.0.0.1 local_port=6379 remote_port=63790。连接命令:redis-cli -h frps服务器IP -p 63790。Redis安全注意事项:确保Redis已设置requirepass密码认证,避免无密码暴露在公网;检查bind配置,确保Redis只监听内网地址;如果Redis用于缓存敏感数据,建议在FRP层面启用TLS加密传输。
三、数据库穿透安全最佳实践
数据库穿透务必遵循最小权限原则:为远程访问创建专用数据库账户,仅授予必要的数据读取权限,禁止授予DROP、DELETE、GRANT等高危权限。建议设置访问时间窗口:仅在需要时启动frpc穿透服务,使用完毕后立即停止。对于生产数据库,建议配置IP白名单:在frps服务器上使用iptables限制remote_port端口仅允许特定IP访问。启用FRP的TLS加密传输,确保数据库连接数据全程加密,防止敏感SQL语句和数据内容被中间人窃取。