It happened to many of us, specially at the begining of setting up a node, that we connect to liquidity draining nodes. These are nodes that suck all the liquidity you throw at them and never return it, or return it very vaguely, to then, in a few moments later, suck it again. These are channels usually related to services in which the managers do not take their time and efforts on rebalancing their channels because they are always getting new channels coming in, and don't feel any need to return the favor to the smaller nodes that are providing liquidity for free (or almost free). This is very unfortunate, and I think we should punish them.
Typical nodes in that situation in 2025 are Kraken, lnbig, bfx (bitfinex), ACINQ, coingate, etc.
Some contact of me, which has this problem, has found that he is unable to properly route because of this and sent me an screenshot of his channels. Take a look at the list:
You can see, the problem is that all the liquidity are in normal channels, while most of the draining nodes are sucking it and never return it. So all his inbound channels are draining nodes, and all his good nodes are just stuck because the don't have proper inbound pairs.
So, even if he may have a near 100% ratio (not the case now, but he may), he can't route because he has too many draining channels that never return liquidity.
To avoid this, it is better to just not connect to those known draining nodes, which is a form of punishment to them. Another solution is to configure charge-lnd so for those channels there is always high fees.
Just substitute the fee for whatever you consider necessary, and the node ids for those that you know they are going to drain you. The list in the example is not exahustive, you may add the many nodes that LNBig has, and many others. In my experience, WalletOfSatoshi is doing well, TempleOfSats also doing well, so this is not a problem of being a service that always drains not matter what, there are services that demonstrate they can properly manage a node without draining their peers like hell!
But if you already have this problem, your only solution is to go to Lightning Plus and do as many swaps as possible to get inbound liquidity, and, at the same time, use boltz.exchange and/or LOOP to try to get as much inbound as possible, until you get a ratio close to 100% not including those draining channels.
This is something that so many people has asked me over the years that I'm forced to do a mini guide here. There are many possible solutions, and if you do a search about it you will find many ways. One way that I know works perfectly is as follow:
Step 1: rent a cheap VPS with a clearnet ipv4 address. You can find many for only $2 a month.
Step 3: Open ports in the VPS. If you have ufw, just execute ufw allow 9735. If you want rest access, also ufw allow 8080, or whatever port you use.
Step 4: install autossh cli program on both your node and the VPS: apt install autossh.
Step 5: create a systemd service under /etc/systemd/system/node-autossh.service with a similar content like this, please ensure you write a proper ExecPath line appropriate for your node, and your User:
Note: if you run lnd under docker, you will have to put your lnd container ip instead of localhost.
Now enable it by running systemctl daemon-reload && systemctl enable node-autossh && systemctl start node-autossh.
Apendix A: liquidity draining channels
Apendix B: how to obtain a public ipv4 clearnet address on a residential connection
ufw allow 9735
. If you want rest access, alsoufw allow 8080
, or whatever port you use.autossh
cli program on both your node and the VPS:apt install autossh
./etc/systemd/system/node-autossh.service
with a similar content like this, please ensure you write a properExecPath
line appropriate for your node, and yourUser
:systemctl daemon-reload && systemctl enable node-autossh && systemctl start node-autossh
.lnd.conf
adding this:-R
option to autossh.