使用frpc链接内网的mysql
以下是配置 frpc 连接内网 MySQL 服务的详细步骤:
1. 准备工作
-  frps 服务器:已部署在公网 IP 1 1.117.11.245,假设 frps 的默认端口为7000。
-  内网 MySQL 服务:运行在内网机器的 3306端口。
-  目标:通过公网 IP 1 1.117.11.245的某个端口(如3307)访问内网 MySQL。
2. 配置 frpc 客户端
在内网机器上修改 frpc.ini 文件,添加以下内容:
[common]
server_addr = 11.117.11.245  # frps 的公网 IP
server_port = 7000          # frps 的服务端口# 配置 MySQL 隧道
[mysql]
type = tcp                  # 使用 TCP 协议
local_ip = 127.0.0.1        # 内网 MySQL 的 IP(如果是本机则填 127.0.0.1)
local_port = 3306           # 内网 MySQL 的端口
remote_port = 3307          # 公网 IP 上暴露的端口(通过此端口访问 MySQL)3. 启动 frpc 客户端
在内网机器上运行:
frpc -c frpc.ini输出应包含 ProxyName [mysql] start success,表示隧道建立成功。
4. 配置 MySQL 远程访问权限
确保内网 MySQL 允许外部连接:
-  登录 MySQL: mysql -u root -p
-  授权远程访问(替换 your_password为实际密码):CREATE USER 'remote_user'@'%' IDENTIFIED BY 'your_password'; GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%'; FLUSH PRIVILEGES;
-  修改 MySQL 配置文件(如 /etc/mysql/mysql.conf.d/mysqld.cnf):bind-address = 0.0.0.0 # 允许所有 IP 连接
-  重启 MySQL: systemctl restart mysql
5. 开放防火墙端口
在 frps 服务器 上放行 3307 端口:
# 使用 ufw(Ubuntu)
ufw allow 3307/tcp# 或使用 iptables(通用)
iptables -A INPUT -p tcp --dport 3307 -j ACCEPT6. 测试连接
从外网通过公网 IP 和端口连接 MySQL:
mysql -h 11.117.11.245 -P 3307 -u remote_user -p输入密码后,若成功登录,说明配置完成。
7. 安全增强(可选)
-  限制访问 IP:在 frps 服务器防火墙中,仅允许特定 IP 访问 3307端口。
-  启用 frp 加密: [common] tls_enable = true # 启用 TLS 加密[mysql] type = tcp use_encryption = true # 数据加密 use_compression = true # 数据压缩
故障排查
-  连接失败: -  检查 frpc日志是否有错误(如端口冲突或网络不通)。
-  确认 MySQL 的 bind-address已设置为0.0.0.0。
-  确保内网机器可以访问 frps 的 7000端口。
 
-  
-  权限问题: -  确保 MySQL 用户 remote_user@%已正确授权。
-  使用 telnet 11.117.11.245 3307验证端口是否开放。
 
-  
