Приём запросов вне локальной сети TCPListener

есть вот такой код сервера:

using System.Net;
using System.Net.Sockets;
using System.Text;

public class DoWork

{

public static IPAddress ip1;
public static int port1;

public  static void Start()
{
    Console.WriteLine("IP сервера:");
 var ip =    Console.ReadLine();
    if (!IPAddress.TryParse(ip, out var adress))
    {
        Console.WriteLine("IP сервера:");
         ip = Console.ReadLine();
    }
    else
    {
        ip1 = IPAddress.Parse(ip);
    }
    Console.WriteLine("Port сервера:");
    var port = Console.ReadLine();
    if (!int.TryParse(port, out int integer))
    {
        Console.WriteLine("Port сервера:");
        port = Console.ReadLine();
    }
    else
    {
        port1 =Convert.ToInt32( port);
    }
}
public  static void Main(string[] args)
{
    Start();
    byte[] buffer = new byte[1024];
  


    TcpListener server = new TcpListener(ip1, port1);

     Console.Out.WriteLineAsync("Запуск сервера...");
    server.Start();
     Console.Out.WriteLineAsync($"Сервер запущен! \nIP: {ip1}, \nPort: {port1}");

    int bytes;
    var response = new StringBuilder();
    while (true)
    {
        TcpClient client =  server.AcceptTcpClient();

        Console.WriteLine($"Новое подключение: {client.Client.RemoteEndPoint}");

       
        NetworkStream stream = client.GetStream();
     bytes =   stream.Read(buffer);


       response.Append(Encoding.UTF8.GetString(buffer), 0, bytes);

        Console.WriteLine(response);
    }
}



}

Локальный айпи адрес сервера - 192.168.2.101. Хочу сделать так, чтобы к серверу можно было подключаться вне локальной сети, поэтому включил у роутера перенаправление портов и настроил его (скрин ниже) введите сюда описание изображения

Для диапазона портов обратился к поисковикам и узнал, что порты с 49001-49150 свободны.

То есть по сути, со стороны клиента нужно ввести: айпи роутера и порт, тогда всё будет работать, верно? Я так и сделал. Что в итоге? В той же локальной сети всё работает без проблем, здесь вопросов нет. Однако, попросил я своих друзей протестировать это, что же случилось? У всех до едино было превышено время отклика. Иными словами, они не могли подключиться к серверу. Может у них какая-то проблема? Окей, написал для телефона простую клиент-программу, чтобы выяснить всё самомоу. Включил мобильный интернет, начал подключение и... Превышено время отклика.

Вопрос довольно очевидный: Что я сделал не так? Как сделать так, чтобы всё работало, и все могли подключаться к серверу вне локальной сети?

Заранее, спасибо всем за помощь!


Ответы (0 шт):