Replies: 1 comment 7 replies
-
When Transmission does a port check, it simply calls a port checking service similar to canyouseeme.org using curl. All we do is specify the destination url, and other curl settings for an easy handle, then we leave everything to curl. If you want to know what those curl settings are, you can look at
That's weird. Although I can't see how it can be related atm, we do have some port forwarding code in serveral files named |
Beta Was this translation helpful? Give feedback.
-
Hi,
I'm wondering how port checking works internally, since I'm struggling with getting a proper set up working with VPN port forwarding (for background, using Proton VPN, whereby I have a VM running Debian connected to Proton via wireguard, with PMP port mapping enabled; transmission is running on another machine, as a container, using a macvlan network access whereby the Proton-connected VM is acting as its gateway; this setup works overall for other containers, but my other containers don't require port forwarding).
Here's the thing: I can successfully create a port forward with Proton. When I "connect" this onto transmission, using socat (I relay tcp and udp traffic coming in from the Proton port to the same port that Proton picked on the transmission IP), I can use sites like portchecker.co to confirm the port is open (which really means socat is getting the connection; using
-d
-d
on socat shows me that this connection is picked up properly). But if I then configure transmission to use that same port, it tells me after a few seconds that the port is closed. After this, checking using portchecker.co no longer works! That is, until I rerun natpmpc which seems to "refresh" the port forwarding. This sequence happens no matter how fast the sequence happens and is therefore not linked to the lifetime of the port forward. Checking the port from transmission somehow temporarily breaks the port forward on Proton side.I've asked Proton support for their input on this, but in order to understand better, I'd like to know exactly what transmission does when it checks if the port is open. I had understood earlier that it just calls canyouseemenow.org from the backend, but I'm not sure anymore. Can someone explain this to me? I've also tried to check the source code to find out but got lost in the process.
For reference I'm illustrating here the kind of setup I'm aiming for, but really my core question for now is: how does the port checking work? if I understand this better I might be able to investigate more efficiently.
Thanks in advance!
P.
Beta Was this translation helpful? Give feedback.
All reactions