如何快速又安全的实现端口转发【Windows MAC linux通用】
背景
有很多程序是在虚拟机上运行的,返回的url 又是127.0.0.1。在个人电脑上调试需要解决这个问题。端口转发是一个不错的方法
可能的解决办法:
1.修改程序,返回虚拟机的ip (要改代码,换虚拟机还要再改代码)
2.在中间加个nginx(需要额外部署服务)
3.在个人电脑上用本文的脚本,快速开启一个端口转发。把访问127.0.0.1的流量转发到虚拟机上(本文)
本文方法的优势:
1.快速,转发的目的ip和端口方便修改
2.代码公开,安全干净
3.只依赖python3 ,无python三方包依赖
4.windows linux MAC 通用,国产系统国产CPU也能用
本文的不足:
1.需要安装python3
2.本脚本只实现了tcp,未实现udp
正文
依赖:python3
请在电脑上提前安装好python3
适用范围
Windows,MAC,linux都通用
运行此脚本快速实现端口转发
执行如下命令即可实现
python 本脚本.py
或
python3 本脚本.py
脚本正文
import socket
import threading# 转发数据的函数
def forward_data(source, destination):while True:try:data = source.recv(4096) # 从源读取数据if not data:breakdestination.sendall(data) # 将数据发送到目标except Exception as e:print(f"Error forwarding data: {e}")break# 处理客户端连接的函数
def handle_client(client_socket, target_host, target_port):try:# 连接到目标地址target_socket = socket.create_connection((target_host, target_port))print(f"Connected to target {target_host}:{target_port}")# 创建两个线程分别转发数据thread1 = threading.Thread(target=forward_data, args=(client_socket, target_socket))thread2 = threading.Thread(target=forward_data, args=(target_socket, client_socket))thread1.start()thread2.start()# 等待线程结束thread1.join()thread2.join()except Exception as e:print(f"Connection error: {e}")finally:client_socket.close()target_socket.close()print("Connection closed")# 主程序
def start_proxy(listen_port, target_host, target_port):server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 也可改为 127.0.0.1server.bind(("0.0.0.0", listen_port))server.listen(5)print(f"Listening on port {listen_port} and forwarding to {target_host}:{target_port}")while True:client_socket, addr = server.accept()print(f"Accepted connection from {addr}")client_handler = threading.Thread(target=handle_client, args=(client_socket, target_host, target_port))client_handler.start()if __name__ == "__main__":# 本地127.0.01监听的端口(TCP)LISTEN_PORT = 8090# 目标地址和目标端口(TCP)TARGET_HOST = "10.9.0.8"TARGET_PORT = 8081start_proxy(LISTEN_PORT, TARGET_HOST, TARGET_PORT)相关文章:
如何快速又安全的实现端口转发【Windows MAC linux通用】
背景 有很多程序是在虚拟机上运行的,返回的url 又是127.0.0.1。在个人电脑上调试需要解决这个问题。端口转发是一个不错的方法 可能的解决办法: 1.修改程序,返回虚拟机的ip (要改代码,换虚拟机还要再改代码…...
LongLLMLingua: 长上下文场景的智能提示压缩框架
LongLLMLingua: 长上下文场景的智能提示压缩框架 一、框架概述 核心目标 解决长上下文场景下的计算成本问题降低处理延迟提升模型性能表现 创新特点 问题感知的粗到细压缩策略文档重排序机制动态压缩比例控制压缩后的子序列恢复策略 二、技术方法详解 粗粒度压缩 (a) 文…...
Django serializers:把ValidationError处理的更优雅
开发中必不可少的会对参数做各种校验,必填、唯一等等,这个时候我们需要在校验失败时抛出友好、清晰的提示。 直接使用serializers做校验,虽然也能抛出自定义的错误提示,但是其信息格式是嵌套,并不适合直接反映在前端页…...
CASA(Carnegie-Ames-Stanford Approach) 模型原理及实践技术
植被作为陆地生态系统的重要组成部分对于生态环境功能的维持具有关键作用。植被净初级生产力(Net Primary Productivity, NPP)是指单位面积上绿色植被在单位时间内由光合作用生产的有机质总量扣除自养呼吸的剩余部分。 专题(一)C…...
【HarmonyOS之旅】ArkTS语法(一)
目录 1 -> 基本UI描述 1.1 -> 基本概念 1.2 -> UI描述规范 1.2.1 -> 无参数构造配置 1.2.2 -> 必选参数构造配置 1.2.3 -> 属性配置 1.2.4 -> 事件配置 1.2.5 -> 子组件配置 2 -> 状态管理 2.1 -> 基本概念 2.2 -> 页面级变量的状…...
【畅购电商】项目总结
目录 1. 电商项目架构图 1.1 系统架构 1.2 技术架构 2. 介绍电商项目 2.1 后台和前台、后端和前端 2.2 Vue全家桶包含哪些技术? 2.3 什么是Vuex? 2.4 什么是SSR 2.5 电商模式是什么? 2.6 枚举类 2.7 elasticsearch相关 2.8 gatew…...
python|利用ffmpeg按顺序合并指定目录内的ts文件
前言: 有的时候我们利用爬虫爬取到的ts文件很多,但ts文件只是视频片段,并且这些视频片段是需要按照一定的顺序合并的,通常ts文件合并输出格式为mp4格式 因此,本文介绍利用python,调用ffmpeg来批量的按自己…...
IP属地和所在地不一致什么意思?怎么换成另外一个地方的
在数字化时代,IP地址作为网络设备的唯一标识符,不仅关乎设备间的通信,还涉及到用户的网络身份与位置信息。然而,有时我们会发现,社交媒体或网络平台上显示的IP属地与用户的实际所在地并不一致。这种不一致现象引发了诸…...
Hive其十,优化和数据倾斜
目录 Hive优化 1、开启本地模式 2、explain分析SQL语句 3、修改Fetch操作 4、开启hive的严格模式【提高了安全性】 5、JVM重用 6、分区、分桶以及压缩 7、合理设置map和reduce的数量 合理设置map数量: 设置合理的reducer的个数 8、设置并行执行 9、CBO优…...
matlab reshape permute
1.reshape 将向量按照顺序重新构建 矩阵,新矩阵 先排完第一列, 再第二列… 2.permute 将向量 维度变换...
数据库sql语句单表查询
简单的增删改查操作 select count(*) from user where accountadmin and password123456 select count(*) from user where account"admin" insert into user(account,password) values ("admin","777") update user set password "666&…...
Linux高级--2.4.2 linux TCP 系列操作函数 -- 深层理解
一、操作函数简介 在 Linux 中,TCP(传输控制协议)操作涉及多种系统调用和函数,通常用来创建套接字、连接、发送/接收数据、关闭连接等。以下是一些常用的 TCP 操作函数和它们的简要说明: 1. socket() 函数原型: int…...
科技快讯 | 水滴筹成为民政部指定个人求助网络服务平台;小米超级小爱首次向正式版用户开放;腾讯发布全球首个重症医疗大模型
本地 AI 开发利器,初探微软 Win11 AI Dev Gallery 功能 12月27日,科技媒体Windows Latest报道,微软推出AI Dev Gallery功能,助力开发者集成端侧AI。该功能支持Windows 10/11,提供25个示例模型,涵盖多领域。…...
强化特种作业管理,筑牢安全生产防线
在各类生产经营活动中,特种作业由于其操作的特殊性和高风险性,一直是安全生产管理的重点领域。有效的特种作业管理体系涵盖多个关键方面,从作业人员的资质把控到安全设施的配备维护,再到特种设备的精细管理以及作业流程的严格规范…...
跨语言学习之C++ 和 Python 的赋值操作 (等号“=“) 的区别
C++ 和 Python 的赋值操作(等号 =)在底层机制和表现行为上有显著区别,主要体现在变量与对象的关系、内存管理和对象类型等方面。以下是两者的详细对比: 1. 变量与对象的关系 Python: 变量是对象的引用,赋值操作是将变量指向某个对象的内存地址。多个变量可以指向同一个对…...
【操作系统】如何创建一个守护进程
守护进程(Daemon)是一类在后台运行的特殊进程,它们通常不与任何终端或用户直接交互,而是执行特定的系统任务或等待系统或网络事件的发生。守护进程是操作系统中不可或缺的一部分,它们负责执行各种后台任务,…...
常见显示方案
常见的屏幕 LED段码屏幕 LED点阵屏 本质上是小LED组成的阵列 显示架构为 : 显示内容(MCU内部)————通信接口———对应的LED显示 多使用1640等LED专用驱动 通信方式 两线串行接口(SCLK,DIN)IIC SPI 等…...
USB Hub 检测设备
系列文章目录 xHCI 简单分析 USB Root Hub 分析 USB Hub 检测设备 文章目录 系列文章目录一、引言二、hub_eventshub_port_connect_changeusb_alloc_devusb_set_device_statehub_port_initusb_new_device 一、引言 USB Hub 检测设备 一文中讲到,当有 USB 插入时&…...
安卓开发使用Gemini高效AI开发-Android Studio 中使用Gemini
Gemini 是Android Studio最新版本中内嵌的AI工具,它可以通过代码补全、解释代码、提供改进建议、错误分析等方式帮助开发者提高编码效率。当然,与目前大多数AI工具一样,Gemini有时可能会"非常自信"地提供不准确、错误的信息&#x…...
wangEditor富文本插件在vue项目中使用和媒体上传的实现
wangEditor是前端一个比较流行的简洁易用,功能强大的前端富文本编辑器,支持 JS Vue React,提供了很多丰富的功能,下面手把手教你实现wangWditor富文本插件在vue项目中配置,保存、图片上传等功能。无脑ctrlc即可 基本功…...
反向工程与模型迁移:打造未来商品详情API的可持续创新体系
在电商行业蓬勃发展的当下,商品详情API作为连接电商平台与开发者、商家及用户的关键纽带,其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息(如名称、价格、库存等)的获取与展示,已难以满足市场对个性化、智能…...
MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例
一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...
PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建
制造业采购供应链管理是企业运营的核心环节,供应链协同管理在供应链上下游企业之间建立紧密的合作关系,通过信息共享、资源整合、业务协同等方式,实现供应链的全面管理和优化,提高供应链的效率和透明度,降低供应链的成…...
聊聊 Pulsar:Producer 源码解析
一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台,以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中,Producer(生产者) 是连接客户端应用与消息队列的第一步。生产者…...
测试markdown--肇兴
day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...
多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验
一、多模态商品数据接口的技术架构 (一)多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如,当用户上传一张“蓝色连衣裙”的图片时,接口可自动提取图像中的颜色(RGB值&…...
微信小程序 - 手机震动
一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注:文档 https://developers.weixin.qq…...
论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)
笔记整理:刘治强,浙江大学硕士生,研究方向为知识图谱表示学习,大语言模型 论文链接:http://arxiv.org/abs/2407.16127 发表会议:ISWC 2024 1. 动机 传统的知识图谱补全(KGC)模型通过…...
解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错
出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上,所以报错,到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本,cu、torch、cp 的版本一定要对…...
用docker来安装部署freeswitch记录
今天刚才测试一个callcenter的项目,所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...
