It is now working smoothly. To establish a P2P netcat-like chat connection, you simply run the same command on both sides:
gonc -p2p <passphrase>
Building on this, I implemented a dual (bidirectional) reverse proxy. This allows both peers to access each other's networks simultaneously.
Peer A:
gonc -p2p <passphrase> -linkagent
Peer B:
gonc -p2p <passphrase> -link 1080;1080
This opens port 1080 on both ends as a SOCKS5 & HTTP proxy to tunnel traffic to the other side.
How it differs from frp/rathole: Unlike existing solutions that require you to deploy a self-hosted Rendezvous/Signaling Server, gonc uses public STUN and MQTT servers for signaling.
For cases involving Symmetric NATs where a relay is unavoidable, gonc doesn't need a proprietary relay server—it can simply use any standard SOCKS5 server as a relay.
Peer B: (only one side needs to specify -x)
gonc -x socks5ip:port -p2p <passphrase> -link 1080;1080
I'd love to hear your feedback or suggestions!