How to check direct connection?

I want to check connection to my node. Doing ipfs swarm connect works:

$ ipfs swarm connect /dns/<domain>/tcp/4441/p2p/<peerid>/
connect <peerid> success

But then, looking at ipfs swarm addrs for this peerid, I see only indirect connections (through p2p-circuit). I am on a VPS with open ports, I am running inside docker by binding ports :

# in my docker-compose.yml
ports:
      # p2p port public
      - 4441:4001/tcp
      - 4441:4001/udp

And I made it clear for kubo in the config file:

"Addresses": {
	"Announce": [
		"/dns/<domain>/tcp/4441",
		"/dns/<domain>/udp/4441/quic-v1",
		"/dns/<domain>/udp/4441/quic-v1/webtransport",
		"/dns/<domain>/udp/4441/webrtc-direct"
	],
	"AppendAnnounce": [],
	"Swarm": [
		"/ip4/0.0.0.0/tcp/4001",
		"/ip6/::/tcp/4001",
		"/ip4/0.0.0.0/udp/4001/quic-v1",
		"/ip6/::/udp/4001/quic-v1",
		"/ip4/0.0.0.0/udp/4001/quic-v1/webtransport",
		"/ip6/::/udp/4001/quic-v1/webtransport",
		"/ip4/0.0.0.0/udp/4001/webrtc-direct",
		"/ip6/::/udp/4001/webrtc-direct"
	]
},

My node is silently not announcing what I asked him, when I do ipfs id on the remote node, I see only p2p-circuit multiaddresses.

To check direct connection, I can simply disable relay connection :

# on server
ipfs config Swarm.Transports.Network.Relay --json false
# on client
ipfs config Swarm.RelayClient.Enabled --json false

That way, I will not be bothered with a connection that establishes through a p2p circuit.

1 Like