首页
店铺
联系
捐赠
图床
声明
状态
搜索
注册/登录
登录
搜索
anzhuo
分享各种工具和教程
累计撰写
19
篇文章
累计收到
3
条评论
首页
栏目
首页
店铺
联系
捐赠
图床
声明
状态
包含标签 【搭建】 的文章
2025-2-1
[合作]超值代理!快来领取
博客与安卓网络工作室联合推出 加速套餐,详情请看购买链接 价格只要10/月;什么?有点贵?没问题!联系客服即可获得超值价5元! 想要么,在标签栏里面点击“联系吧!”
2025年-2月-1日
108 阅读
0 评论
分享
2025-1-31
使用 CF access 搭建 github 验证
前言 通过自己的 vps 搭建完私有化服务后,服务会通过 vps 的公网 ip、端口暴露在互联网上,即便通过 ng、argo 进行反代,ip 还是会被扫描,有可能被他人以 ip: 端口的方式访问服务,并破解管理员账户、密码,尤其是默认账户和若密码。我们常用的 xui、3xui、1panel、wordpress 等面板就存在这种安全隐患 我们可以借用免费的 CF access,为我们的项目入口搭建 github 验证,外部访问必须先验证设定的 github 账户,才能进入到面板登录界面,这样即便将面板账户和密码设置为默认,也很难被攻破 现在假设你 vps 上已经搭建了一个 xui 面板,并通过 ng 或 argo 进行了反代,或者通过 CF 端口回源,得到了一个可访问的域名: xui.123123.xyz,让我们开始设置 (必须是托管在 CF 的域名才可以使用 CF access) 获取 CF zero trust 团队域名 注册地址: https://one.dash.cloudflare.com, 玩过 warp 或 argo 的人大家应该都会,需要绑定信用卡,使用免费计划即可。注册后会得到一个团队域,类似于这样: 团队用户名.cloudflareaccess.com,将这个域名保存下来备用 以下操作转到 github 上 设置 github auth apps 登录你的 github 账号,依次点击 settings(点击右上角头像可见)—— developer settings —— auth apps —— new auth app,创建一个验证程序 名称:随意,比如 cf-access 主页 URL : https://<你的zerotrust团队用户名>.cloudflareaccess.com 应用描述:随便填或留空 认证回调 URL: https://<你的zerotrust团队用户名>.cloudflareaccess.com/cdn-cgi/access/callback 然后点击注册应用 玩过哪吒面板的应该都知道,设置方式是一样的,只是 URL 和回调 URL 不一样 获取 client ID 和密钥 进入你刚刚设置好的 auth app,会获得一个 client ID,保存下来。点击生成 client secret,会获得一个密钥,也保存下来 以下操作转到 CF zero trust 设置 access 组 在 zero trust 管理界面点击左侧 access —— access组,点击 添加组 组名称:随意,比如 xui组,勾选 设置为默认组 选择器:选择 emails,值 填写你的 github邮箱,点击保存 设置 access 应用程序 在 zero trust 管理界面点击左侧 access —— 应用程序,点击 添加应用程序,点击 自托管 应用程序名称:随意填,比如也填 xui 应用程序域名:填写你 xui 的域名,比如,子域填写 xui,区域选择 123123.xyz,这里可以添加多个域名,比如你有多个 xui 面板,都可以添加在这里。 往下拉,找到 标识提供程序,将接受所有可用的标识提供程序关闭,手动选择 你所建立的 github 身份验证,也就是 github-xui。其他均保持默认,点击下一步 策略名称:可以随意,比如还是 xui 操作:为 allow 会话持续时间,建议选择 一周 分配组:打 勾,会默认选中你在 access 组中设定的组,也就是 xui组,并选择 include,其他保持默认,点击下一步 这里 勾选所有方式,其他默认,点击 保存应用程序 即可。任何访问包括 get、post 等都会被首先要求验证身份 测试设置是否正确 进入你刚刚添加的应用程序,点击 配置,再点击 测试策略,输入你 github 的邮箱,点击测试,弹出 访问被允许 即表示成功;如果失败,请按上述步骤重新检查一次 现在,访问你的 xui 面板域名,会首选弹出验证提示,点击验证,需要登录 github(和哪吒面板的 github 验证是一个道理),登录后才是 xui 面板的账号密码登录界面
2025年-1月-31日
96 阅读
0 评论
分享
2025-1-31
USDT支付源码/UUPAY虚拟货币支付系统
前端有两个文件,好像不全,后端laravel5 .env里面修改数据库和网站信息 自己看着弄,仅供学习研究 下载地址: [lv]https://pan.quark.cn/s/2270d260f622#/list/share 夸克网盘[/lv]
2025年-1月-31日
103 阅读
0 评论
分享
2025-1-31
知识付费小程序源码(独立版+H5端+百度+快手+三级分销+内容合集)
知识付费合集版独立版小程序源码/独立版知识付费小程序源码/+H5端+百度+快手小程序/会员三级分销 V2、知识付费小程序、小程序源码、知识付费、微信小程序、百度小程序、支付宝小程序、头条小程序、QQ小程序 下载链接: 百度网盘 提取码:2nx2
2025年-1月-31日
106 阅读
0 评论
分享
2025-1-30
最新PHP网盘搜索引擎系统源码 附教程
最新PHP网盘搜索引擎系统源码 附教程 这是一个基于thinkphp5.1+MySQL开发的网盘搜索引擎,可以批量导入各大网盘链接,例如百度网盘、阿里云盘、夸克网盘等。 功能特点:网盘失效检测,后台管理功能,网盘链接管理,热搜词管理,批量上传网盘链接,搜索结果排序,等其他功能正在更新中。 下载链接: [lv]pan.baidu.com/share/init?surl=JVBi5Z0QhhdN9S0N_OXhjw [/lv] 由于此资源短缺,需要登录查看
2025年-1月-30日
120 阅读
0 评论
分享
2025-1-29
USDT承兑系统JAVA源码下载(区块链交易组件)
JAVA系统USDT承兑系统源码组件下载 下载地址: 百度网盘 提取码:uwy2
2025年-1月-29日
98 阅读
0 评论
分享
2025-1-25
用Cloudflare搭建镜像站
准备 一个Cloudflare账号 注册Cloudflare 如果您有,请跳过此步骤 打开Cloudflare的官方网站,然后点击“注册” 这个跟简单,你只需要邮箱和密码就可以了 开始搭建 登录Cloudflare,选择“计算” 进入第一个选项,进入后,选择“创建” 点击“创建Workes” 进入后,如果需要更改名称请更改,完成后点击“部署” 等待部署完成,点击“编辑代码” 找到编辑框,清除全部内容并粘贴下面的代码 // 反代目标网站. const upstream = '不带http和s,直接写' // 反代目标网站的移动版. const upstream_mobile = '不带http和s,直接写' // 访问区域黑名单(按需设置). const blocked_region = ['TK'] // IP地址黑名单(按需设置). const blocked_ip_address = ['0.0.0.0', '127.0.0.1'] // 路径替换. const replace_dict = { '$upstream': '$custom_domain', '//archiveofourown.org': '' } addEventListener('fetch', event => { event.respondWith(fetchAndApply(event.request)); }) async function fetchAndApply(request) { const region = request.headers.get('cf-ipcountry').toUpperCase(); const ip_address = request.headers.get('cf-connecting-ip'); const user_agent = request.headers.get('user-agent'); let response = null; let url = new URL(request.url); let url_host = url.host; if (url.protocol == 'http:') { url.protocol = 'https:' response = Response.redirect(url.href); return response; } if (await device_status(user_agent)) { var upstream_domain = upstream; } else { var upstream_domain = upstream_mobile; } url.host = upstream_domain; if (blocked_region.includes(region)) { response = new Response('Access denied: WorkersProxy is not available in your region yet.', { status: 403 }); } else if(blocked_ip_address.includes(ip_address)){ response = new Response('Access denied: Your IP address is blocked by WorkersProxy.', { status: 403 }); } else{ let method = request.method; let request_headers = request.headers; let new_request_headers = new Headers(request_headers); new_request_headers.set('Host', upstream_domain); new_request_headers.set('Referer', url.href); let original_response = await fetch(url.href, { method: method, headers: new_request_headers }) let original_response_clone = original_response.clone(); let original_text = null; let response_headers = original_response.headers; let new_response_headers = new Headers(response_headers); let status = original_response.status; new_response_headers.set('cache-control' ,'public, max-age=14400') new_response_headers.set('access-control-allow-origin', '*'); new_response_headers.set('access-control-allow-credentials', true); new_response_headers.delete('content-security-policy'); new_response_headers.delete('content-security-policy-report-only'); new_response_headers.delete('clear-site-data'); const content_type = new_response_headers.get('content-type'); if (content_type.includes('text/html') && content_type.includes('UTF-8')) { original_text = await replace_response_text(original_response_clone, upstream_domain, url_host); } else { original_text = original_response_clone.body } response = new Response(original_text, { status, headers: new_response_headers }) } return response; } async function replace_response_text(response, upstream_domain, host_name) { let text = await response.text() var i, j; for (i in replace_dict) { j = replace_dict[i] if (i == '$upstream') { i = upstream_domain } else if (i == '$custom_domain') { i = host_name } if (j == '$upstream') { j = upstream_domain } else if (j == '$custom_domain') { j = host_name } let re = new RegExp(i, 'g') text = text.replace(re, j); } return text; } async function device_status (user_agent_info) { var agents = ["Android", "iPhone", "SymbianOS", "Windows Phone", "iPad", "iPod"]; var flag = true; for (var v = 0; v < agents.length; v++) { if (user_agent_info.indexOf(agents[v]) > 0) { flag = false; break; } } return flag; } 粘贴后,点击“部署” 至此,就搭建了你的镜像站
2025年-1月-25日
40 阅读
0 评论
教程
2025-1-21
TG营销机器人源码/带搭建教程
TG电报自动群发加群营销私信加人/TG营销机器人源码/带搭建教程 没有测试过,自己下载研究 网盘下载(夸克)
2025年-1月-21日
117 阅读
1 评论
分享
剪切
Ctrl+X
复制
Ctrl+C
粘贴
Ctrl+V
全选
Ctrl+A
搜索
翻译
在新窗口中打开链接
复制链接地址
返回
前进
刷新页面
Ctrl+R
复制本页网址
保存到桌面
打印...
Ctrl+P