标签: 反向代理

  • NAS玩家必备:Lucky实现域名解析、自动证书与安全反代全攻略

    Lucky是@古大羊开发的一款家庭公网利器,专为NAS、软路由等内网设备打造的全能网络工具,集成动态域名解析(DDNS)、反向代理、SSL证书自动续签、端口转发、内网穿透等核心功能,支持IPv4/IPv6双栈访问,是2025年NAS玩家必备的免费实用神器。

    对于国内的家庭网络环境,Lucky尤其适合搭建在 NAS(如威联通 QNAP)、软路由或轻量级 Linux 服务器上,用于实现外网访问(内网穿透和反向代理)家庭设备或服务,简单易用稳定也基本不需要怎么折腾。

     前言 

    多家DNS服务商(阿里云、腾讯云、Cloudflare等),可自动将动态公网IP与固定域名绑定,实现域名访问NAS。配置时需获取域名服务商的API密钥(AccessKey ID和Secret),填写主域名和泛域名(如example.com和*.example.com),Lucky会自动同步解析记录,

    通过ACME协议自动申请Let’s Encrypt免费SSL证书,支持泛域名证书,证书到期前约36天自动续签,无需手动操作。配置时选择ACME方式,填写域名列表和DNS服务商Token,开启DNS查询强制IPv4和仅使用TCP通道即可。

    支持HTTP/HTTPS反向代理,可将不同服务统一到单一入口端口,通过二级域名区分访问(如movie.example.com → Jellyfin服务)。监听端口可自定义(如443、8443等),需在路由器中设置端口转发。支持TLS加密,可隐藏真实端口,提升安全性。

    配置流程

    1. 设置DDNS:添加DDNS任务,选择服务商并填写API密钥,配置域名解析
    2. 申请SSL证书:选择ACME方式,关联DNS服务商,申请泛域名证书
    3. 配置反向代理:添加Web服务规则,设置监听端口和TLS,添加子规则指定前端域名和后端服务地址
    4. 端口转发:在路由器中将监听端口转发到NAS内网IP

    部署平台:威联通NAS TS-673A

    Lucky版本:2.17.3 linux(x86_64)

    部署方式:Docker Compose

    网络状况:默认已经折腾好公网IP

    另外还需要我们提前准备Token,这个可从域名托管商处获得,我们以DNSPod为例。

    将ID和Token复制下来备用。

     部署方式 

    打开威联通的Container Station,创建新的应用程序。部署代码如下:

    services:

       lucky:
          image: gdy666/lucky
          container_name: lucky
          restart: always
          volumes:
             -'/share/Container/lucky:/goodluck'# 这步必须做,否则重启配置会消失,可直接照抄配置。
          network_mode: host
    # host模式, 同时支持IPv4/IPv6, Liunx系统推荐
    # 桥接模式, 只支持IPv4,windows 不推荐使用docker版本
    # 我仍然不建议使用默认的桥接模式,如作者所说很容易出问题,已经试验过

     修改基础配置 

    内网环境下,输入NAS_IP:16601即可访问管理界面。默认的账户密码为 666/666

    但如果像我一样,远程折腾,可以利用威联通自带的Browser Station。也可将16601端口通过路由器转发到公网,通过外网访问(公网IP:16601)进行配置。

    从版本2.13.9开始,在默认配置中,外网访问开关处于关闭状态。然而,在 lucky_base.lkcf 配置初始化后的十分钟内,系统允许外网访问。如果在这十分钟内执行了配置保存操作,则外网访问开关的设置将优先生效。如果错过了这个时间,您需要通过删除 lucky_base.lkcf 配置文件并重启 Lucky 进程的方式,使 lucky_base.lkcf 配置再次初始化。

    登入后如下图所示进行设置,除了登陆验证修改默认账号密码外,其他凭大家需求。

    安全入口部分为了安全考虑能改则改,比如若修改为/ydxian,则内外网无论那个想要访问Lucky的登陆面板,最后都要在完整的访问地址后加上/ydxian。如果不加,会得到如下结果。

     动态域名(DDNS) 

    这里需要使用到上文域名托管商所获的Token。

    左侧栏第三项「动态域名」,点击「添加任务」。

    选择托管商,我这里选择的是DnspodCN(如果你的DNS服务商不在列表当中,则使用万能的自定义Callback模式),粘贴ID与Token。根据你的网络情况选择启用同步类型(IPv4或IPv6),我的为IPv4公网。

    接着下拉界面,点击「添加同步记录」。

    记录栏中先填写主域名(二级域名),回车换到下一行,再填写通配符域名(所有三级子域名),如果你有更多需求则回车另起一行再继续添加即可。

    点击「添加任务」,Lucky就会自动保存并自动进行同步。成功后的界面如下。

     SSL/TLS证书 

    这里依然需要使用到上文域名托管商所获的Token。

    左侧栏点击「SSL/TLS证书」,接着点击「添加证书」。

    对证书进行备注,添加方式选择ACEM,ACME类型证书会在到期前约36天自动续签。证书颁发机构选择Let’s Encrypt。验证方式要与上文动态域名解析的保持一致。粘贴ID和Token,补充域名列表,这里同样与上文一致。更多设置勾选DNS查询强制IPv4和DNS查询仅使用TCP。搞定后直接点击「添加」。

    如果你有其他证书需求,也可自行上传或指定证书路径。

    稍等一会儿,成功的结果界面如下。

     Web服务 

    这里开始配置反向代理相关。

    左侧栏点击「Web服务」,点击「添加Web服务规则」。

    对服务规则进行命名。监听类型同样根据实际网络情况选择。监听端口自定(我预设为7086,但IPv6可忽略这项),要是未被占用的可用端口,后面还要对这个端口进行转发,可惜国内IPv4的443基本不能用。我们已然申请证书要通过HTTPS访问,TLS需要开启。

    接着是默认规则,选择关闭链接,会对下面的子规则生效。就是如果访问的地址与子规则的配置不符,不会返回任何响应(如 403、404、503 等),而是直接丢弃请求。这里其实完全没必要管,官方文档也有提示。

    最后添加子规则。现在的Lucky支持批量修改前端域名,如果我们实行域名年抛策略会非常方便。

    以上一篇部署的TR下载器为例,服务类型选择反向代理。前端地址填写纯粹的域名,不要带杂七杂八内容,域名前缀自定义即可。后端地址则要填写内网完整的访问地址,如下图所示。

    确认无误后,右下角点击「添加/修改子规则」即可。如下图的红色框标注部分便是以后外网访问TR的地址。

    最后还差一步,就是IPv4用户需要对监听端口进行转发。

    来到路由器,设置端口转发/映射,内网地址填写为NAS内网IP,端口则为上文设置的监听端口,最后保存即可。

    至此已经实现家庭NAS外网访问方案。后续也可以将Lucky本身以及其他服务都加入进去。

     情况补充 

    当时写Lucky流程试验后碰到的问题:

    在手机浏览器输入域名+监听端口时,会连接失败,必须要手动再补上https://。

    因此我们要添加 HTTP → HTTPS 的自动跳转规则。

    继续点击「添加Web服务规则」。

    配置如下。

    监听端口和前面的保持一致。TLS不要开。

    接着下拉界面编辑默认规则。

    服务类型选择重定向。

    默认目标地址填写https://{host}:{port}。

    修改/保存即可。

    Lucky特别适合家庭NAS环境,可将Jellyfin、Emby、qBittorrent等各类服务通过二级域名统一访问,实现”一个域名+N个服务”的便捷管理。相比传统方案(DDNS-GO + Nginx Proxy Manager),Lucky将多个工具功能整合到一个界面,操作更简单,配置更直观,适合新手玩家快速上手。

    安全建议:首次使用后务必修改默认密码,设置安全入口路径,关闭外网访问开关,定期备份配置文件。对于公网IPv4用户,建议在路由器中设置端口转发;IPv6用户需确保光猫和路由器开启IPv6桥接模式。

  • SSH隧道完全指南:从原理到实战,轻松实现内网穿透

    SSH隧道完全指南:从原理到实战,轻松实现内网穿透

    你是否遇到过无法直接访问公司内网、家中NAS或远程服务器的困扰?拥有一台公网主机,却不知如何让它成为连接内网的桥梁?本文将深入浅出地解析SSH隧道的四种工作模式,并通过详尽的实战案例,手把手教你如何利用SSH这把“瑞士军刀”,构建安全、灵活的内网穿透通道,让网络边界消失于无形。

    在网络管理和安全运维中,SSH(Secure Shell)远不止是一个远程登录工具。其强大的隧道功能,能够构建加密的通信渠道,实现灵活的内网穿透和端口转发。本文将系统性地介绍SSH的四大端口转发模式,并辅以典型应用场景,助你掌握这一实用技能。

    SSH支持的端口转发模式

    正文开始前先用5分钟过一遍ssh支持的端口转发模式,具体使用场景在下一节详述。太长不看的可直接跳到下一节。

    1.”动态“端口转发(SOCKS代理):

    ssh -D 1080 JumpHost  # D is for Dynamic

    区别于下面要讲的其他端口转发模式,-D是建立在TCP/IP应用层的动态端口转发。这条命令相当于监听本地1080端口作为SOCKS5代理服务器,所有到该端口的请求都会被代理(转发)到JumpHost,就好像请求是从JumpHost发出一样。由于是标准代理协议,只要是支持SOCKS代理的程序,都能从中受益,访问原先本机无法访问而JumpHost可以访问的网络资源,不限协议(HTTP/SSH/FTP, TCP/UDP),不限端口。

    2.本地端口转发

    ssh -L 2222:localhost:22 JumpHost  # L is for Local

    这条命令的作用是,绑定本机2222端口,当有到2222端口的连接时,该连接会经由安全通道(secure channel)转发到JumpHost,由JumpHost建立一个到localhost(也就是JumpHost自己) 22端口的连接。
    如果上述命令执行成功,新开一个终端,执行ssh -p 2222 localhost,登录的其实是JumpHost。
    所以-L是一个建立在传输层的,端口到端口的转发模式,当然远程主机不仅限于localhost。
    后面的stdio转发和ProxyJump可以看做是本地端口转发的升级版和便利版(参见OpenSSH netcat mode

    3.远程端口转发

    ssh -R 8080:localhost:80 JumpHost  # R is for Remote

    顾名思义,远程转发就是在ssh连接成功后,绑定目标主机的指定端口,并转发到本地网络的某主机和端口:和本地转发相比,转发的方向正好反过来。
    假如在本机80端口有一个HTTP服务器,上述命令执行成功后,JumpHost的用户就可以通过请求http://localhost:8080来访问本机的HTTP服务了。

    4.stdio转发(netcat模式)与ProxyJump

    ssh -W localhost:23 JumpHost

    netcat模式可谓ssh的杀手特性:通过-W参数开启到目标网络某主机和端口的stdio转发,可以看做是组合了netcat(nc)和ssh -L。上述命令相当于将本机的标准输入输出连接到了JumpHost的telnet端口上,就像在JumpHost上执行telnet localhost一样,而且并不需要在本机运行telnet!
    既然是直接转发stdio,用来做ssh跳板再方便不过(可以看做不用执行两遍ssh命令就直接跳到了目标主机),所以在ProxyJump面世前(OpenSSH 7.3),ssh -W常被用于构建主机到主机的透明隧道代理,而ProxyJump其实就是基于stdio转发做的简化,专门用于链式的SSH跳板。

    使用场景

    建立代理

    假设你在局域网A,HostB在局域网B,JumpHost有双网卡可以同时连接到局域网A和B。此时的你想要访问HostB上的web服务,便可以通过如下命令建立代理:

    ssh -D '[::]:1080' JumpHost

    这样,浏览器设置代理socks5://localhost:1080后,就可以直接访问http://HostB了。

    当然,还可以通过这个代理ssh登录到HostB:

    ssh -oProxyCommand="nc -X 5 -x localhost:1080 %h %p" HostB

    其中, nc需要BSD版(Ubuntu和OS X默认就是BSD版本),-X 5指定代理协议为SOCKS5,-x指定了代理地址,%h %p用于ProxyCommand中指代代理目的地(HostB)和目的端口。更多代理用法参见lainme姐的通过代理连接SSH通过代理使用GIT

    ssh -D也是最基本的翻墙手段之一。

    通过公网主机穿透两个内网

    好,现在进入一种更复杂的情况:你(HostA)和目标主机(HostB)分属不同的内网,从外界都无法直接连通。不过好在这两个内网都可以访问公网(JumpHost),你考虑通过一台公网机器建立两个内网之间的隧道。

    于是在目标网络,你吩咐现场人员帮你连通公网主机:

    # Host in LAN-B
    ssh -qTfNn -R 2222:localhost:22 JumpHost

    -qTfNn用于告知ssh连接成功后就转到后台运行,具体含义见下一节解释。

    现在,你只需要同样登录到跳板机JumpHost,就可以通过2222端口登录HostB了:

    # in JumpHost, login HostB
    ssh -p 2222 localhost

    更进一步

    如果我们将2222绑定为公网端口,甚至都不用登录跳板机,从而直接穿透到HostB:

    ssh -qTfNn -R '[::]:2222:localhost:22' JumpHost

    (因为要绑定公网端口,请确保在JumpHost的/etc/ssh/sshd_config里,配置了GatewayPorts yes,否则SSH Server只能绑定回环地址端口。)

    在HostA上执行:

    ssh -p 2222 JumpHost # Login to HostB

    这样还有一个好处,作为管理员可以直接禁用跳板机的shell权限,使他作为纯粹的隧道主机存在(见“安全性”一节)。

    当然还有粗暴的方式,通过组合ssh -Dssh -R打开Socks5代理:

    # Host in LAN-B
    ssh -qTfNn -D :1080 localhost  &&  \
    ssh -qTfNn -R '[::]:12345:localhost:1080' JumpHost

    上述命令在HostB创建了SOCKS代理,并且映射到了公网JumpHost的12345端口,整个内网对我们而言已经一览无余,ssh登录更是手到擒来:

    # Host in LAN-A
    ssh -oProxyCommand="nc -X 5 -x JumpHost:12345 %h %p" localhost

    限制访问

    然而,直接在公网主机上暴露穿透到内网的端口非常不安全。为提高安全性,我们把远程转发限制到回环地址, 这样就限制了只有有权限登录JumpHost的人才能穿透到局域网B。首先在HostB上设定远程转发:

    # Host in LAN-B
    ssh -qTfNn -R 2222:localhost:22 JumpHost

    在HostA执行:

    # Host in LAN-A
    # 通过ProxyJump跳板登录到目标主机,即使跳板机用户不能分配tty也没关系
    ssh -J JumpHost -p 2222 localhost

    (如果要限制socks5代理的使用,道理也一样,不过是加一层由本机端口到跳板机socks5端口的本地转发而已)

    如果OpenSSH版本<7.3, 需要用stdio转发(ssh -W)代替-J,该命令会先登录JumpHost,继而转发本机stdio到JumpHost,所以接下来的ssh登录操作如同是在JumpHost完成一样:

    ssh -oProxyCommand="ssh -W %h:%p JumpHost" -p 2222 localhost

    通常意义的”跳板“

    通常意义的”跳板“,指的是连接发起端A,经由跳板机B->C->D,连接到目标主机E的过程。连接和数据流都是单向的,比起上述情况反而简单了许多。这里不再赘述,只举两个简单的例子说明。更多示例参见OpenSSH/Cookbook/Proxies and Jump Hosts

    ssh -L 1080:localhost:9999 JumpHost -t ssh -D 9999 HostB

    这条命令会在登录JumpHost时,建立本机1080端口到JumpHost 9999端口的转发,同时在JumpHost上执行ssh登录HostB,同时监听9999端口动态转发到HostB。于是,所有到本机1080端口的连接,都被代理到了远程的HostB上去。

    ssh -J user1@Host1:22,user2@Host2:2222 user3@Host3

    这条命令就是经由Host1, Host2,ssh登录到Host3的过程(需ssh版本高于7.3)。

    Tips

    ssh执行为后台任务

    ssh -qTfNn用于建立纯端口转发用途的ssh连接,参数具体含义如下:

    • -q: quiet模式,忽视大部分的警告和诊断信息(比如端口转发时的各种连接错误)
    • -T: 禁用tty分配(pseudo-terminal allocation)
    • -f: 登录成功后即转为后台任务执行
    • -N: 不执行远程命令(专门做端口转发)
    • -n: 重定向stdin为/dev/null,用于配合-f后台任务

    安全性

    • 建议为端口转发建立专门的账户,使用随机密码(当然使用私钥登录更好),并且禁掉其执行命令的权限。最简单的方式为
    # add user tunnel-user for ssh port forwarding
    sudo useradd -m tunnel-user
    # generate 10 random passwords with 16 length
    pwgen -sy1 16 10
    # pick one password and set it to tunnel-user
    sudo passwd tunnel-user
    # disable shell for tunnel-user
    sudo chsh -s /bin/false tunnel-user
    • 更多可参考Ask Ubuntu
    • 避免在公网直接暴露动态代理转发,很危险。 尽量远程端口转发到目标主机的ssh端口。这样需要远程接入的人可以自行ssh登录或打开本地Socks代理。

    保持连接

    客户端设置(~/.ssh/config):

    Host *
         ServerAliveInterval 180

    每180秒向SSH Server发送心跳包,默认累积三次超时即认为失去连接。

    服务器端同样可以设置心跳(/etc/ssh/sshd_config),作用同理:

    ClientAliveInterval 180

    Windows 客户端

    (我是个不喜欢贴图的人。。)以PuTTY为例,假如这台Windows主机在内网,我们要借助公网主机的远程端口转发建立隧道:

    1. 和往常一样,在Session菜单输入公网主机的IP和SSH端口
    2. SSH菜单里勾选Don't start a shell or command at all,以建立一个纯隧道连接(不需要登录shell)
    3. 展开SSH菜单,进入Tunnels子菜单:
      1. 勾选Remote ports do the same (SSH-2 only),使远程端口监听公网连接。
      2. 输入具体端口配置,比如Source port(也就是远程主机要监听的端口)填写22222,Destination填写HostIP:22,其中HostIP为内网中SSH服务器的IP。
      3. 选择RemoteAuto,表示建立远程端口转发。点击Add添加配置
    4. 点击Open登录公网主机即可建立隧道。

    SSH隧道是一门实用且强大的技术,它将加密、认证和转发融为一体。通过理解和灵活运用本地转发、远程转发、动态代理等模式,你可以轻松化解各种网络访问难题,无论是在运维、开发还是日常学习中,都能游刃有余。

  • 告别网络限制!利用Cloudflare免费服务,在国内稳定调用Gemini API

    告别网络限制!利用Cloudflare免费服务,在国内稳定调用Gemini API

    兄弟们,是不是被Gemini API那堵“墙”给整烦了?想用个最新的AI模型,还得各种折腾网络环境,代码动不动就给你报个400、403?别慌,今天李哥就带你玩个花的——直接白嫖Cloudflare的全球网络,给Gemini API搭个免费、高速还稳得一匹的“国内专线”!咱不整那些虚头巴脑的理论,就讲究一个实战落地。核心思路非常简单:利用 Cloudflare Workers​ 这个“神器”做个反向代理,让它帮你跑腿去访问Gemini,你再从国内直接调用这个代理地址就完事了。

    一、核心原理:反向代理(Reverse Proxy)

    简单来说,就是把 Cloudflare 当作一个“中转站”。

    我们遇到的问题是:我们的设备(电脑、服务器)无法直接访问 Google Gemini 的 API 服务器地址 generativelanguage.googleapis.com

    Cloudflare 的作用就是:

    1. 你访问 Cloudflare:你将本来要发送给 Gemini API 的请求,发送到一个由你控制的、Cloudflare 提供的域名上(例如 xxx.yourname.workers.dev)。

    2. Cloudflare 访问 Gemini:Cloudflare 的服务器遍布全球,它会从一个可以正常访问 Google 的海外节点,去请求真正的 Gemini API 地址 generativelanguage.googleapis.com

    3. Cloudflare 返回结果:Cloudflare 拿到 Gemini API 的返回结果后,再通过那个你可以访问的域名,原封不动地返回给你。

    在这个过程中,Cloudflare 就像一个中间人,帮你完成了“出海”访问的步骤。你的设备始终只和 Cloudflare 通信,从而绕过了直接访问的限制。

    Image

    二、实现方法:Cloudflare Workers (最常用、最灵活)

    Cloudflare Workers 是一个无服务器(Serverless)计算平台,允许你在 Cloudflare 的全球网络边缘上运行 JavaScript 代码。用它来做反向代理非常完美。

    准备工作:

    1. 一个 Cloudflare 账户(免费版即可)。

    2. 一个 Cloudflaret 托管的域名。

    3. 一个 Google Gemini API 密钥。


    三、操作步骤:

    1. 登录Cloudflare,点击左侧菜单Workers和Pages,点击创建应用程序

    https://dash.cloudflare.com/

    Image

    2. 选择从Hello World!开始,点击开始使用
    Image

    3. 给worker起个自己中意的名称,这里叫gemini-proxy;然后点击下方部署按钮。
    Image

    点击访问,打开页面就能看到Hello World了,说明部署成功。


    Image

     4点击编辑代码按钮。

    Image

    5. 将下列代码覆盖贴入左侧代码栏中,点击部署

    exportdefault {
    asyncfetch(request, env) {
        // 1. 解析原始 URL
        const url = newURL(request.url);

        // 2. 仅替换主机名(协议、路径、查询都保留)
        url.hostname = 'generativelanguage.googleapis.com';
        url.port   = '';          // 443 默认
        url.protocol = 'https:';  // 向外走 HTTPS

        // 3. 构造新请求:把 method、headers、body 原样带过去
        const newReq = newRequest(url.toString(), {
          method  : request.method,
          headers : request.headers,
          body    : request.body
        });

        // 4. 发出去并直接把响应返回给浏览器
        returnfetch(newReq);
      }
    };

    Image

    因为被封了这个域名后缀,这时需要梯子去访问你的worker地址。


    接下来我们进一步设置,就是用自己的域名去访问。


    Image

    6. 开始DNS解析记录操作,依次点击主页>DNS记录>添加记录
    Image

    Tips:

    • 代理状态关闭(仅DNS)。

    • DNS可以添加多个IP,选用以下即可,也可网上自行查找可用IP。

    • 点击查看支持的区域:https://ai.google.dev/available_regions


    #IP属地不对,使用时会报错


    Connection failed!
    {
      "error": {
        "code"400,
        "message""User location is not supported for the API use.",
        "status""FAILED_PRECONDITION"
      }
    }



    #可用IP

    104.23.240.1      # 美西 151 ms
    104.16.123.1      # 美西 140 ms
    172.64.32.1       # 美西 135 ms


    这里名称填写gemini,并指向可用的IP


    Image

    7. 左侧菜单Workers路由,点击添加路由按钮

    • Image
    • 设置的域名和worker的路由关系,填写如下:

    • gemini.chinapmcc.com/*

    • gemini-proxy

    • Image
    •  

    8. 生成Google AI的API密钥,需要梯子。 Gemini Pro的api key获取地址:https://makersuite.google.com/app/apikey
    Image

    9. 验证并应用,配置时用到两个东西:API KEY、API 地址 经过上述配置,就可以使用Gemini了,下面通过两个应用例子验证,在其他应用中使用也是一样的方法。 

    官方Gemini API 调用地址https://generativelanguage.googleapis.com/v1beta/models/{model}:generateContent?key={key}
    将前面地址替换成 
    https://gemini.chinapmcc.com/v1beta/models/{model}:generateContent?key={key}

    • 沉浸式翻译 API配置 API KEY,API 地址贴入,点击测试服务,绿色勾代表成功

      Image

      打开外文网站时,点击沉浸式翻译图标,翻译服务选择设置好的Gemini API,点击翻译即可翻译网站。

      Image


    • Chatbox API配置 https://web.chatboxai.app/settings API KEY,API 地址贴入,点击Check,Connection successful!代表成功,点击右上ESC返回 General Settings中可设置中文语言
      Image

      OK~现在可以在chatbox中免费使用Gemeni了

      Image


    Previous Posts
    往期推荐
    💡你的免费建站好搭档(Cloudflare R2):零成本享受云储服务,全球加速访问文件库

     

     

  • 资源搜索效率翻倍,用Docker给NAS装个PanHub一键聚合全网资源

    资源搜索效率翻倍,用Docker给NAS装个PanHub一键聚合全网资源

    还在为找资源翻遍几十个网站?还在为切换不同网盘反复搜索而烦恼?PanHub的出现,让这一切成为过去式。
    PanHub是一款聚合网盘资源的搜索工具,支持百度网盘、阿里云盘、夸克、迅雷、115、天翼云盘、123网盘、移动云盘、UC网盘等众多网盘平台。它不需配置网盘授权信息,开箱即用,主打一个”资源采集”,可以轻松实现网盘资源一键搜索与分类跳转。

    今天,「lee poet」就带你部署一个堪称 “网盘资源界超级搜索引擎” 的Docker神器——PanHub!它的口号简单粗暴:一次搜索,全网网盘,直接给你结果!

    零配置即用:内置海量网盘频道,无需手动配置授权或Cookie,开箱即用。无需映射文件,直接搜索资源并跳转转存,搜索结果可快速跳转转存,无需繁琐操作。支持十余种主流网盘资源分类展示,一次搜索即可覆盖阿里云盘、夸克、百度网盘、115、迅雷等热门网盘资源。默认先给出”快速结果”,随后自动补全”深度结果”并覆盖显示,按相关度和速度排序。不依赖网盘账号授权,避免敏感信息泄露,轻量部署,无广告、无追踪,使用更安心。

    【 PanHub 

    PanHub是啥?它是你的“资源猎手”!

    简单说,PanHub 是一个免费、开源、聚合了众多优质网盘资源站和公开频道的搜索工具

    PanHub原生支持Cloudflare Workers,0服务器运维成本,免费起步。同时支持Docker部署,无论是VPS、NAS还是云服务器,都能轻松部署。采用MIT License开源许可,免费开源、零广告、轻量部署。内置多插件,支持按需启用/禁用,参数化并发与缓存,可根据实际需求灵活配置。

    【不正经比喻时间】

    你传统的找资源方式:像在一个巨大的跳蚤市场里瞎逛。每个摊位(搜索网站)都得问一遍,大部分摊主还爱答不理(链接失效/要你关注)。

    你用PanHub之后:像拥有了一个专属的、神通广大的“采购助理”。你只需要下达一个指令(关键词),他就会瞬间问遍市场上所有靠谱的摊位,然后把阿里、夸克、百度、115、迅雷…的现货(有效链接)整齐地摆在你面前,任君挑选。

    说人话就是: 它帮你把那些散落在互联网角落的、专门分享网盘资源的网站和频道全部打包,做了一个统一的、干净的、无广告的搜索接口。你,就是资源的终点站。无论你是NAS用户、影视爱好者,还是需要频繁查找资源的普通用户,PanHub都能为你提供高效、便捷的网盘搜索体验。接下来,让我们一步步学习如何在Docker环境下部署和使用PanHub。

    实战:一键部署,召唤你的“资源猎手”

    部署过程依旧是我们最爱的、优雅的Docker-Compose大法。

    第一步:创建它的“小单间”

    • 在你的NAS上,比如在 docker 文件夹里
    • 新建一个 panhub 目录。

    第二步:编写 docker-compose

    • 打开飞牛桌面上的Docker界面 -> Compose
    • 写一个项目名称,选择储存路径

      (例如你之前创建的目录/vol2/1000/docker/panhub

    • 创建 docker-compose.yml 文件,把下面的“咒语”复制粘贴进去
    services:
      panhub:
        image: wu529778790/panhub.shenzjd.com:latest
        container_name: panhub
        ports:
          – “3021:3000”
        # 左边3021是你访问的端口,随便改!右边别动!
        restart: unless-stopped

    参数精讲(为啥这么搞):

    • 端口映射:3021 可以换成任何你喜欢的端口,避免冲突。
    • 极简设计:它本身只是一个“搜索中转站”,不存你的数据,所以连 volumes 挂载都可以省略,真正做到 用完即走,不沾身

    第三步:启动!!

    • 启动 -> 自动拉取镜像并构建坐等完成。
    • 打开浏览器,访问:http://你的飞牛NAS IP:3021

    恭喜! 一个干净、极简的搜索页面已经加载完毕!那个孤零零的搜索框,就是你通往资源新世界的大门!

    灵魂操作:如何像“资源大佬”一样优雅搜刮

    界面极其简单,但功能极其凶残。

    1. 输入关键词,见证魔法

    • 搜索框里,输入任何你想找的东西,比如 《名侦探柯南》、《哪吒之xxx》、《罗小黑战记》等。
    • 按下回车或点击搜索。

    2. 观察“智能排序”的威力

    • 第一波:“快速结果”:几乎在瞬间,屏幕上就会弹出第一批资源。这是PanHub从响应最快的源里抓取的结果,让你不用等待
    • 第二波:“深度结果”:稍等几秒钟,更多、更全面的资源会陆续加载出来,并自动覆盖掉之前可能不完整的结果。这种感觉,就像撒了一张大网,先捞上来小鱼,再等大鱼入网

    3. 享受“分门别类”的便捷

    • 所有的结果会清晰地按照 阿里云盘、夸克网盘、百度网盘、115、123、uc、迅雷 等 来源分好类。
    • 找到你想要的结果,点击内容直接调整指定页面。
    • 然后……你就可以打开对应的网盘APP,享受秒存的快乐了!

    整个流程,从搜索到复制链接,不超过10秒钟。你再也无需打开N个浏览器标签页,忍受各种弹窗广告了。

    • 外网访问(非必须):配合我们之前教过的 Lucky反向代理,给它分配一个如 panhub.abc.com 的域名,你在全世界任何一个角落,都能畅听你库里的所有歌曲!

    “但是”时间:保持清醒,做守法公民

    PanHub虽强,但我们必须认清它的边界和风险:

    • 【资源来源】: 它搜索的是互联网上公开分享的资源。资源的准确性、完整性、安全性(尤其是可执行文件)需要你自己判断。下到葫芦娃里不一定是葫芦娃!
    • 【版权风险】: 这是一个灰色地带。请务必尊重版权,用于搜索学习和已获授权的内容,不要用于商业用途和传播盗版。支持正版,才是长久之计。
    • 【链接时效】: 网盘链接是有生命周期的。PanHub不保证每个链接都有效,但它能帮你用最快的方式找到当前最可能有效的链接。
    • 【轻量工具】: 它就是一个搜索聚合器,没有会员、没有加速、不能破解网盘限速。该开网盘会员还得开。

    结论: 把它当作一个效率工具,它能极大提升你“找资源”的效率。但它不生产资源,它只是资源的搬运工。

    行动号召:是时候提升你的资源搜索效率,告别信息乞丐了

    技术存在的意义,是让你生活得更爽,而不是更复杂。

  • v2ray伪装建站教程:用Nginx反向代理实现“大隐隐于市

    v2ray伪装建站教程:用Nginx反向代理实现“大隐隐于市

    [members_only]

    在网络安全日益受到关注的今天,直接使用代理协议无异于“裸奔”。一个好的节点,不仅要跑得快,更要藏得深。所谓“大隐隐于市”,最完美的伪装就是让我们的V2ray服务看起来和一个普通的网站一模一样。今天,李诗人就带大家手把手搭建一个既能提供代理服务,又能正常访问网站的V2ray伪装站点。

    根据 v2ray带伪装一键脚本 搭建好梯子后,有些网友想顺便弄个博客玩玩。这完全没问题的,因为搭建博客/网站的必备要素:vps、域名,都已经有了,并且一个像样的网站能让你的ip更不容易被墙。本教程给出v2ray伪装建站的详细过程。

    首先,建议网站的主机名用 www 或者 @,即网站是通过 https://v2raytech.com 或者 https://hijk.pw 这样的形式访问。当然blog、app等主机名也是很好的,访问形式就是 https://blog.hijk.pw、https://app.hijk.pw。

    接着域名解析到vps的ip,运行 v2ray带伪装一键脚本  搭建好v2ray,并确保v2ray能在手机、电脑上配置正常使用。

    建站技术有很多种,本教程只介绍最常用的三种:静态网站、反向代理网站和WordPress博客。

    注意:如果你安装过宝塔,请在宝塔面板中修改配置,不要使用本页面中的脚本。

    静态网站

    静态网站是最简单的网站,既可以上传个人作品/模板做展示站,也可以托管文件当ftp、网盘。

    将伪装站从小说站改成静态网站的操作非常简单:编辑 /etc/nginx/conf.d/你的域名.conf 文件(你的域名换成真实域名,例如v2raytech.com),删除 proxy_pass  xxxx 这一行(第28行),然后重启Nginx

    一键修改脚本:

    domain=`cat /etc/v2ray/config.json | grep Host | cut -d: -f2 | tr -d \",' '`
    confpath="/etc/nginx/conf.d/"
    if [ ! -f $confpath${domain}.conf ]; then
      confpath="/www/server/panel/vhost/nginx/"
    fi
    sed -i '28d' ${confpath}${domain}.conf
    nginx -s reload

    接下来,将你的文件上传到 /usr/share/nginx/html 文件夹,就可以通过 https://你的域名/文件路径 的方式访问上传的网页或者文件了。文件上传操作可参考 Bitvise连接Linux服务器教程 。

    反向代理网站

    默认的小说站就是反向代理,如果你想换成其他网站,例如百度,把 /etc/nginx/conf.d/你的域名.conf 文件的 proxy_pass  xxxx 这一行(第28行)改成 proxy_pass http://www.baidu.com ,然后重启Nginx

    这种建站方式简单粗暴,实践时也有一些坑。例如Nginx不支持反向代理http2的网站,如果后端网站是h2,需要设置 proxy_http_version 1.1;后端网站的一些链接可能不是相对路径,需要用 proxy_redirect 替换。等等问题本文不再细说,请参考Nginx官方文档。

    WordPress博客

    WordPress是非常流行的建站程序、CMS系统,国外许多知名网站都是用WordPress搭建,本站也是基于WordPress。

    WordPress建站需要配置PHP、MySQL/MariaDB,安装和配置过程比较复杂。本人这里提供一个CentOS 7/8的WordPress一键安装脚本,使用方法如下:

    bash <(curl -sL https://raw.githubusercontent.com/hijkpw/scripts/master/wordpress.sh)
    

    脚本运行后会询问你是否继续,按回车键继续,接着脚本会自动运行并配置Nginx。运行成功后输出类似如下的配置信息:

    WordPress安装成功

    接下来,浏览器打开域名,进入WordPress的配置界面:

    wordpress配置界面

    填好必要的信息,点击下方的“安装WordPress”,恭喜你,属于你的博客就搭建好了!接下来尽情折腾博客,开始你的写文章之旅吧!

    如果打算认真写博客且长期使用,建议参考:提升WordPress性能与实用插件推荐:打造高效博客的完整指南

    其他

    1. 使用tomcat、Ghost、Hugo、Huxo等技术建站,最简单的方式就是让程序监听80和443以外的端口,然后把第28行 proxy_pass xxxx 改成 proxy_pass http://localhost:后端端口

    2. 运行wordpress脚本后,v2ray也能正常使用,不会受到影响;

    [/members_only]

  • 通过宝塔粗浅的解释一下“反向代理”

    通过宝塔粗浅的解释一下“反向代理”

    讲反向代理之前,我们需要先来熟悉一下正向代理,正向代理代理(forward proxy):是一个位于客户端和目标服务器之间的服务器(代理服务器),为了从目标服务器取得内容,客户端向代理服务器发送一个请求并指定目标,然后代理服务器向目标服务器转交请求并将获得的内容返回给客户端(比如我们访问Google,就是用的这个技术)
    反向代理(reverse proxy):是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务,因为向代理中多出一个可以重定向解析的功能操作,导致反代理出的站点指向和真实应用毫无关系
    这么说可能有些晦涩难懂,可以从以下几个角度来比较:

    • 正向代理和反向代理都是解决访问不可达的问题
    • 正向代理是在A端(客户端)设置,A通过B访问C,对于C来说,不知道A的存在
    • 反向代理是在B端(服务端)设置,A访问B,B返回C的结果,对于A来说,不知道C的存在

    接下来我们通过宝塔来演示一下反向代理
    1.打开宝塔,创建一个网站

    通过宝塔粗浅的解释一下“反向代理”

    2.添加解析记录到该服务器中

    通过宝塔粗浅的解释一下“反向代理”

    3.此时访问dl.zhangjia.pro,即可看到我们的网站,此时是没有添加任何代理的

    通过宝塔粗浅的解释一下“反向代理”

    4.打开宝塔设置,添加反向代理设置

    通过宝塔粗浅的解释一下“反向代理”

    5.此时访问dl.zhangjia.pro,打开的网站却是zhangjia.io,反向代理成功