You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
With more and more people behind NATs due to IPv4 exhaustion and VPNs due to scary letters being connectable is not a given anymore. BEP-55 Holepunch extension is one attempt to help connectivity.
I've just added support for ut_holepunch to anacrolix/torrent. I'm interested to see how you implement it here. I haven't done it the way libtorrent has it and wonder if I should do something similar.
Does this mean that with the router I have, which doesn't have a port forwarding interface and is definitely NAT, that I just can't use this client at all? I'm unsure if it uses UPNP or not, I know μTorrent definitely works.
Ran it overnight on public torrent swarms (Linux ISOs) across two network setups: CGNAT/double-NAT with native IPv6, and a regular dual-stack home network with open inbound. Got initiator, responder, and relay working against Deluge/libtorrent and qBittorrent. Mac only so far.
Any feedback on the code is welcome. Would also love to hear from anyone who tests it on Linux or Windows.
Reacted by Ivan Kara, edc1512, Avamander, SweetPPro and René Hickersberger
Have you ran any benchmarks with the PR? How big is the improvement?
Hello,
Not really. Benchmarks are difficult because they depend heavily on the swarm, and even the same torrent can produce different results over time as peer availability changes.
I have been doing manual testing from a CGNAT IPv4 environment and was able to connect to additional peers for both downloading and uploading.
I also tested from a dual-stack environment with an open incoming port and was able to act as a relay and perform hole punching with additional firewalled peers.
Activity
anacrolix commentedon May 3, 2023
I've just added support for ut_holepunch to anacrolix/torrent. I'm interested to see how you implement it here. I haven't done it the way libtorrent has it and wonder if I should do something similar.
jawbroken commentedon Jul 10, 2023
interesting data from above says that this was supported on 80% of peers back in January. it would be a very valuable addition
ultrasound1372 commentedon Sep 6, 2023
Does this mean that with the router I have, which doesn't have a port forwarding interface and is definitely NAT, that I just can't use this client at all? I'm unsure if it uses UPNP or not, I know μTorrent definitely works.
anacrolix commentedon Sep 6, 2023
You can still use it behind a NAT, it just won't be as effective. You might not notice the difference.
haobohuiying commentedon Sep 24, 2025
想讨论一下bep 55 通信流程疑问:
在peer protocol 或者DHT 需要peers 通信,怎么知道是不是NAT 转化
如何知道peer端点的,relay 中继节点。这部分bep 55 没有说明
个人想法,是在peer 地址中要存储 其relay 节点的信息。
translate:
I want to discuss questions about the BEP 55 communication process:
In peer protocol or DHT where peers need to communicate, how do we know if NAT translation is involved?
How do we know the peer's relaying node? This part is not explained in BEP 55.
My personal idea is that the peer address should store the information of its relay node.
sinnet3000 commentedon Jun 7, 2026
I opened a PR implementing BEP 55: #8884
Ran it overnight on public torrent swarms (Linux ISOs) across two network setups: CGNAT/double-NAT with native IPv6, and a regular dual-stack home network with open inbound. Got initiator, responder, and relay working against Deluge/libtorrent and qBittorrent. Mac only so far.
Any feedback on the code is welcome. Would also love to hear from anyone who tests it on Linux or Windows.
Avamander commentedon Jun 16, 2026
Have you ran any benchmarks with the PR? How big is the improvement?
sinnet3000 commentedon Jun 16, 2026
Hello,
Not really. Benchmarks are difficult because they depend heavily on the swarm, and even the same torrent can produce different results over time as peer availability changes.
I have been doing manual testing from a CGNAT IPv4 environment and was able to connect to additional peers for both downloading and uploading.
I also tested from a dual-stack environment with an open incoming port and was able to act as a relay and perform hole punching with additional firewalled peers.