解决没有公网ip的mysql的公网直接访问的问题

本文介绍了如何在内网云主机上通过Rinetd服务实现MySQL的3306端口映射到公网,以便于开发阶段的数据访问,同时提供了配置、下载、安装和安全控制的步骤,并强调了在不使用时应关闭Rinetd以保障安全。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

问题适用场景

出于内网的Mysql如何通过端口映射开放到公网上
在同一个公网的云主机上,用rinetd 实现一个端口转发即可。前提是这个云主机与这台mysql需要在同一个局域网范围内。

112.184.107.114 ( 公网 ):3308 --> 192.168.1.186(内网 mysql) :3306


提示:以下是本篇文章正文内容,下面案例可供参考

一、配置rinetd

vi /etc/rinetd.conf
在这里插入图片描述

二、下载安装启动rnetd

1.下载

wget http://li.nux.ro/download/nux/misc/el7/x86_64//rinetd-0.62-9.el7.nux.x86_64.rpm

2.安装:

rpm -ivh *.rpm

3.启动:

rinetd -c /etc/rinetd.conf

4.关闭:

pkill rinetd

友情提示:别忘了打开防火墙相应的端口

总结

提示:mysql一般都放在内网,这样避免被攻击,但是开发阶段,数据初始化、迁移、调试都需要外网,所以用这个rinetd做一个转发, 就给开放出来,不用了,直接kill掉即可。

### 配置 MySQL 使用公网 IP 进行远程访问 对于没有公网 IP 的情况,可以通过特定工具和服务来实现对外网的开放访问。一种方法是利用内网穿透技术,例如 cpolar 工具,这允许外部网络设备连接到位于内部网络中的 MySQL 数据库服务器[^1]。 #### 利用 Cpolar 实现内网穿透 为了使 MySQL 可以外部访问,在确保 MySQL 正常工作之后,需要配置 cpolar 来创建一条从互联网通往本地 MySQL 服务的安全隧道。此过程不需要修改任何路由器设置或者申请静态公网 IP 地址,只需要简单的几步就能完成配置。 #### 宝塔面板辅助下的 MySQL 外网访问配置 另一种方式则是借助于像宝塔这样的服务器管理平台来进行更简便的操作。通过该面板不仅可以轻松安装 MySQL 数据库环境,还能配合 cpolar 或其他类似的内网穿透解决方案迅速建立一个可供外界访问的数据接口[^2]。 #### 修改 MySQL 绑定地址与防火墙规则调整 为了让 MySQL 能够响应来自不同地方(不仅仅是localhost)的请求,还需要更改其配置文件 `/etc/mysql/my.cnf` 中 bind-address 参数值为 `0.0.0.0` ,表示接受所有合法来源的连接尝试;同时也要记得放开操作系统层面针对端口 3306 (默认情况下 MySQL 所使用的通信端口号) 的限制措施[^5]。 #### Docker 方式的 MySQL 启动及其映射策略 当采用容器化方案部署应用时,则可以直接在启动命令里指定参数让 MySQL 自动监听宿主机上的某个可用端口,并将其转发给容器内的对应位置。比如使用 `--network host` 和 `-p` 参数组合可以有效地解决这个问题[^4]。 ```bash docker run --network host \ -e MYSQL_ROOT_PASSWORD=自定义密码 \ -v /etc/mysql/data:/var/lib/mysql \ -v /etc/mysql/conf.d:/etc/mysql/conf.d \ --name mysql \ -d mysql:latest ``` 最后要提醒的是,在实际环境中应当谨慎对待安全性和性能优化方面的工作,合理规划账户权限分配机制以及定期备份重要数据资源[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值