yaocf

yaocf

V2EX 第 465954 号会员,加入于 2020-01-20 08:40:52 +08:00
请教 openwrt 下 ipv6 的疑问
OpenWrt  •  yaocf  •  29 天前  •  最后回复来自 coolloves
3
Traefik 代理 smtps 和 imaps 等邮箱协议
Linux  •  yaocf  •  64 天前  •  最后回复来自 yaocf
22
Openwrt/ Linux 定长 日志文件
OpenWrt  •  yaocf  •  2023-11-02 20:21:41 PM  •  最后回复来自 yaocf
14
求助: nginx 无法获取内置变量的值
NGINX  •  yaocf  •  2020-03-21 06:46:06 AM  •  最后回复来自 yaocf
4
yaocf 最近回复了
https://blog.twofei.com/896/
按照帖子里的说法,是不是只要找到 Hub 对应的 GPIO 设备路径,给设备模拟发送一个低电平信号就行了?
@yolee599 Device 是挂接到 Hub 上的,就像楼上的大侠说的,如果 Hub 有硬件线路链接到 device 的电源开关。就可以通过 Hub 开启 device 的电源了吧。
需求不是硬盘的联动休眠和唤醒(这个是需要 device 已经处于通电和通信状态的,这样才可以通过 device 改变硬盘的状态)
是不是自带的文件管理器导致的?
连接到 usb 之后,选择用三方文件管理器打开 usb 设备试试(比如 es 文件浏览器),我没遇到这种情况。
@52txr 你是不是开了 real ip?的模块。开了就会重写源地址,然后走到 allow ip 就会被拦住。
@52txr 你的回复里这两个请求,都是 Baiduspider 的,你是不是没有开 cf 的那个防止爬虫的保护?
```shell
#!/bin/sh
set -o pipefail

export _ipv4Range=`curl --retry 10 --retry-delay 5 -s https://www.cloudflare-cn.com/ips-v4`
if [[ $? -ne 0 ]]; then
export _ipv4Range=`curl --retry 10 --retry-delay 5 -s https://www.cloudflare.com/ips-v4`
if [[ $? -ne 0 ]]; then
exit 1
fi
fi

export _ipv6Range=`curl --retry 10 --retry-delay 5 -s https://www.cloudflare-cn.com/ips-v6`
if [[ $? -ne 0 ]]; then
export _ipv6Range=`curl --retry 10 --retry-delay 5 -s https://www.cloudflare.com/ips-v6`
if [[ $? -ne 0 ]]; then
exit 1
fi
fi

#nginx real_ip
_tmpConf="/tmp/._$(date '+%Y-%m-%d-%H-%M')-$(cat /proc/sys/kernel/random/uuid).txt"
_target='/etc/nginx/conf.d/common/cloudflare/_real_ip_from-ip-set.conf'
{
echo "# Generated by ${0}"
echo "# At $(date)"
echo "# IPV4"
for i in ${_ipv4Range} ;do echo "set_real_ip_from ${i};" ;done
echo ""
echo "# IPV6"
for i in ${_ipv6Range} ;do echo "set_real_ip_from ${i};" ;done
echo ""
} |tee ${_tmpConf}
if [[ $? -eq 0 ]]; then
mv "${_tmpConf}" "${_target}"

nginx -t
if [[ $? -eq 0 ]]; then
echo "Nginx 配置正常,重载配置!"
nginx -s reload
else
/app/scripts/bin/gotify.sh --title "${_target} 文件更新成功,但 Nginx 配置有误" "请修复后手动重载 Nginx !\n""nginx -s reload"
fi
fi

#nginx allow-ip-set
#sleep 1
_tmpConf="/tmp/._$(date '+%Y-%m-%d-%H-%M')-$(cat /proc/sys/kernel/random/uuid).txt"
_target='/etc/nginx/conf.d/common/cloudflare/_allow-ip-set.conf'
{
echo "# Generated by ${0}"
echo "# At $(date)"
echo "# IPV4"
for i in ${_ipv4Range} ;do echo "allow ${i};" ;done
echo ""
echo "# IPV6"
for i in ${_ipv6Range} ;do echo "allow ${i};" ;done
echo ""
} |tee ${_tmpConf}
if [[ $? -eq 0 ]]; then
mv "${_tmpConf}" "${_target}"

nginx -t
if [[ $? -eq 0 ]]; then
echo "Nginx 配置正常,重载配置!"
nginx -s reload
else
/app/scripts/bin/gotify.sh --title "${_target} 文件更新成功,但 Nginx 配置有误" "请修复后手动重载 Nginx !\n""nginx -s reload"
fi
fi

```

我这边用来更新 allow ip 配置文件的脚本
@yaocf 如果不是源站地址泄露。针对这种情况,简单点的处理:在 nginx 里写方法去匹配 cf 给的 real ip (本地通过 include nginx 配置文件维护一个变量,保存所有恶意 ip ),然后直接返回 404 ,就不会打到业务代码上了。然后可以配合 fail2ban 自动更新恶意 ip 的配置文件。
@52txr 首先看看是不是源站地址泄露(查看请求头,是否是 cloudflare 的请求),大多数情况下,恶意地址会被 cf 自动拦截验证的。源站泄露可以先 sni 分流,针对 cf 的域名,开 nginx 的 allow ip ,只允许 cf 的地址进行请求。
29 天前
回复了 sofm 创建的主题 程序员 负载均衡 连接数很高 ,怎么排查
tcpdump ,然后用表达式筛选。
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1597 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 17ms · UTC 16:56 · PVG 00:56 · LAX 08:56 · JFK 11:56
Developed with CodeLauncher
♥ Do have faith in what you're doing.