All I want to achieve is to establish connection to my simple server (written in C# using TcpListener class, if it makes any difference), on my computer which is behind NAT. It has some IPv6 address (it's public IP, starting with 2001:0) on Teredo interface. However, I cannot even ping it from outside my network, for instance I'm trying to ping this address from this website http://mebsd.com/ipv6-ping-and-traceroute, result - 100% packet loss. As I understood from reading about Teredo, there is no need for some port forwarding? So where could be the problem?
OK, now I'm confused. So what are the purposes of NAT Traversal and Teredo interface at all? I thought I can use Teredo, for example to establish Tcp connection between two computers behind NAT, WITHOUT any port forwarding.
"[..]Teredo alleviates this problem by encapsulating IPv6 packets within UDP/IPv4 datagrams, which most NATs can forward properly. Thus, IPv6-aware hosts behind NATs can be used as Teredo tunnel endpoints even when they don't have a dedicated public IPv4 address. In effect, a host implementing Teredo can gain IPv6 connectivity with no cooperation from the local network environment."
@Serge from your answer I conclude that this is impossible to do without port forwarding, so how peer-to-peer applications works? For instance BitTorrent clients? That's good question for me (and not only for me), explanations are needed ;)
P.S. Here is an article I have read about NAT Traversal and Teredo in .NET: http://blogs.msdn.com/b/ncl/archive/2009/07/27/end-to-end-connectivity-with-nat-traversal-.aspx