개요

Velocity 소개
섹션 제목: “Velocity 소개”Velocity란?
섹션 제목: “Velocity란?”Velocity는 현재 가장 뛰어난 Minecraft 프록시 중 하나로, 경험 많은 PaperMC 팀이 개발했다. 진보된 포워딩 방식과 높은 보안성을 갖췄고 성능도 훌륭하다.
프록시 네트워크에 Velocity를 쓰면 금상첨화다.
모드 서버로 프록시 네트워크를 구성한다면 Velocity를 강력히 추천한다. Forge와 Fabric 서버를 위한 별도 대응이 되어 있기 때문이다.
물론 모드 서버는 기본적으로 Velocity를 지원하지 않으므로, Velocity 지원 모드를 설치해야 한다.
-
Fabric용 Velocity 지원 모드: CrossTitch
-
Fabric용 Velocity 지원 모드: FabricProxy-Lite
-
Forge용 Velocity 지원 모드: Proxy Compatible Forge
FAQ
섹션 제목: “FAQ”- Q: Velocity에서 BungeeCord나 Waterfall 플러그인을 쓸 수 있나?
A: 안 된다. BungeeCord 플러그인을 지원하려면 Velocity의 여러 기능을 포기해야 하기 때문이다.
다만 Velocity도 함께 지원하거나 Velocity 버전이 따로 있는 플러그인도 있다. 또 백엔드 서버에만 설치하면 되는 BungeeCord 플러그인이라면 이론상 Velocity 기반 프록시 네트워크에서도 쓸 수 있다.
- Q: Velocity는 어떤 Java 버전으로 실행해야 하나?
A: Java 17 이상, 예를 들어 Java 21을 추천한다.
- Q: 플레이어가 서버에 접속하지 못하는 이유는?**
A: 가능한 원인은 다음과 같다.
먼저 다음을 확인하자.
- 백엔드 서버를 켰는지, 콘솔이 멈춰 있지는 않은지
- 프록시를 켰는지
- 프록시와 백엔드 서버를 연결했는지. 즉 프록시에 백엔드 서버 IP와 포트를 설정했는지, 백엔드 서버에서 Velocity 기능을 켰는지
그리고 자주 보이는 프록시 오류는 다음과 같다.
Can't connect to server lobby: If you wish to use IP forwarding, please enable it in your Bungeecord config as well!Can't connect to server lobby: Your server did not send a forwarding request to the proxy. Is it set up correctly?이 오류는 프록시 설정이 잘못되어 생긴다. Velocity 설정 알아보기
또 BungeeCord 모드를 함께 켜 두어도 위 오류가 난다. Velocity를 쓴다면 BungeeCord 모드는 반드시 꺼야 한다.
Can't connect to server lobby: This server requires you to connect with Velocity.이 오류는 백엔드 서버에서 Velocity를 켰지만 Velocity 쪽에 그 백엔드 서버를 추가하지 않았을 때 난다. Velocity 설정을 확인하자.
- Q: Invalid payload REGISTER 오류가 난다
A: 서버에서 이런 로그가 보인다면
[server connection] player1 -> hub has connected[connected player] player1 (/localhost: 58943): kicked from server hub: Invalid payload REGISTER!주로 플러그인 서버 프록시 네트워크에서, 모드 클라이언트로 접속하는 플레이어가 있을 때 생길 수 있다.
Paper(또는 그 포크) 1.12.2 이상을 쓴다면 시작 스크립트에 -Dpaper.disableChannelLimit=true 플래그를 추가해 해결할 수 있다.
사실 이 문제를 겪는 사람은 별로 없다.
- Q: Froge 서버에 접속할 때 readTimeout이 난다
A: 한마디로 모드가 너무 많거나 커서 접속 시간이 길어진 것이다.
서버의 모드 수를 줄이거나, Velocity 설정 파일의 read-timeout 값을 늘리고 Forge 백엔드 서버 시작 인수에 -Dfml.readTimeout을 추가해 제한 시간을 늘리면 된다.
예를 들어 readTimeout을 120초로 하고 싶다면
다음과 같이 설정한다.
read-timeout = 120000 (단위: 밀리초)
-Dfml.readTimeout=120 (단위: 초)
서버를 재시작하면 readTimeout이 늘어나 정상적으로 접속할 수 있다.
- Q: 백엔드 서버마다 다른 포워딩 모드를 쓸 수 있나?
A: 안 된다. 적어도 지금은 velocity.toml에서 포워딩 모드 하나만 설정할 수 있다.
각 포워딩 모드에 대해서는 설치를 참고하자.
한 고수가 이 문제에 대한 PR을 올렸다.
병합되면 백엔드 서버마다 다른 포워딩 모드를 설정할 수 있게 된다.