成长值: 336 签到天数: 4737 天 [LV.Master]伴坛终老
|
发表于 2023/4/2 19:52
|
显示全部楼层
|阅读模式
|Google Chrome 111.0.0.0 |Windows 10
为什么说网上的https tracker服务器都是假的,因为获取不到真实ip,只能拿到127.0.0.1 opentracker传递CDN源地址
如图所示
原因,因为使用了反代,在前端部署了https,后端程序不支持ip获取引起了这个原因,只要是https,或者使用了cloudflare cf cdn的tracker都会出现这个现象
解决办法
联系tracker管理员修改服务器后端程序,例如使用本站提供的opentracker
手动解决办法,这个官方太假了,坑了我好多年,终于找到解决办法了,原因是官方库里面没有给出示例,配置文件里面根本没写要加个access.proxy 127.0.0.1
https://erdgeist.org/gitweb/opentracker/tree/opentracker.conf.sample
源代码
opentracker.c文件,才找到要使用配置文件启动,需要配置文件赋予值access.proxy 127.0.0.1
- #ifdef WANT_IP_FROM_PROXY
- } else if(!byte_diff(p, 12, "access.proxy" ) && isspace(p[12])) {
- if( !scan_ip6( p+13, tmpip )) goto parse_error;
- accesslist_blessip( tmpip, OT_PERMISSION_MAY_PROXY );
- #endif
复制代码
需要修改的
Makefile文件
设置 FEATURES+=-DWANT_IP_FROM_PROXY 启用
兼容cf
ot_http.c文件,使用CDN的话,X-Forwarded-For改成CF-Connecting-IP或者X-Real-Ip,如果有反代的话可以不用改,在反代上配置请求控制即可
- #ifdef WANT_IP_FROM_PROXY
- if( accesslist_isblessed( cookie->ip, OT_PERMISSION_MAY_PROXY ) ) {
- ot_ip6 proxied_ip;
- char *fwd = http_header( ws->request, ws->header_size, "x-forwarded-for" );
- if( fwd && scan_ip6( fwd, proxied_ip ) )
- OT_SETIP( &ws->peer, proxied_ip );
- else
- OT_SETIP( &ws->peer, cookie->ip );
- } else
- #endif
复制代码
之后一定要配置文件启动,并且需要套反代才能兼容cdn,因为配置文件只能指向到127.0.0.1,例如监听81端口,反代监听8080
- ./opentracker -f opentracker.conf.sample -p 81 &
复制代码
目前还没找到办法直接对接cdn,必须要经过反代,代码粗略看了一下没看懂
帖子补充
2024年4月11日
前些天发布的最新版本代码,我让作者改了,支持了直接CDN
|
评分
-
查看全部评分
|