I have installed ipfs client on my pc, which does not have a public IP. Now from other node they can not connect to my node( via command ipfs swarm connect my-peer-id
). As a result they can not always get my uploaded files(pinned).So do i must have a public IP to seamlessly add/get file, connect nodes to the network?
You do not need public IP to get files from network.
To share your content this helps a bit. You will insert your content to DHT and be accessible via other node. While content you announced will be found in dht easily, connection to your node will often fail with no routing error.
“EnableAutoRelay”: true,
“EnableRelayHop”: false,
You can try requesting your content from ipfs gateway. Sometimes you will need to retry request several times and wait like 15 minutes until your node will be reached. This is same for bit torrent.
Thanks for your reply. But without public IP other nodes can not directly connect with me right? Because when i command ipfs swarm connect my-peer-id
i am getting error like undialable
Can port forwarding with UPnP help? My IP is not static, but it is the same long enough (many days).
From my experience, my content is always accessible. Is port forwarding with UPnP enabled by default?
I use this addr format in connect:
ipfs swarm connect /ip4/104.131.131.82/tcp/4001/p2p/QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ
You need to get and broadcast “relay” version of your address otherwise others cant reach your node behind NAT. I have same experience as person in following post. Sometimes your node broadcasts its relay address version but most times it does not. What might help is to enable “EnableRelayHop” on your other node with public ip and swarm connect to it.
Other possibility is to try setup ipv6 tunel from https://www.tunnelbroker.net/ it works behind some but not all NAT boxes. What might help in future is TOR transport because tor nodes behind NAT can reach each other. In current state you need to setup some kind of port forwarding (upnp, ssh, tor, vpn, router port forward) to become “full” node.
i dont think autorelay feature is very reliable. Its just for emergency use if you are only node hosting something and other persons are willing to wait a lot to get your content it might work after long time (even hours). Then your content will replicated and become more easily accesible. Its same for bit torrent if there are no seeders without NAT then its very difficult to get missing parts. Bit torrent has advantage of retrying downloads even for weeks as long torrent is in download queue while ipfs gets tired of retrying.
use ipfs id to check if you broadcast relay address or not. it looks like … /p2p-circuit/
/ip4/212.47.230.100/tcp/28512/p2p/Qme8g49gm3q4Acp7xWBKg3nAa9fxZ1YmyDJdyGgoG6LsXh/p2p-circuit/p2p/12D3KooWJhNL7ez…
You might try to collect addresses of nodes providing these circuits and swarm connect to them. Let me know if it helped.