文章目录[隐藏]
前言
本人利用群晖搭建网站,Web服务器使用Apache 2.4 ,利用樱花穿透,但是一直无法获取客户端真实IP地址,按照樱花穿透的教程以及利用强大的度娘查找很久,在不断测试调整,经过失败多次后,终于找到了一个解决方法。
思路:穿透设置的端口是与实际群晖网站端口要分开,不然会失败!之前一直尝试都是这里出问题!本文以4443为樱花frp穿透端口,Web端口为 84443。
1、群晖端nginx配置
在/usr/local/etc/nginx/conf.d
中创建配置文件以http.*.conf命名,其中“ * ”则是自定义命名,比如命名为http.frpip.conf,文件内容可以访问 https://github.com/jiefff0/dsip/releases/download/ipip/http.ip.conf 下载模板,也可以自行按照下面输入(注意这里以 4443 端口以及 84443端口 为例):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
server { # 监听IPv4,并开启Proxy Protocol协议 listen 4443 ssl proxy_protocol; # 监听IPv6,并开启Proxy Protocol协议 listen [::]:4443 ssl proxy_protocol; # 监听的域名,你解析给云服务器的域名 server_name bs.home.com; # 排除Cloudflare CDN的IP # 如果你有使用到CDN的服务的话,一般NAS不会使用到此类IP # 仅供参考 set_real_ip_from 173.245.48.0/20; set_real_ip_from 103.21.244.0/22; set_real_ip_from 103.22.200.0/22; set_real_ip_from 103.31.4.0/22; set_real_ip_from 141.101.64.0/18; set_real_ip_from 108.162.192.0/18; set_real_ip_from 190.93.240.0/20; set_real_ip_from 188.114.96.0/20; set_real_ip_from 197.234.240.0/22; set_real_ip_from 198.41.128.0/17; set_real_ip_from 162.158.0.0/15; set_real_ip_from 104.16.0.0/13; set_real_ip_from 104.24.0.0/14; set_real_ip_from 172.64.0.0/13; set_real_ip_from 131.0.72.0/22; set_real_ip_from 2400:cb00::/32; set_real_ip_from 2606:4700::/32; set_real_ip_from 2803:f800::/32; set_real_ip_from 2405:b500::/32; set_real_ip_from 2405:8100::/32; set_real_ip_from 2a06:98c0::/29; set_real_ip_from 2c0f:f248::/32; # 排除本地IP,请根据你的具体情况配置 set_real_ip_from 192.168.0.0/16; set_real_ip_from 172.17.0.0/16; set_real_ip_from 127.0.0.0/8; # 排除服务器IP set_real_ip_from 1.1.1.1/32; # 真实IP使用proxy_protocol协议 real_ip_header proxy_protocol; # 开启排除IP功能 real_ip_recursive on; proxy_headers_hash_max_size 512; proxy_headers_hash_bucket_size 128; # 反向代理 location / { # 目标地址,实际可以访问的群晖内网默认HTTPS地址及端口,请根据实际情况调整 proxy_pass https://192.168.1.88:84443; # 兼容http # proxy_set_header Upgrade-Insecure-Requests 1; # 告诉后端使用ssl proxy_ssl_server_name on; # 客户端使用的http协议 proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Scheme $scheme; # 客户端host proxy_set_header Host $host; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header X-Forwarded-Host $http_host; # 完整URI proxy_set_header X-Original-URI $request_uri; # 客户端使用的端口 proxy_set_header X-Real-Port $proxy_protocol_port; # 多层代理IP proxy_set_header X-Forwarded-For $proxy_protocol_addr; # 客户端IP,群晖默认会通过X-Real-IP获取用户IP proxy_set_header X-Real-IP $proxy_protocol_addr; # 支持Websocket # 如果你使用诸如Docker bash此类的功能,则需要开启Websocket proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection Upgrade; proxy_connect_timeout 60s; proxy_read_timeout 60s; proxy_send_timeout 12s; # 配置文件来自https://www.alainlam.cn/?p=403 } } |
配置保存后用下面的命令测试配置文件是否正确
1 2 |
#检查配置文件是否正确 nginx -t |
正确就会返回包含下面的这条内容
nginx: configuration file /etc/nginx/nginx.conf test is successful
使用下面的命令重启nginx
1 2 |
#重启nginx nginx -s reload |
2、群晖Apache配置
因DSM7.2已经支持Apache 2.4 ,所以可以直接启用 mod_remoteip
模块。修改文件 /usr/local/etc/apache24/conf/httpd24.conf
添加如下代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 |
LoadModule remoteip_module modules/mod_remoteip.so <IfModule remoteip_module> # 2021-5-29 # 接入了CloudFlare和百度云加速 # mod_remoteip-httpd22 # https://github.com/ttkzw/mod_remoteip-httpd22 # https://support.cloudflare.com/hc/en-us/articles/200170786 # https://www.cloudflare.com/ips/ RemoteIPHeader CF-Connecting-IP RemoteIPTrustedProxy 103.21.244.0/22 RemoteIPTrustedProxy 103.22.200.0/22 RemoteIPTrustedProxy 103.31.4.0/22 RemoteIPTrustedProxy 104.16.0.0/13 RemoteIPTrustedProxy 104.24.0.0/14 RemoteIPTrustedProxy 108.162.192.0/18 RemoteIPTrustedProxy 131.0.72.0/22 RemoteIPTrustedProxy 141.101.64.0/18 RemoteIPTrustedProxy 162.158.0.0/15 RemoteIPTrustedProxy 172.64.0.0/13 RemoteIPTrustedProxy 173.245.48.0/20 RemoteIPTrustedProxy 188.114.96.0/20 RemoteIPTrustedProxy 190.93.240.0/20 RemoteIPTrustedProxy 197.234.240.0/22 RemoteIPTrustedProxy 198.41.128.0/17 RemoteIPTrustedProxy 2400:cb00::/32 RemoteIPTrustedProxy 2606:4700::/32 RemoteIPTrustedProxy 2803:f800::/32 RemoteIPTrustedProxy 2405:b500::/32 RemoteIPTrustedProxy 2405:8100::/32 RemoteIPTrustedProxy 2a06:98c0::/29 RemoteIPTrustedProxy 2c0f:f248::/32 # 百度云加速节点IP地址段(2021年3月2日更新) # https://su.baidu.com/help/index.html#/10_changjianwenti/0_HIDE_FAQ/20_baiduyunjiasujiedianIPdizhiduan.md RemoteIPHeader X-Forwarded-For # 天津 RemoteIPTrustedProxy 111.32.135.0/24 RemoteIPTrustedProxy 111.32.136.0/24 RemoteIPTrustedProxy 111.32.134.0/24 RemoteIPTrustedProxy 125.39.174.0/24 RemoteIPTrustedProxy 125.39.239.0/24 RemoteIPTrustedProxy 125.39.238.0/24 RemoteIPTrustedProxy 42.81.6.0/24 RemoteIPTrustedProxy 42.81.8.0/24 # 重庆 RemoteIPTrustedProxy 119.84.92.0/24 RemoteIPTrustedProxy 119.84.93.0/24 RemoteIPTrustedProxy 113.207.100.0/24 RemoteIPTrustedProxy 113.207.101.0/24 RemoteIPTrustedProxy 113.207.102.0/24 RemoteIPTrustedProxy 221.178.56.0/24 RemoteIPTrustedProxy 221.178.57.0/24 RemoteIPTrustedProxy 221.178.58.0/26 RemoteIPTrustedProxy 119.84.1.0/24 # 上海 RemoteIPTrustedProxy 180.163.188.0/24 RemoteIPTrustedProxy 101.227.206.0/24 RemoteIPTrustedProxy 101.227.207.0/24 RemoteIPTrustedProxy 180.163.113.0/24 RemoteIPTrustedProxy 180.163.189.0/24 RemoteIPTrustedProxy 180.163.154.0/24 RemoteIPTrustedProxy 180.163.153.0/24 # 河北 RemoteIPTrustedProxy 61.182.137.0/24 RemoteIPTrustedProxy 61.182.136.0/24 RemoteIPTrustedProxy 220.195.22.0/24 RemoteIPTrustedProxy 220.195.21.0/25 RemoteIPTrustedProxy 111.63.67.0/24 RemoteIPTrustedProxy 111.63.68.0/24 # 西安 RemoteIPTrustedProxy 117.34.13.0/24 RemoteIPTrustedProxy 117.34.14.0/24 RemoteIPTrustedProxy 117.34.28.0/24 RemoteIPTrustedProxy 117.34.60.0/24 RemoteIPTrustedProxy 117.34.61.0/24 RemoteIPTrustedProxy 117.34.62.0/24 # 济南 RemoteIPTrustedProxy 119.188.97.0/24 RemoteIPTrustedProxy 119.188.9.0/24 RemoteIPTrustedProxy 119.188.14.0/24 RemoteIPTrustedProxy 119.188.132.0/24 RemoteIPTrustedProxy 60.217.232.0/24 # 广州 RemoteIPTrustedProxy 183.232.51.0/24 RemoteIPTrustedProxy 183.232.53.0/24 RemoteIPTrustedProxy 157.255.25.0/24 RemoteIPTrustedProxy 157.255.26.0/24 RemoteIPTrustedProxy 157.255.24.0/24 # 江苏 RemoteIPTrustedProxy 112.25.89.0/24 RemoteIPTrustedProxy 112.25.90.0/24 RemoteIPTrustedProxy 112.25.91.0/24 # 湖北 RemoteIPTrustedProxy 122.190.1.0/24 RemoteIPTrustedProxy 122.190.2.0/24 RemoteIPTrustedProxy 122.190.3.0/24 RemoteIPTrustedProxy 111.174.63.0/24 RemoteIPTrustedProxy 111.174.61.0/24 # 青岛 RemoteIPTrustedProxy 119.167.246.0/24 RemoteIPTrustedProxy 150.138.149.0/24 RemoteIPTrustedProxy 150.138.150.0/24 RemoteIPTrustedProxy 150.138.151.0/24 # 湖南 RemoteIPTrustedProxy 59.51.81.128/25 RemoteIPTrustedProxy 220.170.184.0/24 RemoteIPTrustedProxy 220.170.185.0/24 RemoteIPTrustedProxy 220.170.186.0/24 # 苏州 RemoteIPTrustedProxy 61.155.149.0/24 RemoteIPTrustedProxy 61.156.149.0/24 RemoteIPTrustedProxy 61.155.165.0/24 RemoteIPTrustedProxy 58.211.2.0/24 RemoteIPTrustedProxy 58.211.137.0/24 # 佛山 RemoteIPTrustedProxy 183.60.235.0/24 RemoteIPTrustedProxy 116.31.126.0/24 RemoteIPTrustedProxy 116.31.127.0/24 # 东莞 RemoteIPTrustedProxy 183.61.236.0/24 RemoteIPTrustedProxy 14.17.71.0/24 RemoteIPTrustedProxy 119.147.134.0/24 RemoteIPTrustedProxy 183.61.177.0/24 RemoteIPTrustedProxy 183.61.190.0/24 # 合肥 RemoteIPTrustedProxy 112.29.157.0/24 RemoteIPTrustedProxy 112.29.158.0/24 RemoteIPTrustedProxy 112.29.159.0/24 # 郑州 RemoteIPTrustedProxy 42.236.93.0/24 RemoteIPTrustedProxy 42.236.94.0/24 RemoteIPTrustedProxy 42.236.7.128/26 RemoteIPTrustedProxy 42.236.7.65/27 # 沈阳 RemoteIPTrustedProxy 124.95.168.128/25 RemoteIPTrustedProxy 124.95.188.0/24 RemoteIPTrustedProxy 124.95.191.0/24 # 宁波 RemoteIPTrustedProxy 115.231.186.0/24 RemoteIPTrustedProxy 115.231.187.0/24 RemoteIPTrustedProxy 122.246.5.0/24 # 湖州 RemoteIPTrustedProxy 61.241.118.0/24 RemoteIPTrustedProxy 101.69.175.0/24 # 南宁 RemoteIPTrustedProxy 222.216.190.0/24 RemoteIPTrustedProxy 219.159.84.0/24 # 金华 RemoteIPTrustedProxy 117.147.214.0/24 RemoteIPTrustedProxy 117.147.215.0/24 # 福州 RemoteIPTrustedProxy 117.27.149.0/24 # 北京 RemoteIPTrustedProxy 111.132.134.0/24 </IfModule> |
然后重新启动 Apache
3、在樱花frp上配置
登录樱花的管理界面后,在用户信息
页面打开 高级用户模式 来显示这些配置。
回到隧道列表中修改对应的穿透信息,会发现多了一行设置。
点击添加如下 隧道自定义设置 后,frpc 就会在请求本地服务时应用 Proxy Protocol 协议。
Proxy Protocol 有两个版本:v1 和 v2,请先调查您所使用的本地服务支持哪个版本再进行配置。如果两个版本都支持的,我们推荐您使用 v2 以提高传输效率。
Proxy Protocol v1 并未为 UDP 设计,在 UDP 隧道中您总是应该使用 v2。
修改完成后重新启动樱花frp客户端。
自此,这个内网穿透环境下群晖获取用户真实ip的教程完毕,通过外网地址访问,可以完美获取真实IP地址。
浏览量: 93