Can´t share files in private swarm unless peers are directly connected

I successfully created a swarm key and configured 3 peers.

Peer 1 is connected to peer 2, peer 2 is connected to peer 3.

They can only discover files if they are directly connected to the peer. I.E. Peer 1 can´t access files of Peer 3 and Peer 3 can´t access files of Peer 1.
ipfs cat or ipfs get just get stuck in those cases

Here are my versions just in case:

Peers 1 and 2 are running:

go-ipfs version: 0.4.22-
Repo version: 7
System version: amd64/windows
Golang version: go1.12.7

Peer 3 is running:

go-ipfs version: 0.4.22-
Repo version: 7
System version: amd64/linux
Golang version: go1.12.7

You should add a bootstrap node with same swarm key that can connect to both peers.

your confuguration have to work.
Files of peer 1 are discovered through peer 2 from peer 3.
When you connect your node to the public Ipfs network you are not connecting to “all” the nodes available, but just on a subset of them. Through this subset you can retrieve files stored on nodes on which your node is not directly connected

I know that´s the theory, but it doesn´t.

Tried that, it doesn´t work

Hi, that is abnormal. Everyone in a 3-peer network should immediately get connected by the mere fact of DHT bootstrapping. Can you verify that those nodes are diablable? i.e. Peer1 should be able to connect to Peer3. ipfs id on peer1 should show at least one address that peer3 can connect to, and vice-versa.