Когда я пытаюсь подключиться к локальному IP, все происходит замечательно но как только я использую обычный ip, например, чтобы подключиться к моему другу за пределами локальной сети, он просто не работает
Скорее всего, это сочетание брандмауэра и переадресации портов.В дополнение к открытию портов на вашем брандмауэре, вам нужно будет перенаправить эти порты на маршрутизаторе вашего друга. PortForward.com - достойный ресурс, если вы не знакомы с переадресацией портов.
Мое первое предположение: у вас может быть проблема с брандмауэром - между вами и вашим другом работает брандмауэр? Если да, у вас есть исключения для этого?
Я предлагаю вам использовать Wireshark для анализа того, что происходит на уровне сети.