「LUCKY STUN穿透」使用 cURL 自动修改 Transmission 的监听端口

news/2026/1/22 16:14:14/文章来源:https://www.cnblogs.com/ie123610/p/19512195

「LUCKY STUN穿透」使用 cURL 自动修改 Transmission 的监听端口

「LUCKY STUN穿透」使用 cURL 自动修改 Transmission 的监听端口

2024.04.27

关于本教程

在之前的教程中我们已经实现了使用lucky自带的webhook功能自动修改qbittorrent的端口
「LUCKY STUN穿透」使用 Webhook 自动修改 qbittorrent 的监听端口
在本教程中将讲解如何自动化的更换 transmission 的监听端口

与之前 qBittorrent 的配置方法相比 transmission 的端口自动化要复杂一些
这主要是由于其强制开启跨站保护所导致的

该功能无法关闭 除非对源代码进行修改后再次编译
考虑到transmission 运行在许多不同的平台 从新编译过于麻烦

我们只能想办法通过它的跨站保护认证
但这样一来就无法通过lucky的webhook来实现了
而需要使用到curl和自定义脚本

其实原理也很简单 就是先通过curl发起访问获取用于通过跨站检测的token
然后将其加载到下一次用于更改端口号请求的头中以通过跨站保护检测
Transmission webAPI文档:链接

本教程将分为Windows配置方法和Docker配置方法两部分进行讲解
以lucky安装的位置为准

lucky和 transmission可以不在一台机器或IP上
若transmission或lucky在docker中运行则其网络必须为host
感谢 泥浆 提供的命令支持


Windows配置方法

安装curl

win10和win11中应该已经预装了curl
可以在命令提示符中输入下列命令查看是否安装
若已安装会显示出curl的版本号(注意V要大写)

curl -V

如果使用的是win7或显示
"‘curl’ 不是内部或外部命令,也不是可运行的程序或批处理文件。"
就需要手动下载curl 下载curl:链接

进入bin文件夹 将curl.exe 复制到到system32文件夹
C:\Windows\System32

完成后重复刚才的命令 有版本号显示即表示安装正确

调整transmission设置

关闭 transmission自己的UPnP以防止影响STUN穿透效果

设置自动更新脚本

打开lucky添加计划任务
在计划任务中测试完命令之后再填写到STUN穿透规则中

子规则选择自定义脚本 其他选项任意设置
不填写脚本内容先保存计划任务

关闭规则开关 我们只使用手动触发

编辑规则并填写下列命令
其中的参数要根据实际情况填写

chcp 65001set "ip="
set "webport="
set "username="
set "password="
set "port="set json={""arguments"": {""peer-port"": %port%},""method"": ""session-set""}for /f "tokens=27 delims=<>" %%a in ('curl -X POST http://"%username%":"%password%"@"%ip%":"%webport%"/transmission/rpc/  -H "%authorization%"') do (set token=%%a
)curl -X POST http://"%username%":"%password%"@"%ip%":"%webport%"/transmission/rpc/ -H "%token%" -d "%json%"

参数解释

  • IP 表示transmission所在设备的IP
  • webport 表示transmission webUI的端口号
  • username 表示登录 transmission 使用的用户名
  • password 表示登录 transmission 使用的密码
  • port 表示要更新的端口号 测试时可以使用任意端口号

示例

chcp 65001set "ip=127.0.0.1"
set "webport=9091"
set "username=ie12"
set "password=12345678"
set "port=5645"set json={""arguments"": {""peer-port"": %port%},""method"": ""session-set""}for /f "tokens=27 delims=<>" %%a in ('curl -X POST http://"%username%":"%password%"@"%ip%":"%webport%"/transmission/rpc/  -H "%authorization%"') do (set token=%%a
)curl -X POST http://"%username%":"%password%"@"%ip%":"%webport%"/transmission/rpc/ -H "%token%" -d "%json%"

填写完成后保存规则

按下手动触发按钮并查看日志显示 success 即表示成功
不过最好还是去到transmission的设置中检查一下端口没有变化
若成功变更了端口则表示脚本设置正确

如果有错误代码 且不显示具体内容
建议创建一个批处理文件 手动运行以查看报错内容
记得在最后加上 pause

编辑STUN 穿透规则

将之前测试完成的脚本 复制到STUN的自定义脚本区域
若在自定义脚本区域已经有命令则应按照流程顺序进行排列
并使用vbs脚本设置间隔 详情见之前的教程

将port选项的值替换为穿透端口变量

set "port=${port}"

示例

打开穿透规则 查看日志 以及 transmission 端口
若显示 success 且端口成功更换 则配置正确

Docker 配置方法

思路和在Windows上一样 主要的区别在安装curl的方法和脚本的语法有所不同
为容器安装curl时我们可以在终端环境中进行
但更简单的方法是使用计划任务中的自定义脚本功能

创建计划任务

创建方法和前文中相同

更换软件包下载源

将下载源修改为 清华大学开源软件镜像站
以防止因为网络问题造成安装失败
填写下列命令并保存

sed -i 's/dl-cdn.alpinelinux.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apk/repositories

按下手动触发按钮并查看日志
此步的输出内容为空白

安装curl

替换为以下命令后 手动触发运行

apk add curl 2>&1 &

检查日志输出 有显示OK表示安装成功

验证安装效果

替换为以下命令后 手动触发运行

curl -V

检查日志 看到curl的版本号即表示成功

调整transmission设置

关闭 transmission自己的upnp以防止影响STUN穿透效果

测试脚本

docker(Linux)下的命令和Windows下的有较大不同但原理是一样的

host=
webui=
port=
username=
password=json='{"arguments": {"peer-port": '$port'},"method": "session-set"}'token=`curl -X POST http://$username:$password@$host:$webui/transmission/rpc/ | awk -F '[<>]' '{print$(NF-4)}'`
curl -X POST http://$username:$password@$host:$webui/transmission/rpc/  -H "$token" -d "$json"

参数解释

  • host 表示transmission所在设备的IP
  • webui 表示transmission webUI的端口号
  • port 表示要更新的端口号 测试时可以使用任意端口号
  • username 表示登录 transmission 使用的用户名
  • password 表示登录 transmission 使用的密码

注意在docker中 127.0.0.1 可能不起作用
建议直接使用宿主机的IP地址或 host.docker.internal 加以替代
详见:链接

示例

host=192.168.5.107
webui=9091
port=5678
username=ie12
password=12345678json='{"arguments": {"peer-port": '$port'},"method": "session-set"}'token=`curl -X POST http://$username:$password@$host:$webui/transmission/rpc/ | awk -F '[<>]' '{print$(NF-4)}'`
curl -X POST http://$username:$password@$host:$webui/transmission/rpc/  -H "$token" -d "$json"

填写完成后保存规则

按下手动触发按钮并查看日志显示 success 即表示成功
不过最好还是去到transmission的设置中检查一下端口没有变化
若成功变更了端口则表示脚本设置正确

编辑STUN 穿透规则

将之前测试完成的脚本 复制到STUN的自定义脚本区域
若在自定义脚本区域已经有命令则应按照流程顺序进行排列
并使用sleep设置间隔

将port选项的值替换为穿透端口变量

port=${port}

示例

打开穿透规则 查看日志 以及 transmission 端口
若显示 success 且端口成功更换 则配置正确
至此我们实现了使用 cURL 自动修改 transmission 的监听端口

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1200832.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前沿AI论文工具排行榜:10款支持降重与自动写作的AIGC应用

工具名称核心优势适用场景aicheck快速降AIGC率至个位数AIGC优化、重复率降低aibiye智能生成论文大纲论文结构与内容生成askpaper文献高效整合开题报告与文献综述秒篇降重效果显著重复率大幅降低一站式论文查重降重查重改写一站式完整论文优化深度AI降重深度改写保留原意文本结构…

本地部署项目文档管理网站 MkDocs 并实现外部访问( Linux 版本)

MkDocs 是一款基于 Python 的静态网站生成工具&#xff0c;它简单易用&#xff0c;适合技术文档、API 文档或其他需要清晰结构的文档项目&#xff0c;专门用于快速构建项目文档。本文将详细介绍如何在 Linux 系统局域网内部署 MkDocs 并结合路由侠实现外网访问局域网内部署的 M…

混凝土墙壁裂缝剥落识别分割数据集labelme格式1497张2类别

数据集格式&#xff1a;labelme格式(不包含mask文件&#xff0c;仅仅包含jpg图片和对应的json文件)图片数量(jpg文件个数)&#xff1a;1497标注数量(json文件个数)&#xff1a;1497标注类别数&#xff1a;2标注类别名称:["spalling","crack"]每个类别标注的…

电动移行机

一、输送机构的设计 1、输送机构中原动件的选择&#xff1a; 1.1机电传动系统中的负载特性有如下几种&#xff1a; 1.1.1恒转矩型负载&#xff1a;&#xff08;包括提升机构&#xff0c;提升机的行走机构&#xff0c;带式运输机及金属切削机床等&#xff09;&#xff08;稍后移…

2025年市场有实力的花灯制造商哪家权威,非遗花灯/国风花灯/传统花灯/十二生肖花灯/智能花灯,花灯销售厂家推荐榜单

随着文旅产业与夜间经济的深度融合,花灯作为传统节庆文化与现代科技结合的载体,正从“季节性装饰”向“全年化运营”转型。2024年行业数据显示,全国花灯市场规模突破120亿元,其中智能互动花灯占比达38%,文旅定制化…

React 子组件方法调用:父组件调用的 4 种方案

一、使用 useImperativeHandle forwardRef&#xff08;React 16.8 推荐&#xff09; 完整实现方案 import React, { useRef, useImperativeHandle, forwardRef } from react;// 子组件 const ChildComponent forwardRef((props, ref) > {const [count, setCount] React…

AIGC技术赋能论文写作:十大智能降重与内容生成工具精选

工具名称 核心优势 适用场景 aicheck 快速降AIGC率至个位数 AIGC优化、重复率降低 aibiye 智能生成论文大纲 论文结构与内容生成 askpaper 文献高效整合 开题报告与文献综述 秒篇 降重效果显著 重复率大幅降低 一站式论文查重降重 查重改写一站式 完整论文优化…

测硫仪哪个厂家品质好售后好性价比高?国际巨头与本土创新的技术博弈

测硫仪哪个厂家品质好售后好性价比高?国际巨头与本土创新的技术博弈 一、测硫仪行业发展背景与技术演进 测硫仪作为精准测定固体、液体、气体样品中硫含量的核心分析设备,广泛应用于石油、化工、煤炭、环保、冶金等关…

遵义市正安凤冈湄潭余庆习水英语雅思培训辅导机构推荐:2026权威出国雅思课程中心学校口碑排行榜

遵义市正安凤冈湄潭余庆习水英语雅思培训辅导机构推荐:2026权威出国雅思课程中心学校口碑排行榜对于身处遵义市及正安、凤冈、湄潭、余庆、习水等地的雅思考生而言,备考之路常伴多重挑战:优质师资资源地域性集中、缺…

学术写作革命性工具:10款AI论文生成与降重神器推荐

工具名称核心优势适用场景aicheck快速降AIGC率至个位数AIGC优化、重复率降低aibiye智能生成论文大纲论文结构与内容生成askpaper文献高效整合开题报告与文献综述秒篇降重效果显著重复率大幅降低一站式论文查重降重查重改写一站式完整论文优化深度AI降重深度改写保留原意文本结构…

细聊陕西口碑不错的裁断机大型厂家,选哪家

随着制造业自动化需求的提升,裁断机作为皮具、制鞋、汽车内饰等行业的核心生产设备,其选购问题一直困扰着企业采购人员。本文围绕口碑不错的裁断机大型厂家诚信的裁断机厂家推荐裁断机专业厂家三大关键词,整理了采购…

2026年做公务车的公司有哪些?行业主流品牌盘点

公务车作为企事业单位、公共服务领域的重要出行工具,其性能、可靠性和适用性直接影响日常运营效率。随着新能源技术的发展,市场上涌现出众多专注于公务车研发与生产的企业,涵盖城市配送、公共服务、特殊用途等多个场…

智能会议系统集成商哪家比较靠谱,北京有推荐吗?

随着企业数字化转型加速,智能会议系统已成为企业提升沟通效率、优化协作体验的核心设备,而选择可靠的集成商、专业的供应商和技术过硬的方案设计商,是落地优质智能会议系统的关键。本文围绕智能会议系统集成商哪家更…

【必收藏】大语言模型入门:从原理到实战,小白程序员也能懂的底层逻辑

本文专为小白和初级程序员打造&#xff0c;用生活化比喻拆解大语言模型&#xff08;LLM&#xff09;的核心原理与工作机制&#xff0c;避开复杂公式&#xff0c;聚焦可理解的底层逻辑。从神经网络基础到Transformer架构&#xff0c;从完整训练流程到文本生成与AI涌现现象&#…

debian13禁止输入root密码登录

debian13禁止输入root密码登录在 Debian 13 (Trixie) 中禁止密码登录 SSH 的过程与旧版本基本一致,但建议遵循最新的配置规范(使用 sshd_config.d 目录)。在执行以下操作前,请务必确保你已经成功配置并测试了 SSH …

Redis性能优化有哪些常见陷阱?90%开发者都踩过的坑(附Spring Boot避坑指南)

视频看了几百小时还迷糊&#xff1f;关注我&#xff0c;几分钟让你秒懂&#xff01; 在高并发系统中&#xff0c;Redis 几乎成了“标配”。但很多团队以为加了 Redis 就万事大吉&#xff0c;结果上线后反而引发更严重的性能问题&#xff1a;CPU 飙升、内存爆炸、接口超时、数据…

Windows下Python环境变量配置避坑指南:解决命令行跳微软商店问题

Windows下Python环境变量配置避坑指南:解决命令行跳微软商店问题Windows下Python环境变量配置避坑指南:解决命令行跳微软商店问题 一、核心问题总结 卸载微软商店版Python、配置官方版Python环境变量后,命令行输入p…

会议征稿 | 2026年机器视觉、检测与三维成像技术国际学术会议(MVDIT 2026)

会议官网&#xff1a;https://www.yanfajia.com/action/p/QHT2TU33 会议日期&#xff1a; 2026年5月15-17日 会议地点&#xff1a;中国 南昌 一轮截稿日期&#xff1a;2026年2月21日 接受或拒绝通知日期&#xff1a;提交后7个工作日 检索类型&#xff1a;EI Compendex、Sc…

mysql忘记密码或者登录host错误的解决方案

1、停止mysql服务 2、使用--skip-grant-tables选项启动服务 mysqld --skip-grant-tables 启动服务 3、mysql -uroot登录数据库,执行密码修改或者host修改 修改密码:ALTER USER 用户名@主机 IDENTIFIED BY 新密码; 修…

2026年企业服务前瞻:阿里云邮箱购买电话与持续技术支持通道

在数字化转型浪潮中,企业邮箱作为内部协作与外部沟通的核心工具,其稳定性、安全性与协同效率直接影响业务运营。面对未来三年可能出现的混合办公模式普及、数据安全法规升级等挑战,企业该如何选择适配的邮箱服务?本…