do i need to pay and rent server for hosting and joining in remote internet???

i made a network game.
everything works fine except joining the room.
i have no idea why this happened

this is my code and setting

public class LobbyManager : NetworkLobbyManager {

    ...

    public void OnClickStartHost()
    {
        StartHost();
    }
    public void OnClickJoin()
    {
        networkAddress = ipInput.text; // this is IP
        StartClient();
    }

i tried 127.0.0.1 / ipv4 address / default gateway. none of them worked.
i guess that probably i need a server from another company, which means i have to pay for that.
if that is true, could you recommand some good company with good price?
any help is appreciated.

You dont need a server for peer-to-peer connection…

Localhost should work, if you run 2 instance.

For outside of your network connection, you need to port forward on the server side, or use NAT punchthrough…

i just change my network port to something different, and it worked!!
that answer didn’t really help, but thanks for reminding me that problem is in port anyway.