Vuze Help: Installing The Mainline DHT Plugin



This is a guide to installing the Mainline DHT plugin in your Vuze.  For most users this will help your download speed, particularly on smaller torrent swarms. 

For those of you who do not know what DHT is, I will give the simple explanation that it is a way of connecting to more seed and peers active on the content you are downloading.  Vuze made the decision to use their own version of DHT, while the vast majority of users utilize the Mainline DHT created by µTorrent. 

With this plugin installed, you will now be able to connect, through DHT, to the clients that utitlize only the µTorrent (or Mainline) DHT and to the clients that utilize the Vuze version of DHT.  In many cases you would end up connecting to the Mainline DHT users either through the tracker(s) and Peer Exchange (PEX).   However, there are some situations where this plugin will be very helpful and installing it will not harm your speed or connections. 

Vuze is one of the suggested clients in my Best Free Bittorrent Client Review.  here at Gizmo's Freeware.

If you do not have Vuze, you can get it from the


The first step is to open Vuze and go to Tools>Plugins>Installation Wizard


You will then be presented with a screen asking for you to choose the installation method.  The method to choose is By list from Sourceforge.  This means that you will be downloading from the Vuze repository at Sourceforge (a site for open source software develpment).  Then press Next.


You will then be shown the Installable Plugin List.  The plugins are listed in alphabetical order and you need to scroll down to the plugin named Mainline DHT (now version 1.5.0) and select by putting a check mark in the box next to it.  Then press Next.


You will then be prompted to choose the Installation Type.  The decision here is whether to install for all users or only yourself.  The vast majority of users will want to install for all users.  I can not imagine why you would want other users to not be able to have the benefit of this plugin.  Press Finish.  

NOTE:  Two users of this guide have had an issue installing for all users.  This was resolved when they switched to install for you only.  So, if you run into an issue installing for all, try the other option.  Both users were on Windows 7.  Another user on Windows 7 was able to install after opening Vuze with "run as administrator" option.


You will then be presented with the Plugin Installer screen to confirm your choice.  It should look like the image below and if it does, then press Install.


The download of the plugin will take a very short time and when it is done you should see the following screen and under that the original screen for installation.  If you see this screen, which shows the installation was successful, prress Close on both.


You can check to see if the installation is presenting itself correctly by going to Tools>Options>Plugins (expand))Mainline DHT in Vuze.


The settings should look as in the image below and there is no reason to change these settings.


Port 49001 is the default port that Vuze uses for the Mainline DHT plugin and needs to be forwarded for UDP through any firewalls on your system.  I am not certain if there would be an issue if the DHT port was the same as your general port choice, so I am advising to keep this default port as your selection.   Note:  I recently tested this plugin using the port I had set for my general use and it never got past initializing on IPv4.  When I changed it back to 49001, the IPv4 began showing large numbers quickly. 

I have also changed my advice in the Optimizing Vuze For Speed guide to use UPnP if you have a router and to allow the Vuze program (as opposed to the general port you have chosen) through your software firewall.  If you have done as the previous sentence states, then there will be no additional forwarding for you to enable and your Mainline DHT plugin should be good to go.  If the plugin is working, then you should see something like the below image (you will only see numbers when you hover over the mIDHT icon).  The number of users you see may well be different, but the other parts of the image should be identical.  Note that you will only see these items when you have a torrent running that utilizes DHT (basically any torrent obatined from a public torrent site).

If your Vuze does not show similar to the above image, first make sure you have a torrent that supports DHT running.  If you have a torrent that supports DHT running and still do not see something similar, then use the Vuze NAT/Firewall test to test port 49001 (you only need to test UDP).  If that fails, then recheck your settings in anyy firewall exceptions.  If you still have a fail, then please post here with information on any software firewalls (make and version) and hardware (router/modem) make and model.


Hopefully this guide helped you to properly, and easily, install this plugin.  For very healthy torrents, this will most likely not make much of a difference.  However, with weaker torrents, this could provide a nice boost.

As always, if you have any questions, please do not hesitate to ask here or in our forums

If everything went well, a thank you is always appreciated as it is good for me to know this guide helped and this also helps new users to see that this guide works..  I do not respond to the thank yous as this spreads the comments out, but I do see them and I thank those who post them now.

Related Articles

Please rate this article: 

Your rating: None
Average: 4.7 (26 votes)


Hi, I've installed the mlDHT plugin and it's visible in the status bar. IPv4 shows large numbers of IP's, IPv6 says 'initializing'. The NAT/Firewall test also gives a pass for port 49001. So this probably means that the installation of the plugin is OK.

The thing that I want to bring up is that when I go to the sources tab of an active torrent, the mlDHT plugin is shown in the sources list, but the plugin never shows any seeds. All the peers are placed in the leechers column, and the seeds column stays zero all the time. Is this as it should be? Why does the mlDHT plugin never have (or show) any seeds? Does this mean that seeds can't establish a connection with my computer, or is this but a glitch in the plugin? My idea is that to all appearances the mlDHT plugin doesn't differentiate between seeds and leechers, marks them all as leachers, and therefore all the peers are placed in the leechers column, but that's just a guess.

Anyone with a solution to this puzzle?

Hi i need help i have download the mainline DHT but it says ipv 4 1 ipv 6 inisialising
dont know what could be wrong.
also on a different question my torrents always take a while to start or they have red smily or sady :)so they dont even start can any one help.
tnx in advance

Hi Steve! I have done all the steps and everything seems fine (checked my ports in NAT/Firewall Test and it says Ok, etc.) except for this last step. I was able to download the Main DHT plugin version 1.5 but I never saw the image that last you've posted on your article. So I did the Vuze NAT/Firewall Test and tested the 49001 UDP port, but it gave me this:

Testing port UDP 49001 ...
Sending outbound packet and waiting for reply probe (timeout=5000)
Sending outbound packet and waiting for reply probe (timeout=10000)
Sending outbound packet and waiting for reply probe (timeout=15000)
Sending completion event
NAT Error. Inbound test failed, PRUDPPacketHandler:sendAndReceive failed, Socket is closed.

Can you please help with this one? Thanks in advance!

First off the way the plugin shows on the status bar has changed from when I first put up the guide. Now the information only shows when you hover over the mIDHT icon. (I have put up a new image). So, after your Vuze has been open for a while check those numbers by hovering. When I first went to check on my setup after your post, I was getting large numbers showing on the hover info, but I was also failing the UDP test on port 49001. I had to change the port for mIDHT, save and restart and then change back to 49001 and save and restart before I got a pass. You might try that and see if that resolves. If you are showing large numbers on the hover info, then I would not worry about the test. If you are still failing the test and getting no numbers after trying the above, then let me know about any software firewalls and routers/modems on your system. Steve

Thanks for the help!

I did what you've said and the UDP gives an "ok" result! But I've got a couple of things to clarify if it's okay (sorry if I've got multiple questions.) First is the incoming UDP listen port, what I did was I put a random number there but you said here that you've changed back to 49001 and saved it. So basically, 49001 must be the UDP port and not any random port between 49160-65534?

Second question is about the static IP. My router is Zyxel ZXV10 W300, with firmware version of W300V1.1.0a_ZRD_PH3. I went to NAT>Virtual Server and put two rule indeces, one for the random port number (TCP and UDP) and one for 49001 (UDP). But I was confused when I saw an option of start port number and end port number. What I did is I put the same value for the start port and end port number for both rule indices. Is it right?

If you are talking about the port for the Mainline DHT plugin, then 49001 is the default port. I had issues with this when I set this port to the same one as my general UDP port for Vuze (the Mainline DHT did not get past initializing). So, I suggest keeping the Mainline DHT port to 49001. The Mainline port was the one that I changed back and forth, not the general UDP port. The general UDP port is best kept to one in the 49160-65534 range. As to the router question, yes putting the port number used as the start and end is correct. Steve

Thanks again Steve for the enlightenment! I've got scrambled on MiDHT and general UDP port, what I switched was the general UDP port, I put a random number then saved 49001 port and the test result went okay. Upon reading your reply I changed the general UDP back to my original port number and it still worked.

I can't believe that I am getting this quality service for free. A bunch of thanks for you good sir! But another issue is bothering me (I don't know if this is still within your scope but a help/advice from you would be much appreciated). The issue is I and my friend both upgraded to the same internet plan from the same ISP. We have the same speed (1.9-2.0 Mbps/s) as per result, but the thing is she's getting about 20-60 kb/s when downloading through torrent. And before the upgrade, we also have the same plan, the maximum speed that I'm getting is 60 kb/s while she's getting 70-80 kb/s?

Seems like both of you should be getting better speeds. Though there are a lot of variables in bittorrent speed. Have you gone through the guide here on Optimizing Vuze for Speed?

Oh, I thought you didn't respond anymore because there's no notification on my email. Good thing I've got back to this page. Sorry for the late response.

Yes sir, I have successfully done all the steps that you recommended but still there's no increase in my download speed.

To clear out my post before, I and my friend are currently on a up to 2.0 Mbps plan, I'm getting a maximum of 240 kb/s while her maximum is 290+ kb/s. We we're on the same plan before our upgrade, the plan was up to .5 Mbps, and she's still ahead in download speed, getting a max. speed of 80 kb/s, while my download speed on that plan was on max. of 60 kb/s.


Everything was working fine, but now all my downloads dont seem to work. keep getting "ETA" or 1y 65d left for the download to be complete.
tried to change the port alot of times, none seem to make a difference. tried to download "DHT Plugin" and didnt install.

Id really appreciate if someone could help me get the downloads back.


The article is interesting but sadly having followed the DHT suggestion above it has caused huge problems to my Vuze installation (MBP - OSX 10.8.5). I had already sorted Port Direction on my router (Draytek 2820) and thought loading the Mainline DHT plug-in might improve download speeds further. Big mistake. After downloading and re-starting, all my downloading torrents are stuck on Queued. No smileys of any colour. The uploads are happily uploading on green smileys. I used the Open Port Check Tool to test the DHT-nominated port 49001 and I find it is blocked. So a swift uninstall of Mainline DHT. The problem is that it hasn't fixed the Queuing so I have no downloads. Big mess.

This plugin should have no affect on Queueing and I have not heard of anyone having such an issue. The queue issue probably is coincidental to your install. All this plugin does is allow your client to communicate with clients that use the uTorrent implementation of DHT. Vuze uses a different DHT specification. The vast majority of clients out there use the uTorrent DHT specification. All I can suggest as to the downloads is to check your settings at Azureus>Preferences>Queue (I believe that is how Mac loads options). Particularly the max downloads and max torrents settings. You might also disable the "don't start any new torrents when upload/download limit is reached" as this would queue downloads if the upload limit is reached on seeding torrents. As to the port for Mainline DHT not being open, this would depend on how you originally set the rules for Vuze ports. If you set for a specific port in the router (as opposed to UPnP or Mac equivalent), then you would need to set a rule for the Mainline DHT port in the router. Same for the software firewall - if you set the exception for the port and not the program, then you would need to set the exception for this port. Steve

Firstly, thanks very much for a swift reply.

Your comments about the Vuze Queue settings were interesting. I had a look and discovered that the Max Simultaneous Downloads setting had switched itself (defaulted?) to 4. That explains why only 4 downloads were active at once. So I switched that figure up and many more are now running. Also your suggestion to uncheck the "Don't start any more torrents" etc box was a good one, I did that and speeds improved a little. So those all had an immediate effect - thank you. Overall, all the downloads are now back to actively downloading steadily on green although overall speed is at about 25% of normal, so there are still glitches to fix. In the Tracker Status column, half the downloads show OK and the other half show "OK (UDP Probe)".

On the UDP issue, it's more tricky. I switched UPnP off in Vuze and on the router. I set both TCP and UDP for port 56912 on the router, set both the Call and Data filters in the Draytek router firewall to "Disable" and in Connection in Vuze Preferences set TCP and UDP for 56912. I'm not sure what you mean by the Mainline DHT Port in the router, maybe it's called something else in a Draytek? Then when I do the Vuze NAT/Server Port test it passes TCP but fails UDP. Then when I do the Vuze Network Status test it passes TCP in & out and UDP out but fails UDP inbound.

Does asking TCP and UDP to share a port risk overloading it? Alternatively, is there a self-test feature or plug-in that will establish an open port on the router and thus allow me to enter that figure manually in the router & Vuze settings for UDP?

Now I'm reassured that the plug-in hasn't caused this (!) I'll try to reload it into Vuze.

Thanks for your assistance.

" I had a look and discovered that the Max Simultaneous Downloads setting had switched itself (defaulted?) to 4." That should not happen, but I have seen several issues with Vuze configurations and Macs lately as in, things are switching back to original default settings on their own. "although overall speed is at about 25% of normal" Have you tried the guide here on Optimizing Vuze for Speed? " half show "OK (UDP Probe)"" That usually means the original trackers are down. As to the port issues, first on the Mainline DHT 49001 - this is a separate port that Vuze will use for this plugin, so a separate rule needs to bet set in your router for this port number (since you set rules for the TCP/UDP port and did not use UPnP - which is OK to do - just that you now need to set a rule for 49001 in the router) "Does asking TCP and UDP to share a port risk overloading it?" No. Having the two share a port is the usual setting for Vuze and all bittorrent clients. As to the UDP issue on 56912, that is trickier. Routers do not block outbound, only inbound. So I would suggest re-checking your rule for UDP and 56912 in the router. Other than UPnP (or NAT-PMP for Mac I believe), there is no automatic way to forward. You could try to reactive those in Vuze and the router and see if that resolves the UDP issue just above. Steve

Thanks for your further input.

More developments - I went in to the router and set an additional port 49001 for UDP. I then did the Vuze NAT-Firewall test and - surprise - both the TCP and UDP tested OK on port 56912. Maybe the UDP function needed a return loop via 49001 to make 56912 come alive.

I have re-loaded the mlDHT plug-in and re-launched Vuze. The box at the bottom shows "mlDHT" on its own, no IPv etc - is that right?

But the overriding problem is that speeds have now slowed down even more….. Downloads are mainly green but achingly slow. You kindly suggest visiting the "optimising-vuze-speed" page but that basically steers one through the NAT-Firewall test which now comes out OK. I also did the Vuze Network Status test which produces this result;
0 NAT devices found
No SOCKS proxy found
No HTTP proxy found
No explicit bind address set
Testing HTTP outbound
Test successful
Testing TCP outbound
Test successful
Testing UDP outbound
Test successful
Testing TCP port 56912 inbound
Test successful
Testing UDP port 56912 inbound
Sending outbound packet and waiting for reply probe (timeout=5000)
Sending completion event
Test successful

However, further down that test two fail lines appear;
Outbound connection fail: end of stream on socket read

and after the Outbound Leecher/Seed reports;
No incoming connections received, likely NAT problems

My current total throughput is about 22 kB/s and at full chat over the last few years I would consider 210 kB/s a normal. I have set upload speed on auto and it has settled at 10K. Is there any diagnostic function in Vuze that could help me shed light on the slow throughput?

Thanks again for your detailed consideration of this problem.


I would not use the auto speed (any one of them). I have found it to be bad for down speeds and not reliable. The second half of that guide (Adjusting Internal Settings) has information on the correct settings for your internet connection. That guide is going to be more accurate and effective. I would not pay much attention to the Network Status test as there has always been issues with that (though they were supposed to be fixed up mid 2013). If the main NAT/Firewall test is showing OK, then that is really all that should matter. EDIT: I forgot about the Mainline - yes they have changed the look for that and that is all you should see. However, after it has been active for 5-10minutes, you should see some big numbers for IPv4 when you hover over mIDHT with your curser(I am seeing 141 million right now)

Brilliant - thanks to your sensible advice I'm now back to full speed, all green smileys on downloads and good balanced overall speed spread between each torrent.

I'm so glad you agree that the Vuze Auto-Speed settings are unreliable. I've never found them to work properly for years, on ADSL installations they auto-swallow way too much of the upload bandwidth, thereby compromising the available headroom for the re-send/confirm signals of the downloads. So the downloads end up slower than if one had set the speed oneself. I've set it manually at about one-third of my usual very best upload speed and it's just fine.

IMHO some of the Vuze-related info + set-up pages should be updated with clearer guidance. The Port Selection procedures (especially for Mac owners) should be clarified as the extra 49001 port also needed by UDP doesn't figure prominently.

The Mainline plug-in has bedded-in well. I'm seeing 47 million IPv4.

Many thanks again.


Good to hear it is sorted. Enjoy