作者: Ghost_chu

60 篇文章

thumbnail
为 NexusPHP 添加 OAuth/OpenID 登录
好久没写文章了,最近一直在搞自己 Minecraft 小服务器的事情,难得抽出时间来写写技术文章~ 最近为了 BR 的数据存档计划能更加顺利的实施,BR 也安装了一个 NexusPHP 用于追踪种子的上传/下载量和做种状态。但是 NexusPHP 自己用户系统相当难用,BR 也有自己的统一授权服务(基于 Casdoor),因此搓了个 OAuth 功能,允许用户从 Casdoor (或者其他的 OAuth/OpenID 服务)注册和登录 NexusPHP。 支持的功能 从 OAuth/OpenID 自动创建 NexusPHP 用户,并与其绑定,用户可通过 OAuth/OpenID 登录 Nexu…
thumbnail
修复 Samba (SMB) 的 0x80004005 和 0x80070035 错误
跑在 iKuai 上的本来好好的 Samba 共享,因为调了一下匿名访问后,客户机再也连不上 Samba 共享了(之前也有随机连不上的问题出现),找了一点时间仔细研究了一下。  节约你的时间,开始之前仔细检查如果你的手头有一台 Linux 操作系统的设备或者虚拟机,那么在进行故障排查之前,最好在 Linux 的系统中尝试挂载你的 Samba 服务,以便排除 Samba 服务本身故障。Windows 下的 Samba 充满了玄学,最好先从简单的入手。开始之前:* 确认 Samba 服务已经启动* 确认目标 Samba 端口防火墙已被放行* 在 Linux 看看能不能挂载上都可以?那么就可以开始动…
thumbnail
记一次服务器被 DDOS 事件
最近一直挺忙的,没大有时间照顾博客,没想到这次更新文章居然是因为这个…… 这年头连博客都要闲着没事打一打了吗? 这只是一个技术博客,内容都是免费的,要防到这种地步,我也是无语了。 《DDOS 攻击的防范教程》——阮一峰的网络日志 第一次攻击 首次攻击发生于 2023-03-21 21:15:36,腾讯云告警服务器遭到 DDOS 攻击,并进行了安全隔离(黑洞)。 收到了连续三封信件,攻击类型是 UDPFLOOD,攻击带宽达到了7761Mbps。 鉴于最近站点没什么更新,也没有提供重要的外部服务,攻击者产生的攻击带宽在 7Gbps 左右,干脆买了一份什么也挡不住一年 31 元的 T-Sec 轻量 …
thumbnail
BT Tracker // BEP 0036 – Torrent RSS Feed
BEP 0036 指定了有关使用发布种子 RSS 订阅的相关规范,也就是 qBittorrent 等软件中的 “RSS阅读器” 功能。 实现了此规范的 Tracker 能够通过 RSS 发布订阅,客户端将会从订阅中自动下载 .torrent 文件。 Feed 类型 由于支持 Atom 的客户端非常稀少,因此推荐使用 RSS2.0 规范来发布 Feed。 标签 enclosure RSS 订阅中每个 Item 必须有一个 enclosure 标签,且 type 字段必须为 application/x-bittorrent,如果 Tracker 支持,还可以携带一个 length 字段代表 .to…
thumbnail
BT Tracker // BEP 0048 – Tracker Protocol Extension: Scrape
BEP 0048 为 Tracker 添加了一个新的协议:scrape (抓取)。 抓取协议允许客户端更新目前 Tracker 上活动的用户数,并以此决定是否应该通过 announce (宣告)协议与 Tracker 联系并更新对等方列表和自己的最新状态。 示例请求 客户端会将原有 Tracker URL 的 announce 替换为 scrape,并向这个接口发送 GET 请求。 GET /scrape?info_hash=xxxxxxxxxxxxxxxxxxxx&info_hash=yyyyyyyyyyyyyyyyyyyy 客户端可以添加多个 info_hash 在查询参数中来同时…
thumbnail
BT Tracker // BEP 0023 – Tracker Returns Compact Peer Lists
在 BEP 0003 中,我们介绍了对于 Peers 的响应返回。 但是当对等体过多的时候,peers 字段将会变得相当庞大,而且经过时间证明,其中 peer_id 字段完全可以被省略,没有存在的必要。因此,BitTorrent 对响应做出了改进,以便进一步压缩响应体的大小。 新增查询参数 客户端通过添加 compact 字段指示 Tracker 是否应该返回 compact 样式的响应,以下是一个示例请求: GET /announce?info_hash=j%25%7c%fe%12%0e%c0%9d%ee6%d5%df%03%bb%fda%cd%7b%97%b5&peer_id=-q…
BT Tracker // BEP 0031 – Failure Retry Extension
BEP 0031 为 BEP 0003 的失败响应提供了一个额外字段 retry in,单位为秒,代表指定秒后客户端应当再次重试上个操作,例如 Tracker 服务器过载,客户端应当稍后再试。 此外,retry in 还可以被指定为 never,代表客户端不应再进行任何尝试,例如客户端请求的这个地址并不是一个 Tracker 服务器,或者指定的种子未在此 Tracker 上注册等等场景。 示例(使用 JSON 格式以提高可读性) { "failure reason": "Server is busy, please try again later.", "retry in": 600 }
BT Tracker // BEP 0007 – IPv6 Tracker Extension
BEP 0007 为 BitTorrent 协议引入了 IPV6 支持。 新增查询参数 ipv4 - 客户端向 Tracker 汇报自己的 IPV4 地址 ipv6 - 客户端向 Tracker 汇报自己的 IPV6 地址 key - 参考标志 客户端会生成一个随机的 key,并配合自己的 peer_id 来允许 Tracker 在多次 announce(宣告)期间识别你的客户端。 注1:这个 key 似乎不是很需要的样子,毕竟识别唯一身份 peer_id 可能就够了。 注2:BEP 中说不推荐使用 ipv4/ipv6 参数,可能会允许坏客户端引发拒绝服务攻击(DDoS),但实际上,大部分客户…
thumbnail
BT Tracker // BEP 0003 – The BitTorrent Protocol Specification
在开发 BitSapling/Sapling 的过程中,我意识到中文互联网似乎没有很好介绍 BitTorrent 协议的文章(当然,英文文献也并不是很多),同时 BitTorrent 官方的 BEP 介绍也含糊不清,特开新的一个文章系列来记录各个 BEP 的 Tracker 部分的具体实现方式。 BEP 0003 - The BitTorrent Protocol Specification 0003 号 BEP 是 BitTorrent 协议中最基础的规范,它规范了一个 BitTorrent Tracker 最基础的功能。 Bencode 编码 在 BT 协议中,客户端、.torrent 文…
thumbnail
部署 WordPress OAuth Server (Provider)
Barbatos Realms 最近在搞统一认证,聚合 Blessing Skin, Xenforo, Wordpress 等一系列乱七八糟的各种程序到 Wordpress 上。 偷懒为先,最好的解决方案自然是 OAuth 2,上述程序都有它的 Client 实现,对接甚是方便,但主要问题是,谁来做 Server (Provider)? 探索 WordPress 现有解决方案 以 OAuth 为关键字搜索,基本上都是 Client,而作为 Server 的只有 miniOrange 这一家独占。 我打赌不少人肯定都试过 miniOrange 的 Server 但问题在于,免费版本接近无法使用,…