# py脚本 **Repository Path**: Xi_Tong/py-script ## Basic Information - **Project Name**: py脚本 - **Description**: 自建的一些py脚本,不喜勿喷 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2024-07-18 - **Last Updated**: 2025-12-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # python/ssh实现端口转发 #### 介绍 本工具基于 Python 编写,旨在实现从本地特定端口到远程主机特定端口的转发,通过 SSH 连接进行数据传输。 #### 安装教程 要运行上述脚本,您通常需要安装以下内容: 1. paramiko 库:用于 SSH 连接操作。 2. socketserver 库:这是 Python 标准库的一部分,通常不需要额外安装。 3. threading 库:也是 Python 标准库的一部分,无需单独安装。 4. select 库:同样是 Python 标准库的一部分。 5. logging 库:属于 Python 标准库。 您可以使用 pip 命令来安装 paramiko 库,命令如下: `pip install paramiko` 另外,确保您的 Python 环境已经正确安装和配置。 以下是针对上述脚本的使用说明: **使用说明:** 1. 确保您已经按照要求安装了所需的依赖,即 `paramiko` 库。 2. 配置脚本中的以下参数: - `SERVER`:SSH 服务器的 IP 地址(例如 `192.168.236.144` )。 - `SERVER_PORT`:SSH 服务器的端口号(通常为 22 )。 - `LOCAL_PORT`:本地监听的端口号(例如 10022 )。 - `REMOTE_HOST`:您想要转发到的远程主机的 IP 地址(例如 `192.168.236.153` )。 - `REMOTE_PORT`:远程主机上服务的端口号(例如 80 )。 - `USERNAME`:SSH 服务器的登录用户名(例如 `root` )。 - `PASSWORD`:SSH 服务器的登录密码(例如 `root` )。 3. 运行脚本。 4. 脚本运行后,会显示“本地端口转发已启动,监听所有地址的端口:{LOCAL_PORT},转发到远程主机:{REMOTE_HOST}:{REMOTE_PORT}”的消息。 5. 此时,本地端口 `LOCAL_PORT` 已与远程主机 `REMOTE_HOST` 的端口 `REMOTE_PORT` 建立转发。 6. 您可以按回车键退出脚本,脚本会关闭 SSH 连接和转发服务器,并在日志中记录相关操作。 请注意: 1. 请确保您具有合法的权限来执行端口转发操作。 2. 确保输入的服务器地址、端口、用户名和密码的准确性。 3. 确保网络连接正常,以便顺利进行端口转发。 #### 参与贡献 1. Fork 本仓库 # 基于 Python 的本地端口转发工具技术文档 ## 一、概述 本工具基于 Python 编写,旨在实现从本地特定端口到远程主机特定端口的转发,通过 SSH 连接进行数据传输。 ## 二、运行环境 1. Python 版本:建议使用 Python 3.x 。 2. 依赖库: - `paramiko` :用于建立 SSH 连接。 ## 三、脚本结构与主要类/函数说明 1. `ForwardHandler` 类 - 继承自 `socketserver.BaseRequestHandler` ,用于处理客户端与 SSH 通道之间的数据转发。 - `handle` 方法:实现数据的接收、发送和异常处理。 2. `ForwardingServer` 类 - 继承自 `socketserver.ThreadingMixIn` 和 `socketserver.TCPServer` ,实现转发服务器的功能。 - `__init__` 方法:初始化服务器的参数,包括监听地址、SSH 传输对象、远程主机和端口等。 3. `create_local_forward_tunnel` 函数 - 建立 SSH 连接,创建并启动转发服务器,处理用户输入和异常情况,实现整个端口转发流程的控制。 ## 四、配置与使用步骤 1. 配置参数 - `SERVER` :SSH 服务器的 IP 地址。 - `SERVER_PORT` :SSH 服务器的端口。 - `LOCAL_PORT` :本地监听端口。 - `REMOTE_HOST` :远程主机的 IP 地址。 - `REMOTE_PORT` :远程主机的端口。 - `USERNAME` :SSH 服务器的用户名。 - `PASSWORD` :SSH 服务器的密码。 2. 运行脚本 - 直接运行脚本文件。 3. 观察输出 - 脚本会输出端口转发的相关信息,包括连接状态、数据传输情况等。 ## 五、注意事项 1. 确保提供的 SSH 服务器信息(地址、端口、用户名、密码)准确无误。 2. 本地和远程的端口设置应符合实际需求和网络策略。 3. 运行脚本需要适当的权限。 ---