s36kafh
我用的是Geyser插件
Java玩家用frp域名进服可以直接获取IP
基岩版进服,如果是内网可以获取真IP
但用frp的域名就显示127.0.0.1,怎么解决啊?

Falln

首先,Geyser本质上也是一个代理端,它的工作就是将来自基岩版的流量翻译成Java版并转发给Java服务端。
要同时获取Java版玩家和基岩版玩家的真实IP地址,你至少需要使用BungeeCord,因为你的服务端将会需要同时监听两个端口,而Minecraft本身似乎是不能这么做的。

以下内容均在BungeeCord的config.yml中的listener项配置:
第一个端口给Java版玩家使用,可以是25565,你不需要对这个端口做太多工作,只需保证proxy_protocol为false即可。
第二个端口给基岩版玩家使用,如果你想让基岩版玩家使用19132端口,那么这个端口不能是19132,因为Geyser必须使用19132端口。将这个端口设为一个通常不太会使用的端口(30000以上,65500以下),并将proxy_protocol设为true。之后在BungeeCord安装Geyser插件,将插件指向的Java服务器端口设为你刚刚设置的那个不太会使用的端口。

设置完后,你的BC的config.yml文件看起来像这样:
  1. listeners:
  2. - proxy_protocol: false(保证端口1号的这个地方是false)
  3.   host: 0.0.0.0:25565(这里是端口1号)
  4. - proxy_protocol: true(保证端口2号的这个地方是true)
  5.   host: 0.0.0.0:40000(这里是端口2号)
复制代码


你的Geyser配置文件看起来像这样:
  1. bedrock:
  2.   port: 19132(这里设置的是玩家连接使用的端口)
  3.   enable-proxy-protocol: true(将这个地方设为true来获取真实IP,如果你未来不再使用frp,则设为false)
  4. remote:
  5.   port: 40000(这里设置的是BC的端口)
  6.   use-proxy-protocol: true(将这个地方设为true来获取真实IP)
复制代码

Dogc狗晨
链接 里输入你frp用的域名,就可以解析出真实数字ip
望采纳

s36kafh
Falln 发表于 2023-7-2 13:13
首先,Geyser本质上也是一个代理端,它的工作就是将来自基岩版的流量翻译成Java版并转发给Java服务端。
要 ...

但是我是用的是Paper服务端,怎么解决?

Falln
s36kafh 发表于 2023-7-2 17:28
但是我是用的是Paper服务端,怎么解决?

所以你需要套一层BungeeCord来实现同时获取Java版和基岩版的IP地址

s36kafh
Falln 发表于 2023-7-2 13:13
首先,Geyser本质上也是一个代理端,它的工作就是将来自基岩版的流量翻译成Java版并转发给Java服务端。
要 ...

frp中两个地址都已经开了proxy protocol=v2
JAVA可以解析出真正的地址(36.101.**.**),但是基岩版还是127.0.0.1

Falln
s36kafh 发表于 2023-7-2 17:32
frp中两个地址都已经开了proxy protocol=v2
JAVA可以解析出真正的地址(36.101.**.**),但是基岩版还是127 ...

我知道你的两个frp都开了proxy_protocol,但这只对第一层代理,Geyser本身也算一层代理,所以基岩版玩家要通过两层代理,你要让这两层代理都获取真实IP,所以你需要开两个端口,而套一层BungeeCord是最简单的方法。

s36kafh
Falln 发表于 2023-7-2 17:38
我知道你的两个frp都开了proxy_protocol,但这只对第一层代理,Geyser本身也算一层代理,所以基岩版玩家 ...

我重新安装了BungeeCord,但是我如何往配置文件添加这些选项?配置:
  1. server_connect_timeout: 5000
  2. enforce_secure_profile: false
  3. remote_ping_cache: -1
  4. forge_support: false
  5. player_limit: -1
  6. permissions:
  7.   default:
  8.   - bungeecord.command.server
  9.   - bungeecord.command.list
  10.   admin:
  11.   - bungeecord.command.alert
  12.   - bungeecord.command.end
  13.   - bungeecord.command.ip
  14.   - bungeecord.command.reload
  15.   - bungeecord.command.kick
  16. timeout: 30000
  17. log_commands: false
  18. network_compression_threshold: 256
  19. online_mode: true
  20. disabled_commands:
  21. - disabledcommandhere
  22. servers:
  23.   lobby:
  24.     motd: '&1Just another BungeeCord - Forced Host'
  25.     address: localhost:25565
  26.     restricted: false
  27. listeners:
  28. - query_port: 25577
  29.   motd: '&1Another Bungee server'
  30.   tab_list: GLOBAL_PING
  31.   query_enabled: false
  32.   proxy_protocol: true
  33.   forced_hosts:
  34.     pvp.md-5.net: pvp
  35.   ping_passthrough: false
  36.   priorities:
  37.   - lobby
  38.   bind_local_address: true
  39.   host: 0.0.0.0:25577
  40.   max_players: 1
  41.   tab_size: 60
  42.   force_default_server: false
  43. ip_forward: false
  44. remote_ping_timeout: 5000
  45. prevent_proxy_connections: false
  46. groups:
  47.   md_5:
  48.   - admin
  49. connection_throttle: 4000
  50. stats: e32a0979-67b0-47b9-9222-1c801c0e0fb3
  51. connection_throttle_limit: 3
  52. log_pings: true
复制代码



Falln
s36kafh 发表于 2023-7-2 18:37
我重新安装了BungeeCord,但是我如何往配置文件添加这些选项?配置:

看到配置文件里有一个叫listeners的项了吗?把里面的所有东西复制一遍(就是- query_port: 25577到force_default_server: false复制一遍),然后分别把两个25577按照我说的方法设置一遍,Paper端的端口改成25565之外的值,把下面这块的25565改成Paper端的端口就行了
  1. servers:
  2.   lobby:
  3.     motd: '&1Just another BungeeCord - Forced Host'
  4.     address: localhost:25565
  5.     restricted: false
复制代码

另外,Paper端还需要打开spigot.yml文件,设置bungeecord项为true

s36kafh
Falln 发表于 2023-7-2 18:43
看到配置文件里有一个叫listeners的项了吗?把里面的所有东西复制一遍(就是- query_port: 25577到force_ ...

那我应该可以把BungeeCord的端口改成别的,而paper可以保留25565吗,如果可以,是这样吗?
  1. servers:
  2.   lobby:
  3.     motd: '&1Just another BungeeCord - Forced Host'
  4.     address: localhost:25560
  5.     restricted: false
  6. listeners:
  7. - query_port: 25560
  8.   motd: '&1A Bungee server'
  9.   tab_list: GLOBAL_PING
  10.   query_enabled: false
  11.   proxy_protocol: true
  12.   forced_hosts:
  13.     pvp.md-5.net: pvp
  14.   ping_passthrough: false
  15.   priorities:
  16.   - lobby
  17.   bind_local_address: true
  18.   host: 0.0.0.0:40000
  19.   max_players: 1
  20.   tab_size: 60
  21.   force_default_server: false
复制代码


Falln
s36kafh 发表于 2023-7-2 18:58
那我应该可以把BungeeCord的端口改成别的,而paper可以保留25565吗,如果可以,是这样吗?
...

是这样的。

s36kafh
Falln 发表于 2023-7-2 18:58
是这样的。

BungeeCor还d有个问题,我用geyser(1.16.5最后一个版本)的离线登录,但需要搭配floodgate 。但我找不到关于BungeeCord的旧版floodgate,dalao能否找一下?

Falln
s36kafh 发表于 2023-7-2 20:40
BungeeCor还d有个问题,我用geyser(1.16.5最后一个版本)的离线登录,但需要搭配floodgate 。但我找不到关 ...

https://ci.opencollab.dev/job/GeyserMC/job/Floodgate/job/master/
在左侧的构建历史一个个试过去,直到找到能正常运行的即可,也就88个文件也不需要每个都试一遍

s36kafh
Falln 发表于 2023-7-2 13:13
首先,Geyser本质上也是一个代理端,它的工作就是将来自基岩版的流量翻译成Java版并转发给Java服务端。
要 ...

我有个疑问,如果Geyser的日志中输出的来源IP是127,那BungeeCord转发的是127还是真实ip ?

Falln
s36kafh 发表于 2023-7-3 23:16
我有个疑问,如果Geyser的日志中输出的来源IP是127,那BungeeCord转发的是127还是真实ip ? ...

Geyser获取到的是127,那bungeecord接收到的自然也是127,转发的也是127

s36kafh
Falln 发表于 2023-7-4 08:27
Geyser获取到的是127,那bungeecord接收到的自然也是127,转发的也是127

BungeeCore
无法连接至世界

s36kafh
Falln 发表于 2023-7-2 17:29
所以你需要套一层BungeeCord来实现同时获取Java版和基岩版的IP地址

还是127怎么办

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