python开启ssh端口转发

python开启ssh端口转发

需求

db_server机器上运行了一个mysql数据库,仅允许ops机器连接,ecs机器可以连接ops机器,但是连不到db_server。

问:ecs如何能连接到db_server机器上的mysql数据库

代码示例

python 复制代码
# 导入必要的库
from sshtunnel import SSHTunnelForwarder  # 用于建立 SSH 隧道
import pymysql                            # 用于连接和操作 MySQL 数据库

# 使用 SSH 隧道转发器(SSHTunnelForwarder)建立安全隧道
# 该隧道将本地端口(127.0.0.1:3308)转发到远程 MySQL 服务器(通过跳板机)
with SSHTunnelForwarder(
    ssh_address_or_host=('ops机器IP', ops机器SSH端口),  # 跳板机(堡垒机)的 IP 和 SSH 端口
    ssh_username='ops_username',                        # 登录跳板机的用户名
    ssh_password='ops_password',                        # 登录跳板机的密码(建议改用私钥认证更安全)
    remote_bind_address=('MinIRDs内网地址', 3306),      # 目标 MySQL 服务器的内网地址和端口(通常为 3306)
    local_bind_address=('127.0.0.1', 3308)             # 本地绑定的地址和端口,用于后续连接
) as tunnel:
    # 隧道建立成功后,通过本地 127.0.0.1:3308 连接到远程 MySQL(实际流量经 SSH 隧道加密转发)
    connection = pymysql.connect(
        host='127.0.0.1',        # 连接本地回环地址(因为隧道已将远程数据库映射到本地)
        port=3308,               # 使用隧道绑定的本地端口
        user='mysql_username',   # MySQL 数据库用户名
        password='mysql_password',  # MySQL 数据库密码
        database='your_database'    # 要连接的具体数据库名
    )
    
    # 在此处执行你的数据库操作,例如查询、插入、更新等
    # 示例:
    # cursor = connection.cursor()
    # cursor.execute("SELECT * FROM your_table")
    # results = cursor.fetchall()
    # ...
    
    # 操作完成后,关闭数据库连接
    connection.close()

# with 语句结束时,SSHTunnelForwarder 会自动关闭 SSH 隧道
相关推荐
§ꦿCFོ༉11 分钟前
嵌入式八股文—C语言入门学习(四)
c语言·开发语言·学习
投图匠31 分钟前
十种不同风格的 CTP接口 框架
开发语言·python
2601_967980112 小时前
深入理解词向量算法及其在Python中的实践
python·word2vec·glove·fasttext·词向量
129Lab2 小时前
电池循环测试数据自动化分析:用Python+AI工具构建一键式寿命评估流水线
python·数据分析·电池测试·数据自动化·寿命评估
treasure1402 小时前
【复古】浅尝Django前后端不分离
前端·css·python·django·bootstrap·html·web
Dmz丶3 小时前
前端转 AI 100 天 Day 44:前端集成实战——用 React 给 Agent 做个正式界面
python
jay神3 小时前
基于 YOLOv8 的手势识别系统(Web 版)
前端·人工智能·python·深度学习·yolo·计算机视觉·计算机毕业设计
程序开发阿元4 小时前
密码不进工具:一个独立开发者的服务器凭据管理办法
linux·ssh
DeepVisionary4 小时前
阿里云上线旗舰多模态新模型,不公布跑分且限时14天退役
python·自动化
东莞市云毅网络有限公司4 小时前
FAQ 覆盖度打分:TF-IDF 与向量嵌入双路召回的 Python 实现
python·数据清洗·rag·企业知识库·文档解析