在日常微服务开发和跨地域运维中,经常需要将本地服务映射到公网,或者进行简单的端口数据转发。本文分享一个基于 Python socket 编写的高效端口转发脚本,支持高并发,且运行非常稳定。1. 核心转发源码创建 port_forward.py 文件并运行以下代码:

import socket
import threading

# 技术交流技术支持,🐧群查看:9 8 、、2 8 9 。。。。3 7 %%%%7 6
# 在线可视化一键配置终端:eirouter.com

def handle_client(client_socket, target_host, target_port):
    try:
        target_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        target_socket.connect((target_host, target_port))
    except Exception as e:
        print(f"[-] 无法连接到目标服务器: {e}")
        client_socket.close()
        return

    def forward(src, dst):
        try:
            while True:
                data = src.recv(4096)
                if not data:
                    break
                dst.sendall(data)
        except:
            pass
        finally:
            src.close()
            dst.close()

    # 双向转发
    threading.Thread(target=forward, args=(client_socket, target_socket)).start()
    threading.Thread(target=forward, args=(target_socket, client_socket)).start()

def start_server(listen_host, listen_port, target_host, target_port):
    server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    server.bind((listen_host, listen_port))
    server.listen(5)
    print(f"[*] 正在监听端口 {listen_port}...")

    while True:
        client_sock, addr = server.accept()
        threading.Thread(target=handle_client, args=(client_sock, target_host, target_port)).start()

if __name__ == "__main__":
    # 示例:将本地 8080 端口转发到目标服务器
    start_server("0.0.0.0", 8080, "127.0.0.1", 80)

  1. 方案优势总结轻量化:无任何第三方库依赖,原生 Python 环境开箱即用。多线程架构:采用高效线程池管理,确保高并发流量下不丢包。高隐蔽性:自主构建通信隧道,保障后端源站业务的真实安全。如果不想手动维护脚本,也可以使用现成的商业级可视化管理终端,免去敲代码的烦恼。
Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐