群晖NAS+FRP 并获取用户真实IP
2020-11-12 13:57:54
事情的起因是这样的, 我的NAS没有公网IP,通过FRP端口映射到云主机对外提供访问,但是互联网不怀好意的人太多了,经常有人尝试暴力破解我的登录密码,而经过FRP映射之后默认NG获得的IP是NAS的本地局域网IP.一旦暴力破解密码错误次数超过5次,IP就会被拉入黑名单, 所有人都登录不了,只能通过后台解锁.非常不方便.所以需要群辉NG能获取真实用户的IP.
1.FRP
服务器部分
首先准备一台固定IP地址的云主机我的操作系统是centos7
mkdir -p usr/local/frp
wget https://github.com/fatedier/frp/releases/download/v0.34.2/frp_0.34.2_linux_amd64.tar.gz
tar -xzvf frp_0.34.2_linux_amd64.tar.gz
vim frp_0.34.2_linux_amd64/frps.ini
客户端
[nas1https] type = https local_port = 5001 custom_domains = nas2.xxxx.com proxy_protocol_version = v2
红色部分为认证token 可以理解为认证密码
配置好了之后,做一个启动脚本
脚本内容如下
nohup /usr/local/frp/frp_0.27.0_linux_amd64/frps -c /usr/local/frp/frp_0.27.0_linux_amd64/frps.ini >/dev/null 2>&1 &
客户端部分,我的客户端是群辉采用的ubuntu操作系统,
cd /volume1/homes/你的用户名/
wget https://github.com/fatedier/frp/releases/download/v0.34.2/frp_0.34.2_linux_amd64.tar.gz
tar -xzvf frp_0.34.2_linux_amd64.tar.gz
vim frp_0.34.2_linux_amd64/frpc.ini
同样写个脚本并添加到群辉的任务管理器当中,每5分钟执行一次 vi check_frpc.sh
counter=$(ps -ef | grep frpc | grep -v grep | grep -v check_frpc | wc -l) echo "Number of frpc processes in current system:$counter" if [ "X$counter" == "X0" ]; then nohup /usr/local/frp/frp_0.34.2_linux_amd64/frpc -c /usr/local/frp/frp_0.34.2_linux_amd64/frpc.ini >/dev/null >2&1 sleep 5 fi
2.群辉
群辉的NGINX 服务器的配置文件是通过其他配置文件生成的,重启ng服务配置文件就会还原,这个给我造成了很大的困扰
通过 /etc/nginx/nginx.conf 文件可以得知群辉nginx配置文件的上级文件
通过修改下列几个文件,才能最终生成自己想要的nginx配置文件.
经过很长一段时间的尝试,并简化 发现只需要修改nginx.mustache这个文件即可在64行的位置
群辉6.0
群辉7.0
DSM.mustache57、58行的位置
群辉7.0
修改后重启
群辉6.0
synoservicecfg–restart nginx
群辉7.0
synosystemctl restart nginx
可以获得用户的真实ip了
评论(0)
原文链接:https://blog.csdn.net/feitianyul/article/details/113724203