PaperMC / PaperMC/Velocity

prevent-client-proxy-connections blocks all connections from private IPs

Open
#1,414 3 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

type: bug
Dominant language
Java
Stars
2.3k
Forks
959
Avg merge
5d 10h
Merged PRs (30d)
2

Description

Expected Behavior

The point of prevent-client-proxy-connections is to prevent connections where the client's IP address from the proxy's perspective is different from the IP address used to authenticate with Mojang's servers. This makes sense for most use cases, but not for connections across a private network because Mojang will never see the private IP address, and will always prevent the connection.

I think that an exemption should be made for connections from private networks so that this feature can still be used for players connecting from the public internet while not blocking players connecting over a private network (such as a VPN).

Actual Behavior

Player fails to authenticate with the usual "You are not logged into your Minecraft account..." message.

Steps to Reproduce

To reproduce this, the client must be attempting to connect to the Velocity server with a private IP (e.g. 10.0.0.1), but the client and proxy must have different public IPs when connecting to Mojang's servers. This is a common configuration when using a VPN.

Plugin List

None

Velocity Version

Velocity 3.3.0-SNAPSHOT (git-09f687e5-b413)

Additional Information

I've been running a patch with the change I mentioned above and can submit a PR if this is acceptable.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing the prevent-client-proxy-connections setting through the client authentication flow. Reproduce a connection from a private IP where the proxy and Mojang use different public IPs, then verify that private-network connections are exempted while public-internet connections remain protected.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
authentication, backend, networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.