NAT i Port Forwarding

Тема в разделе "WASM.NETWORKS", создана пользователем mAgoja, 13 фев 2008.

  1. mAgoja

    mAgoja New Member

    Публикаций:
    0
    Регистрация:
    13 авг 2004
    Сообщения:
    114
    Адрес:
    Ukraine
    Привет всем, есть одна проблема:
    Пишу клиент серверное приложение с использованием Winsock, программа сервер устанавливается на клиентскую машину с внутренней сетью и выход в интернет через шлюз(машины сервера, или адсл маршрутизатора с включенным NAT), как реализовать подключение к серверу со стороны интернета???
    Заранее все спасибо...
     
  2. mAgoja

    mAgoja New Member

    Публикаций:
    0
    Регистрация:
    13 авг 2004
    Сообщения:
    114
    Адрес:
    Ukraine
    настройки порт мапинга плиз не предлагать)), без глобальных настройках роутера сделать сервер))
     
  3. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.348
    со стороны интернета доступа к твоим машинам в локалке нет. Так что - порт маппинг
     
  4. mAgoja

    mAgoja New Member

    Публикаций:
    0
    Регистрация:
    13 авг 2004
    Сообщения:
    114
    Адрес:
    Ukraine
    порт мепинг не как не устраивает... прога чтото типа трояна((
     
  5. mAgoja

    mAgoja New Member

    Публикаций:
    0
    Регистрация:
    13 авг 2004
    Сообщения:
    114
    Адрес:
    Ukraine
    есть один вариант...что в качестве посредника создать сайт де буде хранится айпи сервера..и сервак будет конектется с клиентам, ток хочется чот лутше
     
  6. Xerx

    Xerx Алексей

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    528
    Адрес:
    Russia
    mAgoja
    А сам посуди. Твой "троян" запущен на машине в локальной сети и, соответственно, не имеет внешнего IP. И как клиент из внешней сети должен достучаться до твоего сервера? Либо port-mapping, либо через внешний прокси-сервер, но, насколько я знаю, не часто сервер локальной сети принимает входящие соединения из внешней сети. Так что mapping в любом случае нужен.

    P.S. Лучше сделай наоборот. Троян - клиент, который подключается к твоему серверу в интернете. Так будет работать.
     
  7. mAgoja

    mAgoja New Member

    Публикаций:
    0
    Регистрация:
    13 авг 2004
    Сообщения:
    114
    Адрес:
    Ukraine
    Xerx так как ты расписал я так и хочу сделать), ток при этом возникает некоторые сложности:
    я сервер ко мне подключается клиент , клиент берет айпи с какогонить хоста, допустим фтп с файла, как сделать минимальное обращение к этому серваку за айпи чоб небыло большого съедения трафа(обновлять допустим каждые 2 мин?), хотелось бы услышать какунить альтернативу.
     
  8. WIN32

    WIN32 Member

    Публикаций:
    0
    Регистрация:
    20 янв 2007
    Сообщения:
    338
    в инфо к icq номеру прописываешь адрес ftp или что там тебе надо
    и клиентом открываешь www.icq.com/номеруина
    находиш свою сигнатуру, и береш данные.
    Зачем использовать свой сервер для раздачи, если есть море бесплатных )
     
  9. mAgoja

    mAgoja New Member

    Публикаций:
    0
    Регистрация:
    13 авг 2004
    Сообщения:
    114
    Адрес:
    Ukraine
    сенкс , кульный вариант)
     
  10. Meatcoins

    Meatcoins New Member

    Публикаций:
    0
    Регистрация:
    19 сен 2007
    Сообщения:
    178
    А у меня похожая проблема!
    У меня NAT!
    У меня есть пара друганов - у одного просто модем и DHCP - у него глобальный IP - я с ним могу соединиться напрямую, а у второго NAT и мы напрямую не можем соединиться!
    Я это никак понять не могу!!!
    Есть такая программуля - Hamachi, которая нам со II-м друганом позволила соединиться напрямую - сам в снифере видел! Он пакеты записывал и я - там в качестве адреса получателя и отправителя были наши глобальные IP!
    Ведь я же через NAT в Internet захожу - мне Internet'ские сервера как-то пакеты передают же!!!
    Почему нельзя из Internet'а передать что-то мне????
    Я это вообще не понимаю!!!
    Почему надо использовать какие-то дополнительные сервера???
    А если конкретно? Допустим есть сервер на www.narod.ru? И что? По FTP что ли менять какие-то файлы? Тот, кто Клиент меняет файл по FTP, а тот, кто Сервер считывает по FTP с narod.ru?
     
  11. boobl

    boobl New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2008
    Сообщения:
    18
    NAT = Network Address Translation — технология позволяющая пускать несколько человек из внутренней сетки через один и тот же внешний IP адрес. Работает она примерно таким образом: Допустим у тебя внутренний адрес - 10.0.0.13. Ты открываешь порт 1234 и коннектишься к ya.ru на 80-ый порт. Т.к. все пакеты обязательно проходят через NAT шлюз, он рассматривает этот пакет, и, поняв что это пакет на создание соединения, открывает у себя какой-то совершенно рандомный порт и записывает в таблицу трансляции примерно следующее
    <порт открытый натом> TCP 10.0.0.13:1234 ya.ru:80
    далее он меняет заголовок TCP твоего пакета так, чтобы адресом отправителя был адрес ната, а порт отправителя был только что открытый порт ната. Далее когда пойдут ответы на инициализацию подключения, собственно данные и пакеты на закрытие порта НАТ будет использовать свою таблицу трансляции чтобы знать кому этот пакет надобно перенаправлять.
    Если ты будешь играть роль сервера и не будешь инициатором всех подключений - нат не будет знать что подключаются именно к тебе, такие дела.

    От этого добра можно спастись портфорвардингом. В этом случае в настройках сервера нат указывается что такой-то диапазон портов принадлежит определенному внутреннему адресу в сети, и все пакеты на этот порт будут идти прямиком к тебе.

    Насчет хомячи: хамачи организует некое подобие VPN, т.е. весь трафик идет через ихний какой-то сервер-посредник AFAIK.
     
  12. Meatcoins

    Meatcoins New Member

    Публикаций:
    0
    Регистрация:
    19 сен 2007
    Сообщения:
    178
    То есть за мной не закрепляется определённый порт?
    Если мы оба за NAT, то мы можем достучаться только до своих внешниех NAT-маршрутизаторов! А они естественно молчат!
    Портфорвардинг - это, надо полагать, надо с провайдером договариваться...
    Порт мепинг - это, скорее всего, тоже связано что-то с настройнами NAT-маршрутизатора самого - это тоже надо с провайдером договариваться получается...
    Правильно?
    То есть как уже тут всё и обсуждалось получается, что нужен какой-то 3-й сервер.
    Когда с ним устанавливают соединение 2 компа за NAT, то ихние NAT-маршрутизаторы делают записи в своих таблицах и т.д. и т.п., т.е. всё функционирует обычным образом, а этот 3-й сервер выступает в роли ретранслятора!
    Тогда чтобы написать программулю для общения придётся изобрести велосипед, потому что фактически, если мы сделаем это через www.icq.com (пока не знаю как это сделать), то фактически мы просто напишем новую icq'ку! А если не для общения, то принцип всё равно тот же - просто интерфейс другой! Типа так?
    Получается, что надо создать сайт или зарегистрировать новый nic на www.icq.com и прошить его в своей программуле?
    А если что-то накроется сайт или nic, то все копии нашей программули перестанут функционировать?
     
  13. dag

    dag New Member

    Публикаций:
    0
    Регистрация:
    17 авг 2004
    Сообщения:
    446
    uPnP в помомощь и всяческого вида Proxy Socketы
     
  14. boobl

    boobl New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2008
    Сообщения:
    18
    Meatcoins
    Да, нехватка адресов, а за ним и засилье этих самых NAT серверов — настоящий бич интернета (на мой взгляд). Хотя многих эти самые наты спасают от кулхакеров, бродящих по интернету с нюками, сканерами и прочей дрянью.