admin管理员组

文章数量:1565292

群晖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/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/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

#!/bin/bash
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
    #Try to restart
   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)

本文标签: 真实用户空间nas群晖