先描述一下情况:
A服务器运行着BC+子服1
B服务器运行着子服2
当然我想防止他人私自搭建BC直连我的子服.
所以我在子服1的 server.properties 设置了 server-ip= 127.0.0.1
理论上子服2的 server-ip= 应该是设置 A服务器的IP 是吗?
但是当我设置成A服务器的IP后就无法启动服务器了。
或者说随便换个IP都不行....
端口更换过别的试过了.
附log:
复制代码
A服务器运行着BC+子服1
B服务器运行着子服2
当然我想防止他人私自搭建BC直连我的子服.
所以我在子服1的 server.properties 设置了 server-ip= 127.0.0.1
理论上子服2的 server-ip= 应该是设置 A服务器的IP 是吗?
但是当我设置成A服务器的IP后就无法启动服务器了。
或者说随便换个IP都不行....
端口更换过别的试过了.
附log:
- [23:24:23] [main/INFO]: Environment: authHost='https://authserver.mojang.com', accountsHost='https://api.mojang.com', sessionHost='https://sessionserver.mojang.com', name='PROD'
- [23:24:25] [main/INFO]: Reloading ResourceManager: Default, bukkit
- [23:24:25] [Server-Worker-2/INFO]: Loaded 7 recipes
- [23:24:29] [Server thread/INFO]: Starting minecraft server version 1.16.1
- [23:24:29] [Server thread/INFO]: Loading properties
- [23:24:29] [Server thread/INFO]: This server is running Paper version git-Paper-29 (MC: 1.16.1) (Implementing API version 1.16.1-R0.1-SNAPSHOT)
- [23:24:30] [Server thread/INFO]: Debug logging is disabled
- [23:24:30] [Server thread/INFO]: Using 4 threads for Netty based IO
- [23:24:30] [Server thread/INFO]: Server Ping Player Sample Count: 12
- [23:24:30] [Server thread/INFO]: Default game type: SURVIVAL
- [23:24:30] [Server thread/INFO]: Generating keypair
- [23:24:30] [Server thread/INFO]: Starting Minecraft server on 180.101.45.230:41244
- [23:24:30] [Server thread/INFO]: Using default channel type
- [23:24:30] [Server thread/WARN]: **** FAILED TO BIND TO PORT!
- [23:24:30] [Server thread/WARN]: The exception was: java.net.BindException: Cannot assign requested address: bind
- [23:24:30] [Server thread/WARN]: Perhaps a server is already running on that port?
- [23:24:30] [Server thread/INFO]: Stopping server (Ignore any thread death message you see! - DO NOT REPORT THREAD DEATH TO PAPER)
- [23:24:30] [Server thread/INFO]: Saving players
- [23:24:30] [Server thread/INFO]: Saving worlds
- [23:24:30] [Server thread/INFO]: Flushing Chunk IO
- [23:24:30] [Server thread/INFO]: Closing Thread Pool
- [23:24:30] [Server thread/INFO]: Closing Server
子服1和子服2的server.properties中 server-ip都设为127.0.0.1
ip_forward: true 端口不能重复 spigot.yml 里面 bungeecord: true 127.0.0.1 是本地的意思 就是只能通过本地连接
屑🥕 发表于 2020-7-14 23:33
子服1和子服2的server.properties中 server-ip都设为127.0.0.1
不对吧?
如果这么设置的话,那么子服2只允许本地连接,可是子服2并不和BC在同一个服务器上
我试过了。如果这么设置那么在子服1无法跳转到子服2上
15519143469 发表于 2020-7-14 23:36
ip_forward: true 端口不能重复 spigot.yml 里面 bungeecord: true 127.0.0.1 是本地的意思 就是只 ...
这些当然已经设置了。
2个子服在不同的服务器怎么可能都用127.0.0.1
Catnies 发表于 2020-7-14 23:40
不对吧?
如果这么设置的话,那么子服2只允许本地连接,可是子服2并不和BC在同一个服务器上
我试过了。如 ...
那就子服2的server-ip填子服2服务器的ip
Catnies 发表于 2020-7-14 23:40
不对吧?
如果这么设置的话,那么子服2只允许本地连接,可是子服2并不和BC在同一个服务器上
我试过了。如 ...
对的 你需要外网映射到你本地IP就行可以的 端口必须不同 都填127.0.0.1
15519143469 发表于 2020-7-14 23:44
对的 你需要外网映射到你本地IP就行可以的 端口必须不同 都填127.0.0.1
端口肯定是不同的,这个映射是怎么操作?
2机子都有外网ip的
15519143469 发表于 2020-7-14 23:44
对的 你需要外网映射到你本地IP就行可以的 端口必须不同 都填127.0.0.1
我自己也是BC服 本地连接没问题 BC核心 127.0.0.1:25565 大厅服 127.0.0.1: 25566 子服1 127.0.0.1: 25567 子服2 127.0.0.1: 25568 子服3 127.0.0.1: 25569 你IP映射到连接到25565 就可以了 这样就能防止其他人搭建BC连接你的子服
屑🥕 发表于 2020-7-14 23:42
那就子服2的server-ip填子服2服务器的ip
啊这..= =
- [23:45:50] [main/INFO]: Environment: authHost='https://authserver.mojang.com', accountsHost='https://api.mojang.com', sessionHost='https://sessionserver.mojang.com', name='PROD'
- [23:45:51] [main/INFO]: Reloading ResourceManager: Default, bukkit
- [23:45:53] [Server-Worker-2/INFO]: Loaded 7 recipes
- [23:45:55] [Server thread/INFO]: Starting minecraft server version 1.16.1
- [23:45:55] [Server thread/INFO]: Loading properties
- [23:45:55] [Server thread/INFO]: This server is running Paper version git-Paper-29 (MC: 1.16.1) (Implementing API version 1.16.1-R0.1-SNAPSHOT)
- [23:45:55] [Server thread/INFO]: Debug logging is disabled
- [23:45:55] [Server thread/INFO]: Using 4 threads for Netty based IO
- [23:45:55] [Server thread/INFO]: Server Ping Player Sample Count: 12
- [23:45:55] [Server thread/INFO]: Default game type: SURVIVAL
- [23:45:55] [Server thread/INFO]: Generating keypair
- [23:45:55] [Server thread/INFO]: Starting Minecraft server on 手动屏蔽本机IP:19132
- [23:45:56] [Server thread/INFO]: Using default channel type
- [23:45:56] [Server thread/WARN]: **** FAILED TO BIND TO PORT!
- [23:45:56] [Server thread/WARN]: The exception was: java.net.BindException: Cannot assign requested address: bind
- [23:45:56] [Server thread/WARN]: Perhaps a server is already running on that port?
- [23:45:56] [Server thread/INFO]: Stopping server (Ignore any thread death message you see! - DO NOT REPORT THREAD DEATH TO PAPER)
- [23:45:56] [Server thread/INFO]: Saving players
- [23:45:57] [Server thread/INFO]: Saving worlds
- [23:45:57] [Server thread/INFO]: Flushing Chunk IO
- [23:45:57] [Server thread/INFO]: Closing Thread Pool
- [23:45:57] [Server thread/INFO]: Closing Server
15519143469 发表于 2020-7-14 23:48
我自己也是BC服 本地连接没问题 BC核心 127.0.0.1:25565 大厅服 127.0.0.1: 25566 子服1 127.0.0.1: 2 ...
如果你需要跨服 在BC的 config里面设置
通过插件或者bc自带跨服命令即可完成跨服
servers:
lobby:
motd: ' '
address: localhost:25566
restricted: false
x1:
motd: ''
address: localhost:25567
restricted: false
x2:
motd: ''
address: localhost:25568
restricted: false
x3:
motd: ''
address: localhost:25569
restricted: false
x4:
motd: ''
address: localhost:25570
restricted: false
15519143469 发表于 2020-7-14 23:48
我自己也是BC服 本地连接没问题 BC核心 127.0.0.1:25565 大厅服 127.0.0.1: 25566 子服1 127.0.0.1: 2 ...
这个IP映射,怎么操作?
Catnies 发表于 2020-7-14 23:51
这个IP映射,怎么操作?
百度 贴内也有 开服都得会的东西
15519143469 发表于 2020-7-14 23:53
百度 贴内也有 开服都得会的东西
你是租的服务器就找服务商
15519143469 发表于 2020-7-14 23:53
你是租的服务器就找服务商
你租的服务器一般都是给你映射好了 比如他的端口是 2333 你吧25565换成2333即可
Catnies 发表于 2020-7-14 23:48
啊这..= =
The exception was: java.net.BindException: Cannot assign requested address: bind
端口没被占用?
截图下你的server.properties看看怎么写的
15519143469 发表于 2020-7-14 23:55
你租的服务器一般都是给你映射好了 比如他的端口是 2333 你吧25565换成2333即可 ...
不是很明白.
两个服务器都有公网ip要咋映射?..
屑🥕 发表于 2020-7-15 00:03
The exception was: java.net.BindException: Cannot assign requested address: bind
端口没被占用?
并没有 我甚至还尝试了更换别的端口...
- #Minecraft server properties
- #Wed Jul 15 00:07:54 CST 2020
- spawn-protection=0
- max-tick-time=60000
- query.port=25565
- generator-settings=
- sync-chunk-writes=true
- force-gamemode=false
- allow-nether=true
- enforce-whitelist=false
- gamemode=survival
- broadcast-console-to-ops=true
- enable-query=false
- player-idle-timeout=0
- difficulty=peaceful
- spawn-monsters=true
- broadcast-rcon-to-ops=true
- op-permission-level=4
- pvp=true
- entity-broadcast-range-percentage=100
- snooper-enabled=true
- level-type=default
- hardcore=false
- enable-status=true
- enable-command-block=false
- max-players=15
- network-compression-threshold=256
- resource-pack-sha1=
- max-world-size=29999984
- function-permission-level=2
- rcon.port=25575
- server-port=19132
- debug=false
- server-ip=114.67.105.136
- spawn-npcs=true
- allow-flight=false
- level-name=World
- view-distance=5
- resource-pack=
- spawn-animals=true
- white-list=false
- rcon.password=
- generate-structures=true
- online-mode=false
- max-build-height=256
- level-seed=
- prevent-proxy-connections=false
- use-native-transport=true
- enable-jmx-monitoring=false
- motd=A Minecraft Server
- enable-rcon=false
Catnies 发表于 2020-7-15 00:06
不是很明白.
两个服务器都有公网ip要咋映射?..
公网IP总有端口吧 使用一个不就行了
15519143469 发表于 2020-7-15 00:12
公网IP总有端口吧 使用一个不就行了
映射这个东西我帮不了你 你是家用的百度查用路由器映射 是租的就找服务商
本帖最后由 蕾米洛伊 于 2020-7-15 00:29 编辑
> 理论上子服2的 server-ip= 应该是设置 A服务器的IP 是吗?
如果两个服务器有不同的公网IP, 那么这一步就是错的, 因为B服务器没有与A服务器公网IP有关的网卡, 自然也就无法把A服务器的IP绑定到B服务器运行的socket连接上, 于是就出现了
The exception was: java.net.BindException: Cannot assign requested address: bind
这个错误不是因为端口被占用,而是因为网卡找不到可用的端口号和客户端连接,端口号用光了。因为它根本找不到这个IP去绑定,更找不到可用的端口 :(
所以如果想让A和B内的不同服务器建立连接,先要把子服A server-ip= 留空,要想让服务器B能跑起来,把服务器B的 server-ip= 也留空。
为啥呢,如果你子服1绑定的IP是127.0.0.1,这就意味着除了服务器A本身,外网的其他人无法与其建立连接。可以理解成大门只向自己家敞开,别人(服务器B)进连门都找不到。
那么如何做到 "我想防止他人私自搭建BC直连我的子服." 同时还能让服务器B与A建立连接呢?
1. 首先必须让服务器B有门可走,到底让谁走我们等下再说,先把子服1 server-ip= 留空。
现在B与A终于可以建立连接了。
2. 下一步实现 "我想防止他人私自搭建BC直连我的子服.",你需要用到防火墙,让子服1的端口只接受服务器B的IP的连接。这个方法可以在百度上搜到,win和linux都可以做到
另外,如果是想要子服1和2都可以跨服传送,你要到主bungeecord服务器里配置
Catnies 发表于 2020-7-15 00:11
并没有 我甚至还尝试了更换别的端口...
> 理论上子服2的 server-ip= 应该是设置 A服务器的IP 是吗?
如果两个服务器有不同的公网IP, 那么这一步就是错的, 因为B服务器没有与A服务器公网IP有关的网卡, 自然也就无法把A服务器的IP绑定到B服务器运行的socket连接上, 于是就出现了
The exception was: java.net.BindException: Cannot assign requested address: bind
这个错误不是因为端口被占用,而是因为网卡找不到可用的端口号和客户端连接,端口号用光了。因为它根本找不到这个IP去绑定,更找不到可用的端口 :(
所以如果想让A和B内的不同服务器建立连接,先要把子服A server-ip= 留空,要想让服务器B能跑起来,把服务器B的 server-ip= 也留空。
为啥呢,如果你子服1绑定的IP是127.0.0.1,这就意味着除了服务器A本身,外网的其他人无法与其建立连接。可以理解成大门只向自己家敞开,别人(服务器B)进连门都找不到。
那么如何做到 "我想防止他人私自搭建BC直连我的子服." 同时还能让服务器B与A建立连接呢?
1. 首先必须让服务器B有门可走,到底让谁走我们等下再说,先把子服1 server-ip= 留空。
现在B与A终于可以建立连接了。
2. 下一步实现 "我想防止他人私自搭建BC直连我的子服.",你需要用到防火墙,让子服1的端口只接受服务器B的IP的连接。这个方法可以在百度上搜到,win和linux都可以做到
另外,如果是想要子服1和2都可以跨服传送,你要到主bungeecord服务器里配置
本帖最后由 Catnies 于 2020-7-15 01:52 编辑
琢磨了一会 试了一下 确实可行 听你这么一说我大概就搞明白了。
另外多问一句,
如果只设置子服1只接受本地BC和子服2的连接的话,那子服2需不需要设置只接受BC和子服1的连接?
能否直接通过设置子服2为默认服务器进服?

蕾米洛伊 发表于 2020-7-15 00:21
> 理论上子服2的 server-ip= 应该是设置 A服务器的IP 是吗?
如果两个服务器有不同的公网IP, 那么这一步 ...
琢磨了一会 试了一下 确实可行 听你这么一说我大概就搞明白了。
另外多问一句,
如果只设置子服1只接受本地BC和子服2的连接的话,那子服2需不需要设置只接受BC和子服1的连接?
能否直接通过设置子服2为默认服务器进服?
Catnies 发表于 2020-7-15 01:50
琢磨了一会 试了一下 确实可行 听你这么一说我大概就搞明白了。
另外多问一句,
如果只设置子服1只接受本 ...
> 如果只设置子服1只接受本地BC和子服2的连接的话,那子服2需不需要设置只接受BC和子服1的连接?
可以这样安全性更高23333 但是不必要
> 能否直接通过设置子服2为默认服务器进服?
可以,在 bc 端配置好服务器就👌
本帖最后由 Catnies 于 2020-7-15 02:04 编辑
第二个问题没有问清楚.
我的意思是私自搭建的BC能否直接config里剔除掉子服1从而实现不访问子服1的情况直接进子服2,这样不就能正常连接了吗?
那么理论上的话子服2设置只允许BC和子服1访问可以解决这个问题吗?
蕾米洛伊 发表于 2020-7-15 01:55
> 如果只设置子服1只接受本地BC和子服2的连接的话,那子服2需不需要设置只接受BC和子服1的连接?
可以这 ...
第二个问题没有问清楚.
我的意思是私自搭建的BC能否直接config里剔除掉子服1从而实现不访问子服1的情况直接进子服2,这样不就能正常连接了吗?
那么理论上的话子服2设置只允许BC和子服1访问可以解决这个问题吗?
Catnies 发表于 2020-7-15 02:02
第二个问题没有问清楚.
我的意思是私自搭建的BC能否直接config里剔除掉子服1从而实现不访问子服1的情况直 ...
还是不太明白你的问题。。
bungeecord 可以设置默认进入的服务器,只需要更改默认进入的服务器即可,不需要删除配置
如果子服1无法访问,只需要把bc里面默认服务器改成子服2就可以了呀
设置子服之间只可以互相访问只是为了防止「有外网的其他魑魅魍魉」进入,但是对于更改连接方式这样的需求是做不到的。
本帖最后由 Catnies 于 2020-7-15 02:15 编辑
不是这个意思.
比如说:我现在服务器的BC上配置了2个子服,子服1和子服2. 默认登录服是子服1
如果我直接把这个BC照搬到我自己的电脑上运行,肯定会出现无法链接子服1的情况,因为设置了只有服务器的BC和子服2能访问子服1
那么我干脆把我自己电脑上的BC改成只有一个子服,就只有子服2,设置BC默认的服务器是子服2,那么不就可以直接链接进入子服2了么?
刚刚试了成功了。- -.
蕾米洛伊 发表于 2020-7-15 02:09
还是不太明白你的问题。。
bungeecord 可以设置默认进入的服务器,只需要更改默认进入的服务器即可,不需 ...
不是这个意思.
比如说:我现在服务器的BC上配置了2个子服,子服1和子服2. 默认登录服是子服1
如果我直接把这个BC照搬到我自己的电脑上运行,肯定会出现无法链接子服1的情况,因为设置了只有服务器的BC和子服2能访问子服1
那么我干脆把我自己电脑上的BC改成只有一个子服,就只有子服2,设置BC默认的服务器是子服2,那么不就可以直接链接进入子服2了么?
刚刚试了成功了。- -.
Catnies 发表于 2020-7-15 02:13
不是这个意思.
比如说:我现在服务器的BC上配置了2个子服,子服1和子服2. 默认登录服是子服1
如果我直接 ...
> 那么理论上的话子服2设置只允许BC和子服1访问可以解决这个问题吗?
对,,
蕾米洛伊 发表于 2020-7-15 02:30
> 那么理论上的话子服2设置只允许BC和子服1访问可以解决这个问题吗?
对,, ...