I encoutered a scenario that is : A can access B via SSH (B can't access A, because nat), A can access C via SSH ( C can't access A, because nat), B and C can't access each other, there are in different network.

A->B, A->C, C->B? my quesiton is how to set the tunnel or command to let C can access B?

It sounds like you need to look into "port forwarding" or possibly even allowing DNZ. That way, whatever your public IP happens to be is all anyone outside of your LAN has to know. That and whatever port number your VPN server/clients connect on. (I assume you're trying to use PPTP "tunneling" with a VPN and aren't trying to run a web server or something.)

Otherwise, if this is all on the same LAN then it may be that you have a firewall issue (my first suspicion), DNS problems, or maybe even DHCP issues. It could more exotically be a failing switch too. But I seriously doubt you have NAT (Network Address Translation) issues within your own LAN.