Сервер доступный из интернета

Тема в разделе "WASM.NETWORKS", создана пользователем _evil, 6 дек 2017.

  1. _evil

    _evil Member

    Публикаций:
    0
    Регистрация:
    28 сен 2003
    Сообщения:
    61
    Видел исходники клиентов и серверов - они все работают в локальной сети. Если подставить интернет адрес который высвечивается на странице http://myip.ru/ то будет ошибка (The requested address is not valid in its context) WinApi функция bind биндит только локальные адреса.
    Как сделать чтобы с интернет адресом работало?
     
  2. Aiks

    Aiks Member

    Публикаций:
    0
    Регистрация:
    16 апр 2017
    Сообщения:
    109
    Адрес:
    Украина
    Биндить нужно на локальный адрес и пробрасывать порт в настройках роутера(либо заказывать проброс порта в провайдера) на комп в локальной сети.

    Проверять можно тут: http://ping.eu/port-chk/
     
    Последнее редактирование: 6 дек 2017
  3. _evil

    _evil Member

    Публикаций:
    0
    Регистрация:
    28 сен 2003
    Сообщения:
    61
    а как тогда P2P клиенты работают без всяких пробросов портов (связываются даже без промежуточных серверов)?
     
  4. Aiks

    Aiks Member

    Публикаций:
    0
    Регистрация:
    16 апр 2017
    Сообщения:
    109
    Адрес:
    Украина
    Прочитайте про DHT.

    Для примера: https://toster.ru/q/381555

    В интернете полно инфы по этому поводу.
     
    Последнее редактирование: 6 дек 2017
  5. _evil

    _evil Member

    Публикаций:
    0
    Регистрация:
    28 сен 2003
    Сообщения:
    61
    у мнея даже в виртуальной машине активное соединение работает (мостом надо ставить в настройках сети),
    но свой сервер на интернет адрес биндится не хочет ...
     
  6. Aiks

    Aiks Member

    Публикаций:
    0
    Регистрация:
    16 апр 2017
    Сообщения:
    109
    Адрес:
    Украина
    Почему бы не почитать документацию к функции bind?

    https://msdn.microsoft.com/ru-ru/library/windows/desktop/ms737550(v=vs.85).aspx

    The bind function associates a local address with a socket.
    ---
    WSAEADDRNOTAVAIL - This error is returned if the specified address pointed to by the name parameter is not a valid local IP address on this computer.

     
  7. _evil

    _evil Member

    Публикаций:
    0
    Регистрация:
    28 сен 2003
    Сообщения:
    61
    уже читал ...
    прочитай вопрос ...
     
  8. Aiks

    Aiks Member

    Публикаций:
    0
    Регистрация:
    16 апр 2017
    Сообщения:
    109
    Адрес:
    Украина
    Какой именно вопрос? По моим ссылкам есть ответы на Ваши вопросы.

    Незаметно, ибо Вы дальше пытаетесь биндить сокет на внешний IP.

     
  9. _evil

    _evil Member

    Публикаций:
    0
    Регистрация:
    28 сен 2003
    Сообщения:
    61
    биндить на не локальный IP не получится - это из самого первого вопроса понятно.
    Как P2P клиенты умудряются принимать входящие соединения не в своей подсети?
     
  10. Aiks

    Aiks Member

    Публикаций:
    0
    Регистрация:
    16 апр 2017
    Сообщения:
    109
    Адрес:
    Украина
    Если понятно, то зачем второй раз в теме сообщать, что у Вас не получается биндить сокет на внешний адрес?

    Если P2P клиент за NAT без проброса портов - то никак.

    Если "на пальцах", то как-то так.

    Допустим есть P2P клиент который сидит за NAT без проброса портов с включенным DHT. У него есть файл, который он поставил раздавать. Казалось бы, с него не смогут скачать, ибо к нему не дойдет входящее соединение. Но на самом деле с него смогут качать по следующей схеме. Он обращается на трекер в поисках пиров. Трекер сообщил P2P клиенту адрес и порт одного пира. У этого пира порты проброшены и P2P клиент подключается к нему, получает инфу про других участников обмена файлом(спасибо DHT) и пытается так же подключится к ним. По созданному соединению пир качает файл с P2P клиента.
     
  11. unc1e

    unc1e Active Member

    Публикаций:
    2
    Регистрация:
    28 июл 2017
    Сообщения:
    287
    _evil, NAT ваш? Если нет - вам никакой проброс не поможет.
     
  12. unc1e

    unc1e Active Member

    Публикаций:
    2
    Регистрация:
    28 июл 2017
    Сообщения:
    287
    Если схемка такая:
    [​IMG]
    То необходимо биндить на локалку + пробросить порты.

    А вот если такая:
    [​IMG]
    То только лишь покупать белый ip - обычно провайдеры имеют эту услугу.
     
    _evil нравится это.
  13. _evil

    _evil Member

    Публикаций:
    0
    Регистрация:
    28 сен 2003
    Сообщения:
    61
    то что с пробросом портов работает уже знаю (даже проверил что работает)
    но вотъпрос стоял что и без проброса портов P2P клиенты работают в лакальной сети - как такое сделать?
    Захожу в модем в маршруты UPnP и при запуске DC там появляются маршруты (как такое сделать?)
     
  14. _evil

    _evil Member

    Публикаций:
    0
    Регистрация:
    28 сен 2003
    Сообщения:
    61
  15. horpis_real

    horpis_real Active Member

    Публикаций:
    0
    Регистрация:
    5 дек 2016
    Сообщения:
    141
    А посредством dyndns можно решить ? В принципе тема то интересная.
     
  16. MiKe4oICE

    MiKe4oICE New Member

    Публикаций:
    0
    Регистрация:
    16 июл 2018
    Сообщения:
    1
    Первый Skype умел пробиваться через NAT, это точно, но я до сих пор не понимаю - как? Как клиенты работали напрямую, без сервера?
    Ну не совсем без сервера, но там только начальный коннект устанавливался через сервер, а дальше всё шло напрямую! Инфа сотка.