找到
15
篇与
技术流
相关的结果
-
基于Cloudflare Pro和 Snippets 的WAF防护规则 本文转载自nodeseek@IPLark 本文尝试分享一些基于Cloudflare Pro 以及 Snippets 的防护规则/配置/代码。在规则方面,尽可能做到精简。 世界上不可能有两个一模一样的站点(就算内容、程序一样,流量也不可能完全一样),所以也不可能有适配所有网站的通用WAF规则。本文例子中的站点为虚构站点(f47fb81b34.com,该网站是使用了开源程序typecho搭建的个人博客,日流量2000 IP左右),以下规则是针对该站点的。 注:以下内容仅供参考。 1. 对搜索引擎等友好爬虫进行过白 后续的WAF规则会对爬虫进行拦截,在这些规则之前,我们需要对友好的爬虫进行过白。假设我们需要将搜索引擎以及指定IP(13.3.3.3)纳入白名单。 点击安全性,选择WAF,创建规则。请注意,该规则需要放置在后续其他拦截规则之前。 1.png图片 2.png图片 3.png图片 注:Google Search Console的抓取工具属于Google Inspection Tool,该工具在Cloudflare Radar(https://radar.cloudflare.com/traffic/verified-bots )的分类中为安全性。 11.png图片 在极少数场景下,Cloudflare 可能对搜索引擎的判断有误,这会导致极少数情况下无法对搜索引擎自动过白,这时候我们需要手动将搜索引擎IP纳入ip list里。 谷歌ip list可参考: https://developers.google.com/search/apis/ipranges/googlebot.json https://developers.google.com/search/apis/ipranges/user-triggered-fetchers.json https://developers.google.com/search/apis/ipranges/user-triggered-fetchers-google.json必应ip list可参考 https://www.bing.com/toolbox/bingbot.json IPlist的创建方法如下: 1)点击管理账户。 2)点击配置。 21.png图片 3)点击列表,创建一个新的iplist。 31.png图片 4)将需要过白的ip或ip段导入。 如图所示 41.png图片 5)回到刚才的WAF规则,重新编辑whitelist规则。 51.png图片 2. 屏蔽恶意bot以及异常的请求 创建一条新规则,放置在whitelist之后,命名为block,采取措施为阻止。 61.png图片 表达式 (not len(http.request.headers["accept-language"]) > 0) or (not starts_with(http.user_agent, "Mozilla/5.0")) or (http.user_agent contains "bot") or (ip.src.country in {"T1"}) or (http.user_agent contains "Bot") or (http.user_agent contains "http") or (http.user_agent contains "rawler") or (http.user_agent contains "pider")注: CF防火墙的UA匹配是区分大小写的,部分bot UA会包含bot而部分会包含Bot,所以需要区分开来,而少部分UA可能会包含crawler或Crawler,所以上述规则用rawler匹配两种情况。 正常的浏览器访客的UA都是以Mozilla/5.0开头且accept-language必定不为空。 部分扫描程序的ua会包含http,但不包含bot,用UA包含http可以匹配并封禁掉众多公开扫描程序。比如 Censys部分Botnet来源于Tor节点,可根据实际情况觉得是否禁止tor用户访问。Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/) 3. 对部分异常流量进行质询 假设网站大部分用户都来自中文用户,那么可以accept-language进行进一步判断,比如大部分中文访客的accept-language都包含zh,如果请求中accept-language不包含zh,那么有可能为异常流量。且大多访客的http版本为http2和http3,就此我们可以设置一条新规则challenge,放在block规则之下。 71.png图片 注:启用该规则后,正常访客有可能(小概率事件)也被要求完成人机验证。 此外,CF有三种类型的人机验证,分别是交互式质询、托管质询和JS质询,JS质询无需用户点击,由浏览器自动执行脚本并完成验证,交互式质询需要用户点击确认框,而托管质询介于两者之间,根据用户环境,由CF选择对用户实行JS还是交互式质询。 4. 对部分疑似恶意的请求进行质询/阻止 该规则组匹配的内容较多,篇幅有限,就不一一说明了。 表达式如下 (http.user_agent contains "MSIE") or (not http.request.method in {"GET" "POST" "HEAD"}) or (http.request.full_uri contains "well-known") or (len(http.request.headers["via"]) > 0) or (http.user_agent contains "; +") or (http.request.uri.path contains "//") or (http.x_forwarded_for contains ".") or (len(http.request.headers["x-forwarded-host"]) > 0) or (len(http.request.headers["cdn-loop"]) > 0) or (len(http.request.headers["cf-ew-via"]) > 0) or (http.user_agent contains "\\x09") or (http.user_agent contains "Trident") or (http.user_agent contains "Headless") or (http.request.uri contains "--+") or (http.user_agent contains "{") or (http.user_agent contains "$") or (http.user_agent contains "<") or (http.user_agent contains "script") or (http.request.uri contains "\\x") or (any(http.request.headers["sec-fetch-site"][*] contains "cr") and any(http.request.headers["sec-fetch-mode"][*] contains "no"))此规则组误报率极低,视实际情况,选择质询或阻止。 5. 配置超级自动程序攻击模式(Super Bot Fight) 点击安全性,选择自动程序。 81.png图片 开启后,CF会对部分模拟浏览器的自动化请求进行拦截(大概率是基于tls指纹,屏蔽了curl、golang等常见的tls指纹)。对低级的自动化请求有一定效果,聊胜于无。Business及以上版本可以开启对 likely automated 的请求的识别和阻止。 6. 开启托管规则集,并进行微调 91.png图片 编辑该规则,参考下图,对部分默认规则进行覆盖。 92.png图片 93.png图片 7. 开启DDoS规则覆盖,微调默认规则 94.png图片 95.png图片 点击编辑规则,搜索impersonate,修改部分参数,如下图所示,然后保存。 96.png图片 8. 调整安全级别、开启浏览器完整性检查 点击安全性,选择设置,将安全级别由默认值改为高,并开启浏览器完整性检查。 注:该功能作用甚微。 9. 关闭IPv6、Pseudo IPv4以及洋葱路由 97.png图片 98.png图片 99.png图片 注:可根据实际情况决定是否关闭。关闭IPv6需借助api。 借助api关闭ipv6后,还需进一步在WAF规则里对::/0进行屏蔽。 10. 开启速率限制 在WAF中开启速率限制,具体配置需视情况而定。 100.png图片 11. 利用Snippets做一个简易的302 cookie验证 当我们请求path.net时,会发现网站会返回307状态码,且在响应头里有一个名为CRANE的cookie,正常浏览器访问会根据网站响应头,设置cookie,这样第二次访问的时浏览器就会携带cookie访问 path.net,而低级的自动化程序是无法自动获取并携带cookie去请求网站的,而这将会让程序陷入无尽的307循环,如下图所示。 101.png图片 据此,我们可以利用Cloudflare的Snippets做一个类似的简易人机验证,我们将访客的IP、访客UA以及自定义key进行组合,然后sha256对组合进行加密,并通过响应头发送给访客,访客访问网站时需携带snippets发送的cookie进行请求,才能顺利访问网站。 点击网站规则,选择Snippets,点击创建片段。 代码如下(仅供参考,自行修改secretKey的值) export default { async fetch(request) { const clientIp = request.headers.get('cf-connecting-ip') || ""; const ua = request.headers.get('user-agent') || ""; const secretKey = "h*dUm|mdS^6=QB)y"; // 组合并生成哈希值 const signatureBase = `${clientIp}${ua}${secretKey}`; const encoder = new TextEncoder(); const data = encoder.encode(signatureBase); const hashBuffer = await crypto.subtle.digest('SHA-256', data); const hashArray = Array.from(new Uint8Array(hashBuffer)); const hashHex = hashArray.map(b => b.toString(16).padStart(2, '0')).join(''); let cookies = request.headers.get('Cookie') || ""; // 检查是否包含特定的 Cookie if (cookies.includes(hashHex)) { // 如果已经包含,直接返回原始请求 return await fetch(request); } else { // 否则生成重定向响应 const newResponse = new Response(null, { status: 302, headers: { "Set-Cookie": `_test=${hashHex}; Path=/; HttpOnly`, "Location": request.url, } }); return newResponse; } }, };根据实际情况,匹配snippets生效规则。 102.png图片 注: 1.该snippets没有对搜索引擎进行过白,如果需要过白部分请求,需要做额外的处理。 2.该snippets具有一定局限性,可以考虑纳入更多的请求参数,进一步完善snippets。 3.该snippets对高阶的自动化请求无效。 12. Snnippets拓展 例如可以利用snippets创建点击验证、验证码验证、hcaptcha验证等。 一些示例(需用海外IP访问) 点击验证 https://iplark.com/playground/captcha/click 103.png图片 图片验证码 https://iplark.com/playground/captcha/image 104.webp图片 Hcaptcha https://iplark.com/playground/captcha/hcaptcha 105.webp图片 Hcaptcha https://iplark.com/playground/captcha/hcaptcha image 首发于NodeSeek,本文转载。 -
甲骨文救砖ARM,无需重新挂载硬盘,netboot使用教程 本教程转(转LOC@千牛) 前言: 前些天,出给了一个大兄弟日本的甲骨文,当时差点玩死,就是因为系统装好了,但是密码忘了 还好大兄弟自己会技术,重新挂载硬盘,用另一个AMD去把ARM的给救回来了 但是问题来了:如果没有AMD,怎么修复已经挂掉的甲骨文呢? 这就要用到这个神器了:netboot 官网在 这里 。 之前有过经验的都知道netboot只要有启动文件,就能去修复,但是问题是如何来那个efi启动文件 步骤: 新建一个shell 终端 1.png图片 重启机器,一直按ESC键盘,然后进入Boot Manager / EFI Internal Shell 2.png图片 执行命令,初始化网络dhcp FS0: ifconfig -s eth0 dhcp ifconfig -l eth0 ping 8.8.8.8`3.png图片 执行tftp拉取文件 AMD机器 tftp 146.56.117.218 amd.efi amd.efi ARM机器 tftp 146.56.117.218 arm.efi arm.efi 4.png图片 使用拉取的efi文件修复、重装 exit命令退出,然后进入Boot Maintenance Manager/Boot From File 然后选择你下载的efi文件,进行重装 5.png图片 我主要说一下关于tftp的源,我这里放了一个我自己的,但是不保证啥时候忘了就删了,所以放一个自己的docker 有需要的自己直接用这个也能拉取了,对应改掉那个ip地址就行 docker run -itd --name tftpd \ -p 69:69/udp \ -e PUID=1111 \ -e PGID=1112 \ --restart unless-stopped \ langren1353/netboot-shell-tftp后话: 最后附一个启动成功的图,剩下的自己摸索吧,基本上没啥问题了(据说AMD的好像不行,内存太小了启动不起来,ARM无问题): 6.png图片 本次教程部分内容、思源来自这里 : -
Debian12 编译安装qbittorrent 本教程适用于qBittorrent4.1.9-4.3.0.1或更新版本 安装须知查阅 https://github.com/arvidn/libtorrent 步骤一:安装libtorrent 1.先安装依赖包: apt update apt install build-essential pkg-config automake libtool git libgeoip-dev python3 python3-dev apt install libboost-dev libboost-system-dev libboost-chrono-dev libboost-random-dev libssl-dev apt install qtbase5-dev qttools5-dev-tools libqt5svg5-dev zlib1g-dev 2.安装libtorrent 1.2.19: wget https://github.com/arvidn/libtorrent/releases/download/v1.2.19/libtorrent-rasterbar-1.2.19.tar.gz tar xf libtorrent-rasterbar-1.2.19.tar.gz cd libtorrent-rasterbar-1.2.19 ./configure --disable-debug --enable-encryption --with-libgeoip=system CXXFLAGS=-std=c++17 make -j$(nproc) make install ldconfig注意提示,有可能c++版本不适合你的系统,可自主选择,如CXXFLAGS=-std=c++17 步骤二:安装qBittorrent 下载地址:https://github.com/qbittorrent/qBittorrent/tags 可自行选择版本 qBittorrent4.3.9为例 wget https://github.com/qbittorrent/qBittorrent/archive/refs/tags/release-4.3.9.tar.gz tar xf release-4.3.9.tar.gz cd qBittorrent-release-4.3.9 ./configure --disable-gui --disable-debug make -j$(nproc) make install 步骤三:设置开机自启 编辑: nano /etc/systemd/system/qbittorrent.service 输入以下内容: [Unit] Description=qBittorrent Daemon Service After=network.target [Service] LimitNOFILE=512000 User=root ExecStart=/usr/local/bin/qbittorrent-nox ExecStop=/usr/bin/killall -w qbittorrent-nox [Install] WantedBy=multi-user.target 启用以上设置: systemctl enable qbittorrent.service 步骤四:首次启动qBittorrent(首次启动请按y确认条款) qbittorrent-nox 按Ctrl+C退出 后台运行qBittorrent: systemctl start qbittorrent.service 安装完成 访问WebUI:http://你的IPADDRESS:8080/ 默认用户名:admin 默认密码:adminadmin为了安全,可修改8080端口,用户名及密码 2024-04-06_13-32.png图片 接着: 关闭qBittorrent命令: systemctl stop qbittorrent.service 启动qBittorrent命令: systemctl start qbittorrent.service 重启qBittorrent命令: systemctl restart qbittorrent.service 步骤五:创建下载文件夹和设置权限 现在目录可根据自己设置 mkdir /home/Downloads chmod 777 /home/Downloads 把下载路径设置到/home/Downloads就OK了! -
在CoudFlare上进行SaaS设置的教程 CloudFlare是一个非常不错的SaaS平台,它可以帮助用户免费使用CNAME接入域名解析。通过CloudFlare的DNS服务,用户可以快速地将自己的域名解析到具体的IP地址上,从而实现云上部署。 一、准备工作 首先,假设我建站,用hostloc.com这个域名,DNS可以接入到dnspod(或者其他) 其次,我需要一个便宜的域名,123456.xyz 或者其他任意能接入CF的域名均可,一般选择比较便宜的就行了,甚至免费的,比如eu.org ————————————————————————————————— 接着,登录CF,正常接入123456.xyz这个域名(DNS接入CF官方) 接入完成后点进123456.xyz的设置界面,侧栏找到“SSL/TLS”,点进去 有个“custom-hostnames”,然后一路点,(第一次点开的话)需要你绑卡或者绑paypal 支付方式绑定完事之后,启用SAAS 2023-11-16_08-09-1536x772.png图片 二、具体设置 ———————————————————————————————— 第一步,在“custom-hostnames”页面,“Add Fallback Origin”添加回退源,就是要告诉CF你的源站 (二级域名)前缀随便用啥都行,不影响,我这里就用mjj,也就是mjj.123456.xyz 首先去“DNS”那里,添加一个A记录(或其他)指向你的源站,云朵开不开不影响,建议开着 然后回到“custom-hostnames”的“Add Fallback Origin”,输入你刚刚指向源站的那个二级域名 过1分钟左右,就显示Fallback Origin status: Active 以上(第一步)需要操作的只有123456.xyz这个域名 另补充一下,这个xyz域名只需在CloudFlare里操作,不需要在源站服务器的nginx/apache之类的服务绑定。不要混淆了。 —————————————————————————————————————— 第二步,还是在“custom-hostnames”页面,有个很明显的大按钮“Add Custom Hostname” 点开,输入建站的域名,假设是www.hostloc.com,其他不用改,tls1.0、txt验证 添加后会提示你,让你设置2个txt记录,分别是域名所有权的和SSL证书的验证,这个没什么好说的,不会的话我也没办法了 再设置一个cname记录到mjj.123456.xyz(前面设置回退源的那个二级域名)(另外如果有之前就A到CF的IP的记录也先暂停或者删掉) 为什么要这样设置的,因为如果你A记录解析到自选IP,有时会过不了验证 顺利的话,过几分钟就验证完了,有时会长一点 验证完成后,cname记录mjj.123456.xyz是可以删掉的,这样不会暴露这个xyz域名,再就是因为相当部分MJJ搞这个目的是自选IP对吧,然后就放飞自我吧,直接A你的自选IP 以上(第二步)需要操作的DNS只有hostloc.com这个域名 ———————————————————————————————————————— 结束 -
提高安全性VPS修改SSH端口及从密码改为密钥登录 6005d0a469ed9d8392dc5a3334f2bffe.jpeg图片 一、修改端口 Debian、Ubuntu等系统比较简单 (1)输入下列命令 nano /etc/ssh/sshd_config 在修改端口之前,先添加一个端口,找到 Port 进行修改 将Port 22 去掉# 并添加新端口 Port 10022 修改之后,进行保存 (2)重启 systemctl restart sshd 2.Centos稍微复杂点 (1)输入下列命令 nano /etc/ssh/sshd_config在修改端口之前,先添加一个端口,找到 Port 进行修改 将Port 22 去掉# 并添加新端口 Port 10022 修改之后,进行保存 (2) 向防火墙中添加修改的端口 假设端口修改为12345,向防火墙中添加端口的命令为: firewall-cmd --zone=public --add-port=12345/tcp --permanentreaload 防火墙规则: firewall-cmd --reload查看端口是否添加成功: firewall-cmd --zone=public --query-port=17186/tcp注意: 这里的设置是在 CentOS 7 版本下的操作 , 低于 CentOS 7的版本不支持 防火墙如果未启用,可通过下列命令打开: systemctl start firewalld查看防火墙状态: systemctl status firewalld(3)向SELinux中添加修改的SSH端口 在向SELinux中添加端口之前需要先安装SELinux的管理工具 semanage (如果已经安装了就直接到下一步) : yum provides semanage在这里我们看到运行 semanage 需要先安装其依赖工具包 policycoreutils-python : yum install policycoreutils-python安装好之后,可以直接使用 semanage 命令: 查询当前 ssh 服务端口: semanage port -l | grep ssh向 SELinux 中添加 ssh 端口: semanage port -a -t ssh_port_t -p tcp 12345验证 ssh 端口是否添加成功: semanage port -l | grep ssh添加成功之后就可以重启 ssh 服务了: serivce sshd restart———————— 二、改用密钥登录 以Debian为例: 1.首先打开xshell等工具创建密钥,如xshell->工具(T)->新建用户密钥生成向导(W) 密钥类型: ECDSA 密钥长度选择 521 位->下一步 再次下一步->名称可修改,这里默认 id_ecdsa_521 接着输入给密钥设的密码->下一步 保存为文件,默认在..Xshell\Sessions文件夹中,文件名 id_ecdsa_521.pub 2.上传以及测试 cd /root/.ssh/ 安装上传工具 apt-get install lrzsz 上传 rz -be 查看是否上传成功 ls authorized_keys id_ecdsa_521.pub 如果没有authorized_keys 需要先创建 touch authorized_keys && chmod 700 /root/.ssh/ && chmod 600 /root/.ssh/authorized_keys cat id_ecdsa_521.pub >> authorized_keys && chmod 600 authorized_keys 如果碰到.ssh文件夹不存在 ssh localhost -p 21755 如果没改过端口 就是ssh localhost 输入yes 输入root密码 如果提示密钥没在电脑上注册 root目录下键入以下命令 chmod 700 .ssh cd .ssh chmod 600 * service sshd restart断开ssh,重新连接,使用密钥登录 3.禁止密码登录 注意:验证了密钥能正常登陆之后,再执行以下步骤(避免无法远程连接服务器) 这三条可以一起复制在xshell中执行 sed -i 's/^#\?\(PubkeyAuthentication\s*\).*$/\1yes/' /etc/ssh/sshd_config; sed -i 's/^#\?\(PasswordAuthentication\s*\).*$/\1no/' /etc/ssh/sshd_config; sed -i 's/^#\?\(ChallengeResponseAuthentication\s*\).*$/\1no/' /etc/ssh/sshd_config Restart SSH service systemctl restart sshd 如果禁止密码登录失效(常见于ubuntu) 删除50-cloud-init.conf文件或者在50-cloud-init.conf配置文件中配置禁止密码登陆参数 vim /etc/ssh/sshd_config.d/50-cloud-init.conf (1)修改为 PasswordAuthentication no PubkeyAuthentication yes(2)保存退出 然后重启SSH systemctl restart ssh完毕。 -
甲骨文oracle找回二次验证的方法 转自LOC 官方认证的方法: 因为更换手机丢失了二次验证。 然后给客户沟通,获得了找到二次验证的办法,希望对你有用。2023-10-02_09-33.png图片 1、登录到账号登陆界面,查看地址栏当中自己的IDCE地址(yourIDCS_Stripe_here)部分,并复制。 https://idcs-yourIDCS_Stripe_here.identity.oraclecloud.com/比如“https://idcs-1228021fd2t34dca9981884078364f13.identity.oraclecloud.com/ui/v1/signin” 2、然后将自己的IDCS地址(yourIDCS_Stripe_here)复制到下方连接相应的位置,并在浏览器中重新打开新的地址。 https://idcs-yourIDCS_Stripe_here.identity.oraclecloud.com/ui/v1/myconsole?root=my-info&my-info=my_profile_security比如“https://idcs-1228021fd2t34dca9981884078364f13.identity.oraclecloud.com/ui/v1/myconsole?root=my-info&my-info=my_profile_security” 3.在新的地址当中登录你的账号 4.重新设置只验证设备 -
解决ransmission错误一则:UDP Failed to set receive buffer 运行transmission出现错误: transmission-daemon[32127]: UDP Failed to set receive buffer: requested 4194304, got 425984 transmission-daemon[32127]: UDP Failed to set send buffer: requested 1048576, got 4259842023-09-17_22-23.png图片 解决方法: 位置/etc/sysctl.conf 增加两行: net.core.rmem_max = 16777216 net.core.wmem_max = 4194304重新载入参数: sysctl -p重启transmission服务: systemctl status transmission-daemon -
宝塔搭建开源网络记事本:minimalist-web-notepad 不同终端倒段文字,复制粘贴个代码,从手机到电脑,从一个电脑到另一个,还是比较麻烦。网盘太重,微信需要验证,自建极简单记事本minimalist-web-notepad即可解决,宝塔下建立更是非常方便,网上不少推荐Docker建立的反而麻烦。 1. 新建一个网站,例如:note.xxx.yyy;申请ssl等略。 2. 拷贝项目文件夹里下载的文件到 note.xxx.yyy 的根目录: 在官方github上下载拷贝,或者终端git clone 3. 修改 index.php 文件第四行,"$base_url"变量处将网址改为 note.xxx.yyy。 在第十七行可以修改生成网址的随机字符串位数和字符(不改也可以,比较懒,所以把-5改成了-3,随机生成网址后缀就只有三个字符了): 4. 修改该网站的主配置文件,添加 URL 重写代码,打开网站-设置-config,编辑config文件 在最后一个大括号{前添加: 如果网站文件在主目录下: location / { rewrite ^/([a-zA-Z0-9_-]+)$ /index.php?note=$1$is_args$args; } 如果网站文件在某目录如notes目录下: location ~* ^/notes/([a-zA-Z0-9_-]+)$ { try_files $uri /notes/index.php?note=$1$is_args$args; } 5. 网站文件下“_tmp”目录的权限改为WWW的755,以方便读写! 6. 伪静态设置为空 效果如下图: 2023-08-05_13-02.png图片 注意: 不要用别人搭建的链接去分享敏感信息,因为在服务器端是可以直接看到内容的! 参考: 主页:https://github.com/pereorga/minimalist-web-notepad -
[总结] nat机器到底怎么套cloudflare,全方位解读 感谢nodeseek论坛的-X- 原贴地址:https://www.nodeseek.com/post-44-1 众所周知,Nat机器由于大量用户公用一个ipv4,很容因很容易被照顾,因此通常需要借助使用cloudflare使用。但是很多新手对如何套cloudflare一头雾水,即使是老手对于一些新的cloudflare特性也不是非常了解。还有一些朋友发现,其nat服务商的ipv6给的是Hurricane Electric的网络地址,早年cloudflare为了避免滥用“cf-he”接入方式完全禁止了HE的ipv6网段,因此失去了下面要讲的第一种方法的可能性,但这种情况下仍然可以成功利用cloudflare的,只是很多人不清楚,因此这里关于“套cloudflare”进行一下总结。 套cloudflare其实是一个很土的说法,其实就是利用cloudflare作为CDN,当发起一个http(s)请求的时候,先由cloudflare接受,然后转发到nat服务器。考虑到cloudflare作为网络基础设施,其被照顾的影响过于复杂因此很难直接照顾。 为什么nat机器不好套cloudflare呢,是很多人习惯了直接用vps的公网ipv4接入cloudflare,但是nat是没有ipv4的,无法直接接入。还有一些服务商提供了ipv6 only的服务器,直接没有ipv4地址,更需要特殊对待。针对不同的情况,有几种变通策略。 使用ipv6接入 最常见的,很多人第一反应就是使用ipv6接入,也就是添加AAAA解析。 常见的nat商家(比如gullo/webhorizon/natvps.uk等)都是提供nat v4 + 独立ipv6地址的,因此虽然无法直接使用共享ipv4的80/443端口进行接入,但是可以使用独立ipv6接入,毕竟ipv6是独享的所有端口皆可以使用。如下图所示就是接好了。 1.png图片 这种接入方法是最容易想到,也是非常稳定的方案。但是有几种情况不能使用这种方法: 如果商家的ipv6网络是Hurricane Electric,cf禁止接入。比如gullo的部分地区(纽约等) 商家不提供ipv6地址,比如最近很火的khanwebhost 使用Origin Rules 众所周知,nat服务器之所以被称为nat服务器,是因为ipv4地址共享,每个人只能使用部分端口。那么我们能不能使用这些端口进行接入呢。在半年前,也许答案是否定的,因为Cloudflare支持使用的非标端口很少,并且都是低位端口号,nat服务商的端口号一般都在10000以上,因此不好使用cf支持的非标端口。但是今年cloudflare免费开放了他们的Origin Rules,这允许我们使用任何端口接入到cf网络。配置如下: 2.png图片 3.png图片 注意,vps本地的http服务器(如nginx)需要监听对应的非标端口。 使用服务商域名forwarding + cloudflare接入 一般而言,nat机器服务商,都提供一种服务,就是域名forwarding,简单而言就是其宿主机器监听公网80/443端口,然判断收到请求的域名(host/sni)后forward到对应的nat vps实例的内网地址。 这种想法很好,但问题是很多他们用来监听80/443端口的公网地址阵亡了。虽然如此,这并不影响我们使用80/443端口接入cloudflare,我们仍然可以使用cloudflare添加A记录到这些宿主机器的ipv4地址,然后在服务商面板上添加域名forward规则。 注意,vps本地的http服务器(如nginx)需要监听对应的内网地址。 4.png图片 5.png图片 使用Cloudflare允许的非标准端口接入 cloudflare官方支持一系列非标准web端口进行接入,如果你的ipv4被照顾了,但是仍然想要接入,除了上面提到的两种方法,还可以使用Cloudflare允许的非标准端口。具体可以用的端口如下: 6.png图片 那么你可能会问了,这些端口我的nat机器服务商都没有对我开放,怎么办。 nat服务商除了提供域名映射以外,还提供端口映射,你可以把上面提到的cf支持的非标端口转发到内网ip,然后使用cf添加A记录解析,最后使用非标端口访问你的域名达到目的。只不过这种方法显得比较鸡肋,作为一种后备方案好了。 使用cloudflare argo接入 最后的最后,有些情况下服务商并没有提供公网ipv4/ipv6,比如pikapods的容器服务,可以使用cloudflare argo接入。限于篇幅,感兴趣的可以搜索相关教程,有时间可能会单独开一帖子介绍相关有趣玩法。 -
op 5O/online 3O C2350 安装Win10/win2012 教程 首先在面板上用救援模式启动,执行dd命令后退出,再以正常模式启动。 dd win10 ltsc wget -qO DebianNET.sh qiu.sh/dd && bash DebianNET.sh -dd "https://dl.lamp.sh/vhd/zh-cn_windows10_ltsc.xz"用户名: administrator 密码: Teddysun.com 9be8281b5de5222b73a38a828684f494.jpeg图片 Windows Server 2012 R2中文版: wget -O- --no-check-certificate https://down.xieyang.org/Windows/ISO/Win2012R2CN.gz |gunzip|dd of=/dev/sda用户名 :Administrator 密码:Laiboke.com -
linux设置ipv4优先或者ipv6优先 感谢LOC网友@好鸭 深度截图_选择区域_20220808094519.png图片 /etc/gai.conf中取消这一行配置的注释就是ipv4优先,否则是ipv6优先(默认) 取消掉这个注释 > sed -i "s/#\?precedence ::ffff:0:0\/96 100/precedence ::ffff:0:0\/96 100/" /etc/gai.conf 改回去(恢复系统默认) sed -i "s/^precedence ::ffff:0:0\/96 100/\#precedence ::ffff:0:0\/96 100/" /etc/gai.conf 推荐下面这种(最推荐的是手动改) 直接加一行到最后 echo "precedence ::ffff:0:0/96 100" >> /etc/gai.conf 删掉(恢复系统默认) sed -i "/^precedence ::ffff:0:0\/96 100/d" /etc/gai.conf 改变是即时生效的 判断,看看是ipv4还是ipv6就知道了(任意一个双栈的都可以) curl ip.sb curl ip.gs -
free.fr免费空间搭建图床及小文件分享Jirafeau及利用Cloudflare进行反代设置 Jirafeau是更新到现在的一款简洁易用的临时在线PHP网盘程序,允许您“一键式文件共享”。它可以以一种简单的方式上传一个文件,并为其提供一个独特的链接。因此Jirafeau既可以作为图床也可以作为小文件分享。 1、首先实现对空间的文件传输,最简单是上传一个PHP webshell 方法1:利用法国代理访问官方的ftp,地址:ftpperso.free.fr 方法2:买个法国VPS自己做web ftp,也可用别人搭建好的,推荐一个:https://ftp.feixiang.eu.org/ 账户/密码:mjj/mjj(感谢LOC网友@feixiang) 上传一个PHP webshell,推荐filebox.php,详见:https://github.com/or2me/Filebox 深度截图_选择区域_20220601112204.png图片 2、启动Free.fr支持php5.6 free.fr空间目前还不支持php7,所以所有php都要支持5.6及兼容的才行。 在根目录新建一个文件 .htaccess ,然后把下面的代码粘贴进去。 <IfDefine Free> php56 1 </IfDefine> ErrorDocument 404 /404.html3、上传Jirafeau 假设你的空间名为abc.free.fr,那么你的filebox访问地址为:http://abc.free.fr/filebox.php 在https://gitlab.com/mojo42/Jirafeau上下载压缩包,zip结尾最好 利用filebox上传文件到根目录,上传时选择解压缩。 4.设置Jirafeau (1)手动新建一个sessions文件夹在根目录,记得给写入权限。 (2)上传好的文件一般解压缩成文件夹Jirafeau-master。 (3)访问http://abc.free.fr/Jirafeau-master/install.php进行安装。注意末尾带/,具体安装见Jirafeau主页。 (4)访问http://abc.free.fr/Jirafeau-master/index.php即可实现访问了,分享图或者文件即可。 5.CloudFlare Workers反代 (1)创建一个Workers,启动器选HTTP handler。 深度截图_选择区域_20220601091810.png图片 编辑上面的Workers,复制下面代码,修改下域名,支持二级以上目录,比如http://abc.free.fr/Jirafeau-master/,但同样的必须以/结尾。 addEventListener('fetch', event => { const request = event.request; const url = new URL(request.url); const response = fetch('http://abc.free.fr/Jirafeau-master/' + url.pathname + url.search, { method: request.method, headers: request.headers, body: request.body, }); event.respondWith(response); (2)添加域名,在域名里添加路由,假设你添加的域名为cba.xxx.xyz,解析A的IP可以随便填,例如1.2.3.4,然后在worker里添加: 深度截图_选择区域_20220601092545.png图片 (3)注意在Scrape Shield 里面 关闭 Hotlink 保护 深度截图_选择区域_20220601092754.png图片 (4)为防止免费空间因为滥用而被限制,设置下缓存。 深度截图_选择区域_20220601093045.png图片 深度截图_选择区域_20220601093238.png图片 6、如果以上设置正确,搭建就完成了 访问http://abc.xxx.xyz即可看到Jirafeau。 深度截图_选择区域_20220601093425.png图片 -
推荐一个好用的开源的思维导图md笔记软件 1.png图片 特色 使用方便:使用 Monaco 内核,专为 Markdown 优化,拥有和 VSCode 一样的编辑体验。 功能强大:支持历史版本回溯;可在文档中嵌入小工具、可运行的代码块、表格、PlantUML 图形、Drawio 图形、宏替换等;支持接入 OpenAI 自动补全。 兼容性强:数据保存为本地 Markdown 文件;拓展功能尽量用 Markdown 原有的语法实现。 插件拓展:支持用户编写自己的插件来拓展编辑器的功能。 支持加密:用来保存账号等隐私文件,文件可单独设置密码。 注意事项 为了更高的拓展性和方便性,Yank Note 牺牲了安全防护(命令执行,任意文件读写)。如果要用它打开外来 Markdown 文件,warning请务必仔细甄别文件内容是值得信任的warning。 加密文件的加密解密操作均在前端完成,请务必牢记自己的密码。一旦密码丢失,就只能暴力破解了。 特色功能 以下功能具体使用可参考特色功能说明 同步滚动: 编辑区和预览区同步滚动,预览区可独立滚动 目录大纲: 预览区目录大纲快速跳转 版本管理: 支持回溯文档历史版本 文件加密: 以 .c.md 结尾的文件视为加密文件 自动保存: 文件编辑后自动保存,未保存文件橙色标题栏提醒(加密文档不自动保存) 编辑优化: 列表自动补全 粘贴图片: 可快速粘贴剪切板里面的图片,可作为文件或 Base64 形式插入 嵌入附件: 可以添加附件到文档,点击在系统中打开 代码运行: 支持运行 JavaScript、PHP、nodejs、Python、bash 代码 待办列表: 支持显示文档中的待办进度,点击可快速切换待办状态 快速打开: 可使用快捷键打开文件切换面板,以便快捷打开文件,标记的文件,全文搜索文件内容 内置终端: 支持在编辑器打开终端,快速切换当前工作目录 公式解析: 支持输入 katex 公式代码 样式风格: Markdown 使用 GitHub 风格样式和特性 数据仓库: 可定义多个数据位置以便文档分类 外链转换: 将外链或 BASE64 图片转换为本地图片 HTML 解析: 可以直接在文档里面使用 HTML 代码,也可以使用快捷键粘贴复制 HTML 为 Markdown docx 导出: 后端使用 pandoc 做转换器 TOC 支持: 生成 TOC 在需要生成目录的地方写入 [toc]{type: "ol", level: [1,2,3]} 即可 编辑表格单元格: 双击表格单元格即可快速编辑 复制标题链接: 复制标题链接路径到剪切板,便于插入到其他文件 嵌入小工具: 文档支持内嵌 HTML 小工具 嵌入 PlantUML 图形: 在文档内内嵌 PlantUML 图形 嵌入 drawio 图形: 在文档中内嵌 drawio 图形 嵌入 ECharts 图形: 在文档中嵌入 Echarts 图形 嵌入 Mermaid 图形: 在文档中嵌入 Mermaid 图形 嵌入 Luckysheet 表格: 在文档中嵌入 Luckysheet 表格 嵌套列表转脑图展示: 可将嵌套列表用脑图的方式展示 元素属性书写: 可自定义元素的任意属性 表格解析增强: 表格支持表格标题多行文本,列表等特性 文档交叉链接跳转: 支持在文档中链接其他文档,互相跳转 脚注功能: 支持在文档中书写脚注 容器块: 支持类似 VuePress 默认主题的自定义容器 宏替换: 支持内嵌 JavaScript 表达式动态替换文档内容 图床: 支持 PicGo 图床 OpenAI: 支持接入 OpenAI 自动补全 自定义插件: 支持编写 JavaScript 插件拓展编辑器功能。插件放置在 主目录/plugins 中。 链接: github主页 全平台下载页面 截图: 6_ZH-CN.png图片 7_ZH-CN.png图片 -
2023年/2024年最新Scaleway星尘Stardust玩法API任意开+3G硬盘图文详细教程 原创感谢LOC网友@ajeef,2023年开始界面稍有变化 1.获取ID信息 001.5dl03tq17q00.jpg图片 002.34tk2ye0vyi0.jpg图片 2023年变化,获取id方法在Project页面上: 2023-12-09_08-26.png图片 2.去github安装scaleway的api插件 scaleway官方cli的下载地址:https://github.com/scaleway/scaleway-cli 004.773wl0db46g0.jpg图片 005.6hsmchblaxg0.jpg图片 006.5okj6kyqjsg0.jpg图片 007.6j2st9kt3bg0.jpg图片 3.运行并进行初始化设置: 008.79od26tgi100.jpg图片 009.3avuovscg880.jpg图片 2023年初始化界面稍有改变: 首先注意在Windows11或Win10的Powershell(win11称之为终端)里面,exe程序的运行格式为: .\scw init ;CMD则按照图示格式。 其次,初始化界面变为通过以下三个验证初始化: 2023-12-09_08-40.png图片 其中secret-key,access-key在你的控制页API-key中创建: 在 Project dashboard -> Credentials 中点击 Generate new API KEY ,secret key只显示一次,所以记得保存好。 organization ID见上文Project ID。 接下来步骤其余选项参考老版界面。 4.创建新机器: 010.b2awpv912wc.jpg图片 011.66pg46fd32w0.jpg图片 完整命令格式: scw instance server create type=STARDUST1-S zone=fr-par-1(开的位置这里改) image=debian_bullseye(我用Debian,你可以自己改) root-volume=l:10G name=scw-now-hertz ip=none project-id=51b4e5be-9xxx-4xxx-bxxx-4fxxxxx(换成你自己的)smzdm.win提醒需要注意一点的是,和甲骨文一样,开脚本提前创建好SSH-key,避免创建好后无法登陆。 默认只能创建10G硬盘,这时候的价格是: 2023-12-09_08-29.png图片 5.硬盘改为3G的方法: (1)将刚创建完的机器登陆进去后试试,可以用SSH key登陆则正常,关机。 (2)在/instance/volumes里面创建一块同地区的3G的Local Storage,并挂载到你要改的星辰下面(记得地区要一样的),然后删掉原来的10G盘。(这个要在小鸡外面的地方添加,直接在小鸡内部添加的话,那个不是local SSD,会略贵!直接地址是https://console.scaleway.com/instance/volumes) (3)(可选,不过强烈建议临时买个IPV4不然后面的DD比较麻烦)接着Attach一个IPV4出来并且记得挂载到实例上(如果你有CDN或v6的服务器来做web,可以提前下载好下面的镜像,然后挂载web里面,只要能在v6环境下访问就可以不需要挂载ipv4),拿来下载镜像的,用完记得删。 (4)到实例的advanced-settings,选择Use rescue image(救援系统),这时候建议不要选3G的盘启动救援系统,而是直接启动(因为选了硬盘再D的话就不会升级内核了,而是用Ubuntu救援镜像的内核了)。 (5)启动小鸡。 (6)使用root账号和key登录小鸡,运行以下命令 Debian 10: curl -Lo- "https://cloud.debian.org/images/cloud/buster/latest/debian-10-genericcloud-amd64.raw" | dd of=/dev/vda bs=1M curl -Lo- "https://cloud.debian.org/images/cloud/buster/latest/debian-10-genericcloud-amd64.tar.xz" | tar -xJO | dd of=/dev/vda bs=1M Debian 11: curl -Lo- "https://cloud.debian.org/images/cloud/bullseye/latest/debian-11-genericcloud-amd64.raw" | dd of=/dev/vda bs=1M curl -Lo- "https://cloud.debian.org/images/cloud/bullseye/latest/debian-11-genericcloud-amd64.tar.xz" | tar -xJO | dd of=/dev/vda bs=1M 上面的命令,按照自己的需求,DD运行Debian 10或者Debian11,没有错误的话,再执行下列命令 parted -l partprobe parted -s /dev/vda resizepart 1 100% e2fsck -f /dev/vda1 resize2fs /dev/vda1 最后我们就可以重启和去官网取消ipv4还有记得要把"Use rescue image"改回"Use local boot",并且下面的boot硬盘记得要选上刚才创建的3G盘,记得都Save哈。 登录的时候,使用账号debian和key登录小鸡,使用sudo -i切换到root账号。(可以将key同步到root账号下,使用root账号登录,或者设置root密码,然后修改sshd的配置文件来使用root+密码登录小鸡) 补充:理论上,2G的硬盘就够了,但是Scaleway给的2G硬盘貌似小于2G,上面的debian文件dd不进去,会报错~~~3G是此方法的最小值了.感谢LOC@Smilence网友。