I have a problem with hiding the VPS IP using Cloudflare. My IP can be found on search.censys.io. I don't have any DNS leaks. I'm using nginx to reverse proxy a node.js server. Is it possible to hide the IP somehow to protect against DDoS and other attacks?
If you're sure that you don't have any DNS records that reveal the IP address of your VPS web server, then you've done all you can to hide your IP address. If your server's IP address is somehow known by other sites, you can try to petition them to stop publicizing it, but that's likely to be an uphill battle.
Instead of trying to hide your server's IP address, why not simply use your VPS provider's firewall to block all incoming connections to your server's IP address, except those originating from Cloudflare's network? This will mitigate the attacks that you described in your question. See Does Cloudflare masking my IP make my server more secure? for more info.