What's the difference between address 0.0.0.0, [::] and *?

Solution 1:

0.0.0.0:<port> is IPv4, [::]:<port> is IPv6, and the square brackets is to separate the address from the port. When they are listed under Local Address, they mean that the specific process is listening on all local addresses. *:<port> means any address, both IPv4 and IPv6 (thanks @raj for pointing out that I overlooked the question in the title and completing the answer in the comments).

Now, listening on all interfaces/addresses doesn't mean everyone can connect to your machine. If it's your PC for instance, it probably is shielded from the scary world by a router. Furthermore, any firewalls/iptables will decide which packet will be accepted and which will be dropped.

Listening and being reachable are two different things.