当前位置: 首页 > news >正文

如何通过跳板机访问内网 Mysql 服务器

很多场景下内网数据库不能直接对公网开放,但我们又需要在外网机器上用数据库客户端(如 DBeaver、MySQL Workbench)连接调试或做数据迁移。常见解决方法是通过**跳板机(Jump Server)**做中转。本文用通俗语言把流程讲清楚,并给出常用命令和注意点。


一、思路概览

常见做法有两种:

  1. SSH 隧道(推荐):在客户端发起到跳板机的 SSH 隧道,从跳板机再访问内网 MySQL。安全、临时、无需在跳板机上长期开放 3306 端口。
  2. 跳板机做端口转发 / NAT(不太推荐):把跳板机的 3306 暴露到外网(或绑定到跳板机 IP),客户端直接连跳板机。配置更改多、风险更大,但有时用于长期对接。

下面我按你给的步骤,把环境准备、配置流程、客户端设置和安全注意都写清楚。


二、环境准备

  1. 让跳板机位于内网 —— 跳板机(A)应能访问内网的 MySQL(B)。A 与 B 在同一个内网或路由可达。
  2. 让跳板机和操作机在同一个网络下(热点/wifi/网线) —— 这里“操作机”是你用来连接的机器(本地笔记本)。通常你是远端在公网,通过 SSH 连接跳板机;如果是物理局域网调试,确保两台能互通。

三、跳板机安装 SSH

在跳板机上安装并启动 SSH 服务(以 Ubuntu 为例):

sudo apt update
sudo apt install -y openssh-server
sudo systemctl enable --now ssh
# 检查状态
sudo systemctl status ssh

建议:

  • SSH key 登录,关闭密码登录(修改 /etc/ssh/sshd_configPasswordAuthentication no),然后 sudo systemctl restart ssh
  • 若需要远程通过公网访问跳板机,确保跳板机的防火墙/云安全组放行 SSH(默认 22)。

四、跳板机设置静态外网 IP、设置网关

如果跳板机有公网或固定外网 IP,设置静态外网 IP(或在云面板上固定弹性 IP)。以 Ubuntu 22.04(netplan)为例:
/etc/netplan/01-netcfg.yaml 示例:

network:version: 2renderer: networkdethernets:eth0:addresses:- 203.0.113.10/24   # 你的外网IP/掩码gateway4: 203.0.113.1  # 网关nameservers:addresses: [8.8.8.8, 1.1.1.1]

应用配置:

sudo netplan apply

(不同发行版或云厂商界面不同,按实际环境操作。)


五、操作机设置网关

如果你的操作机在同一局域网内(比如现场调试),确保网关与跳板机在同一网段、能互通。大多数情况下,操作机使用 DHCP 即可,不必手动设置。如果你确实要手动设置静态 IP,确保网段、网关、DNS 配置正确。


六、跳板机设置静态内网 IP、设置网关

跳板机通常有两张网卡或一个同时能访问公网和内网的路由:

  • 内网 IP(能访问 MySQL):例如 10.0.0.5,这是跳板机在内网的地址。
  • 如果需要静态,和外网 IP 一样在 netplan 或 /etc/network/interfaces 中配置内网网卡。

示例(netplan 支持多网卡):

ethernets:eth0:         # 外网addresses: [203.0.113.10/24]gateway4: 203.0.113.1eth1:         # 内网addresses: [10.0.0.5/24]

七、实际连接方法

下面给出两种常用实现方式 —— A. 用数据库客户端自带的 SSH 隧道功能(推荐)B. 在跳板机上做端口转发

A. 客户端内置 SSH Tunnel(推荐)

大多数 GUI 客户端(DBeaver、MySQL Workbench、DataGrip)都支持 SSH 隧道设置。设置思路:

  • SSH(跳板机)信息:Host = 跳板机公网/外网 IP(或域名),Port = 22,User = 跳板机用户名,Auth = 密钥或密码。
  • 数据库(MySQL)信息:Host = 内网 MySQL 的真实 IP(例如 10.0.1.20),Port = 3306,User/Password = MySQL 的账号密码(和在 MySQL 上的用户名/密码一致)。

举例(DBeaver):

  • 新建 MySQL 连接,选“使用 SSH 隧道”(Use SSH Tunnel)。
  • SSH Host:203.0.113.10(跳板机外网IP)
  • SSH User:jumpuser,Auth:私钥文件或密码。
  • Database Host:10.0.1.20(内网 MySQL IP)
  • DB User/Password:MySQL 的用户名/密码。
    连接后客户端先通过 SSH 隧道到跳板机,再从跳板机访问内网 MySQL。

文章转载自:

http://geXoFQft.qygfb.cn
http://I2CCwllM.qygfb.cn
http://nqg9AsPQ.qygfb.cn
http://4PEcm4T5.qygfb.cn
http://RNVrh1Aa.qygfb.cn
http://rQ9lESEs.qygfb.cn
http://J9FOlxsC.qygfb.cn
http://a0LelQk9.qygfb.cn
http://Ptl7Jgy4.qygfb.cn
http://ndZlKBt2.qygfb.cn
http://pilF5Ae4.qygfb.cn
http://teSRuXGN.qygfb.cn
http://pQu4lx3m.qygfb.cn
http://kJP8d9VS.qygfb.cn
http://zJ8oZlU5.qygfb.cn
http://vTdRkcTp.qygfb.cn
http://DXD6HTz9.qygfb.cn
http://QLbH7LlX.qygfb.cn
http://etLaJKxb.qygfb.cn
http://8N6gPEl1.qygfb.cn
http://HfS76DFF.qygfb.cn
http://U674Kqna.qygfb.cn
http://nuIiOA04.qygfb.cn
http://Xxdm66ha.qygfb.cn
http://HDz8NuFU.qygfb.cn
http://KOEQfPoq.qygfb.cn
http://ytIXSKMn.qygfb.cn
http://1ycKiv31.qygfb.cn
http://hQfxOmr9.qygfb.cn
http://yLeWuU6C.qygfb.cn
http://www.dtcms.com/a/388103.html

相关文章:

  • SSH 远程连接内网 Linux 服务器
  • Spring Cloud - 微服务监控
  • Flutter-[1]入门指导
  • Linux服务器运维自动化巡检工具
  • Java 大视界 -- Java 大数据在智能家居设备联动与场景化节能中的应用拓展(413)
  • Node.js 部署:PM2 的 Fork 与集群模式
  • 【C++上岸】C++常见面试题目--网络篇(第二十五期)
  • LangChain使用方法以OpenAI 的聊天模型GPT-4o为例
  • CephFS存储文件系统介绍
  • Java Swagger2 能显示页面但看不到一个接口
  • SSL证书有效期缩短:自动化解决方案
  • C# 多线程编程 (.NET Framework 4.0)
  • 一个手艺活 - 跨语言编程
  • docker安装ollama、下载模型详细步骤
  • 微服务和分布式的基础学识
  • 自动化测试框架pytest---Json Schema
  • 阿里云PolarDB MySQL版与MCP集成方案:数据处理分析全流程的效能革命
  • Python实现霸王龙优化算法(Tyrannosaurus Optimization Algorithm, TROA)(附完整代码)
  • 弥合安全分析与故障仿真之间差距的方法
  • JavaEE---9.网络原理TCP/IP
  • @Value
  • 安装es、kibana、logstash
  • Leetcode-148.排序链表
  • 基于ETF底仓的网格交易系统实现动态参数优化与动量因子融合
  • C++底层刨析章节三: 函数对象与适配器:STL中的智能操作单元
  • MySQL多表联合查询与数据备份恢复全解析
  • 说说对React的理解?有哪些特性?
  • 深入理解 C 语言指针(二):数组与指针的深度绑定
  • 算法能力提升之树形结构-(线段树)
  • 小白实测:异地访问NAS所用的虚拟局域网使用感受及部署难度?!