ketikai
authlib-injector-1.1.40认证服务器:https://littleskin.cn/api/yggdrasil
同台机子开的MC服务端跟客户端
客户端不能用127.0.0.1:25565连接服务器
-----
客户端提示:无法验证用户名
服务端提示:
[13:58:55 ERROR]: 玩家名 {0} 尝试以无效会话进入
[13:58:55 INFO]: /127.0.0.1:59034 失去连接: Failed to verify username!
-----
和认证服务器连接正常,因为通过公网访问的其他设备的客户端可以正常进入服务器。
本地客户端是否有解决方案?

Jesenv5
先尝试退出游戏并在启动器中删除账号,然后重新登录。
如果重新登录无法解决问题,请检查你在 LittleSkin 绑定的邮箱中是否存在大写英文字母,如果有,请将其更改为全小写字母,然后再次在启动器中重新登录。

小珂不要太无聊
这种情况一般是正版验证失败
你的客户端是正版账号登录吗,不是的话换成正版或者在server.properties里面把online-mode改成false
这样应该可以解决

ketikai
Jesenv5 发表于 2022-2-12 15:19
先尝试退出游戏并在启动器中删除账号,然后重新登录。
如果重新登录无法解决问题,请检查你在 LittleSkin  ...

没有大写字母 但是有个英文点 启动器用的pcl2

ketikai
小珂不要太无聊 发表于 2022-2-12 15:21
这种情况一般是正版验证失败
你的客户端是正版账号登录吗,不是的话换成正版或者在server.properties里面把 ...

第三方外置登录,伪正版

夕离丶青春
本地客户端已经完成外置登录验证了嘛

ketikai
夕离丶青春 发表于 2022-2-12 17:49
本地客户端已经完成外置登录验证了嘛

完成了,我还使用了authlib-injector提供的演示站点作为认证服务器测试,可以正常连接,但是使用littleskin作为认证服务器时就无法连接了

夕离丶青春
ketikai 发表于 2022-2-12 19:10
完成了,我还使用了authlib-injector提供的演示站点作为认证服务器测试,可以正常连接,但是使用littlesk ...

请使用HMCL启动器进行外置登录尝试看看,我测试了,HMCL可以本地127.0.0.1:59034登录。
ps:正版登录开了嘛?开了当我没说

ketikai
夕离丶青春 发表于 2022-2-12 20:04
请使用HMCL启动器进行外置登录尝试看看,我测试了,HMCL可以本地127.0.0.1:59034登录。
ps:正版登录开了 ...

正版登录必须要开的,外置登录有说明。你那边能登录,是在服务端也开启了外置登录验证的情况下吗?

SSSSSteven
很头疼的问题…至今我们都没弄明白这个问题是怎么出现的
方便用 Postman 手动模拟客户端进入服务器的过程,看看 LittleSkin 的响应吗?
https://github.com/yushijinhun/a ... 8C%83#yggdrasil-api

ketikai
SSSSSteven 发表于 2022-2-13 17:05
很头疼的问题…至今我们都没弄明白这个问题是怎么出现的
方便用 Postman 手动模拟客户端进入服务器的过程, ...

方便是方便,问题是我不会这玩意啊

ketikai
SSSSSteven 发表于 2022-2-13 17:05
很头疼的问题…至今我们都没弄明白这个问题是怎么出现的
方便用 Postman 手动模拟客户端进入服务器的过程, ...

已经解决。
在尝试模拟进入服务器过程时,我看到了个关于ip的参数(服务端获取的客户端ip),联想到与服务器同局域网下的客户端均无法正常登入,于是就看了下服务端验证时需要获取客户端ip的前提,结果发现这是个可选的参数。
这个可选参数就会被启用的前提:
  1. 当服务端根目录下的server.properties文件中将以下选项开启时
  2. prevent-proxy-connections = true
  3. 这个选项默认是关闭的,我不知道啥时候打开了。
复制代码
  1. 以下是碎碎念,当我放屁:
  2. 看了下官方文档,发现这个选项是阻止玩家使用代理登录服务器,很好奇,为什么同局域网也会被判定成使用了代理?
  3. 且,我在使用authlib-injector提供的演示站点时,是可以通过127.0.0.1正常连接的,我确信当时也开着阻止玩家使用代理的选项。
  4. 我就说为啥找不到有别人出现和我一样的问题,想来这个选项没人会去动.
复制代码




SSSSSteven
本帖最后由 SSSSSteven 于 2022-2-14 15:00 编辑
ketikai 发表于 2022-2-13 23:53
已经解决。
在尝试模拟进入服务器过程时,我看到了个关于ip的参数(服务端获取的客户端ip),联想到与服务 ...

这个用大白话解释稍微有点难…不过对于看过 Yggdrasil 服务端技术规范(就是我上一个回复中贴的那份文档)的人来说,理解下面这段解释应该不是问题

这个功能的原理是:

为什么同局域网也会被判定成使用了代理?我觉得应该是客户端加入【MC 服务器】时,【MC 服务器】获取到的是局域网 IP(比如 192.168.*.*,127.0.0.1 啥的),而【Yggdrasil 验证服务器】在公网,获取到的是你的公网出口的 IP,两边 IP 不一致,校验不通过,【Yggdrasil 验证服务器】就返回 204 了。

这个问题迷惑的点就在于,明明是 IP 校验不通过,客户端提示的却是用户名校验不通过…不过也确实,验证服务器也只返回了个 204,啥信息都没给,只能说 Mojang 当初在做这套用户验证系统的时候没设计好…

我也问了 yushi,authlib-injector 给的那个测试用验证服务器也有做这个校验,但是为什么能通过我就不清楚了…感觉是不是他的 Web 服务器配置出了问题,导致后端获取到的客户端的 IP 只有 127.0.0.1

ketikai
SSSSSteven 发表于 2022-2-14 14:41
这个解释用大白话解释稍微有点难…不过对于看过 Yggdrasil 验证服务器技术规范(就是我上一个回复中贴的那 ...

原来如此,感谢说明。
在我之前测试时,使用过authlib-injector提供的演示站点做认证服务器
https://github.com/yushijinhun/y ... A%E7%AB%99%E7%82%B9
当时测试的结果又有些不同,127.0.0.1:25565可以正常进入游戏,但我使用n2n客户端提供的虚拟局域网IP10.10.10.10:25565时一样会报无法验证用户名
所以,我从那时候开始就把我自己服务端配置出错的可能性给排除了(然后就误入歧途了),一直认为是LittleSkin认证服务器上有什么配置和演示站点不同

第一页 上一页 下一页 最后一页