Note: Not all applications support Proxy Protocol. If you send Proxy Protocol headers to an application that isn’t configured for it or doesn’t support it, the connection will fail entirely.
Creating the Resource
In Pangolin, go into Resources and create a TCP or UDP route like you normally would — pointing it to your resource which accepts Proxy Protocol. Say I’m usingtcp-8888
with Pangolin.
I configure it to hit my Proxy Protocol–enabled service such as Minecraft Paper or Velocity.
It’ll give you a port to put into the compose file and an entryPoint to add into the traefik_config.yml
.
Only do the second, not the first.
Add the EntryPoint
Add an entrypoint intraefik_config.yml
for the port you intend to use.
tcp-22000
for this, and in Traefik under Gerbil, I’m going to add the same mapping:
Find the Service Address
Run the following command:43-service
in this example:
Update Dynamic Configuration
Go intoconfig/traefik_dynamic.yml
and add:
TCP Example
UDP Example
Also do note.. If you change the dummy (8888) info at all for the destination or the port or the site.. you will need to repopulate the info all over again. Starting from the JQ line above.
Downstream Applications
For downstream applications, you’ll need to configure them to trust Proxy Protocol connections originating from the system where Newt connects to the service. For example: If the Newt is running on Host B at192.168.1.5
,
your service on Host A at 192.168.1.4
needs to trust 192.168.1.5
as a trusted Proxy Protocol source.
Once Proxy Protocol is in play, the connection between Traefik and the backend must speak Proxy Protocol — otherwise it will refuse to connect.