Сеть между компьютерами через интернет
Соединение компьютер-компьютер через интернет с динамическими IP
Очень часто мы слышим о том, что установить соединение компьютер-компьютер через интернет с динамическими IP – нереально без внешнего сервера.
А также думал, до определенного времени. Потом у меня закрались подозрения… А после мне стало известно очень многое и тайное.
Однако скайп, аська для передачи файлов, торренты, в конце концов, используют каким-то образом прямое подключение.
Как? Об этом я и хочу рассказать.
Все совпадения случайны, цифры изначально выдуманы.
На самом деле, без внешнего сервера это действительно нереально. Но есть «хаки» и «моды», которые нам помогут.
Я буду сильно разжевывать. Некоторые мои объяснения могут не сойтись с реальностью, но это делается для того, чтобы было понятно как и что работает, поскольку на практике данных знаний хватит.
Теория
NAT – то, что дает каждому из нас иметь возможность подключаться к интернету, кто сидит с IPv4. Если раздать каждому компьютеру IPv4 адрес, то их не хватит.
NAT позволяет нам скрывать определенные сервисы только для сети… И именно из-за него мы не можем, в большинстве, достучаться до компьютера из интернета.
Представьте, что вы подключаетесь к серверу FTP в пассивном режиме.
Ваш внешний адрес: 43.12.102.14
Ваш внутренний адрес: 192.168.0.2
Адрес вашего NAT: 192.168.0.1
Вы создаете TCP соединение с вашего IP 192.168.0.2, создаете запрос на адрес с 21 портом.
Далее запрос попадает на ваш NAT, который создает в своей небольшой таблице соответствие: TCP-соединение внутренний IP 192.168.0.2, порт 21.
Внешне он создает также порт, например, 54321 со своим адресом.
И переадресует ваш запрос на FTP сервер на 21 порт.
Сервер FTP, получая запрос, видит, что запрос установлен с IP 43.12.102.14 и порта 54321.
Теперь, на время соединения, этот порт является переадресатором на ваш компьютер на порт 21 для TCP соединения.
Как только вы закроете соединение, порт провесит от 3-10 секунд и удалится из таблицы NAT.
Большинство UDP соединений и TCP соединений в программах создаются через данные хаки, постоянно поддерживая подключение.
Практика
Давайте я объясню как создается соединение между компьютерами, когда вы сидите, например, в аське.
Вы создаете изначально соединение с сервером ICQ, который открывает вам порт на компьютере, например, 5191. На другом компьютере открывается также порт с номером 5191.
IP и порты этих пользователей в NAT будут выглядеть, например, так:
1 пользователь: 43.12.102.14:56742
2 пользователь: 43.12.102.15:61782
После этого сервер ICQ сообщает каждому клиенту их внешний IP-адрес и внешний порт.
Пользователь 1 делает соединение на этот внешний IP:Port (43.12.102.15:61782) и попадает на внутренний порт 5191.
Пользователь 2 соглашается на соединение с IP:Port пользователя 1 (43.12.102.15:61782), который переадресуется с NAT на пользователя 1 с портом 5191. Далее происходит пересылка файлов и соединение закрывается. Через некоторое время NAT, видя, что внешние и внутренние порты уже не используются и соединение закрыто, удаляет этот порт для того, чтобы использовать для других соединений.
На картинке это будет выглядеть так:
Как реализовать?
Конечно, не каждый из нас на начале своей карьеры имел внешний сервер, который будет говорить каждому пользователю его внешний IP-адрес и порт.
Но для данных решений существуют свои реализации, например, STUN сервера, которые есть по всему миру, даже публичные.
В большинстве, они созданы для UDP протокола, который используется в тех же торрентах. Однако существуют и STUNT сервера для реализации TCP протокола.
Создавайте, творите, все в ваших руках.
P.S.: Не все NAT способны обеспечить такое соединение, однако, большинство закрытых NAT, следящих за IP соединений, не используются в предоставлении услуг провайдеров.
UDP: в данном контексте, динамическими IP, называются IP адреса, которые не являются внешними, а выдаются вышестоящим NAT.
Сеть между двумя пк через интернет
Добрый день, подскажите пожалуйста решение данной проблемы.
В организации во внутренней сети есть ПК, на котором находится база парус и к нему подключаются для работы. IP адрес этого компьютера во внутренней сети 192.168.0.100
Во втором здании есть отдельный ПК имеющий выход в интернет через ADSL модем. С него нужно получить доступ к компьютеру с парусом, чтобы через «подключение к удаленному рабочему столу» подключиться к нему.
Как я понимаю нужно использовать VPN соединение. Вариант с TeamViewer’ом-работает — но начальство требует другое решение.
примерно структура выглядит так. Компьютер 1 имеет доступ в интернет по ADSL и с него как раз таки нужно получить доступ к парусу.
Компьютер 2, находится в другом здании, имеет доступ в интернет по Ethernet, в нем 2 сетевые карты. Одна для интернета, вторая для внутрисети, он раздает интернет для всех остальных компьютеров организации (используется в роли маршрутизатора) под управление Windows XP SP 3
Компьютер парус, к нему как раз таки нужно получить доступ
Я студент 1го курса, пока только учусь всему, можно пожалуйста поподробнее рассказать о том, как решить данную задачу
Не правильно работает сеть между двумя компами с WinXP через роутер
Есть два компа: десктоп (имя Inteldesktop) и нетбук (имя netbook). На обоих установлен WinXP (SP3).
Обмен между двумя локальными сетями через интернет
Доброго времени суток, читающий! 🙂 Объясните, пожалуйста, как происходит обмен между двумя.
Как создать сеть между двумя компьютерами с выходом в интернет
Имеется ADSL роутер «DSL-2540U» и D-Link «DIR-300»,стационарный комп. и ноутбук.Win 7 на обоих.
Как создать сеть между двумя компьютерами с выходом в интернет по WIFI? Система Windows 7
Имеется два устройства WiFI и роутер. Интернет в одном из пк напрямую подключен с помощью кабеля.
Какой либо из выходов имеет статический внешний ip адрес ?
Если да, то можно просто воспользоваться удаленным рабочим столом, в нужном компьютере поставить галку «разрешить подключаться удаленным рабочим столом», в модемемаршрутизаторе сделать проброс портов на внутренний ip адрес, по умолчанию у RDP порт 3389 соответственно в разделе модемамаршрутизатора forwarding (перенаправление), реже он называется virtual servers
Пример вот
6. Port Forwarding. (по аналогии проброс портов настраивается и в других модемахмаршрутизаторах
Ну и напоследок еще один вопрос, который периодически возникает у тех, кто хочет предоставить доступ извне (из интернета) к своеу компьютеру, который подключен к модему настроенному роутером. В этом случае, тот кто пытается подключиться на ваш внешний IP-адрес, попадает в модем. Модем, благодаря включенному с нем файерволу, никого никуда не пускает. Да и куда пускать-то? Компьютеров у вас несколько, и к которому из них «стучались», модему неведомо. По этому, вам нужно будет выполнить определенные настройки, которые «в миру» чаще всего называют как «Port Forwarding», а в модеме Dlink DSL-2500U назвали иначе — «Virtual Servers». Кроме того, настройки нужно будет выполнить и в компьютере, к которому планируется подключение. В компьютере нужно сделать два дела:
- Присвоить ему статический IP-адрес из того диапазона, который использует DHCP сервер модема (см. пункт 3 на рис. 15 выше).
- Открыт в его файерволе те порты, к которым планируется подключение.
Ну а теперь настроим модем. Откройте страницу настойки «виртуальных серверов». Для этого в меню слева сначала щелкните «Advanced Setup», затем «NAT» и там уже пункт «Virtual Servers». Откроется окно, показанное на рис. 19 ниже:
На этой странице отображается список уже настроенных в модеме «виртуальных серверов». Так как вы еще ничего не настраивали, то и список пуст. Чтобы создать новый «виртуальный сервер» (а фактически — новое правило для файервола модема), нажмите кнопку «Add» (пункт 2 на рис. 19).
Откроется следующее окно:
ПРИМЕЧАНИЕ: По умолчанию в только что открывшемся окне «птичка» стоит напротив пункта «Select a Service». Рядом с этим пунктом присутствует выпадающий список с различными службами (серверами, приложениями, играми и пр.), для которых настройки уже подготовлены и их нужно просто лишь разрешить. По большому счету, просмотрите список, и может быть вы найдете в нем нужное вам. Если же нет, то тогда настройте в «ручном» режиме, как это описано ниже.
- Поставьте «птичку» в поле «Custom Server» и в поле рядом впишите свое собственное самостоятельно придуманное имя данному правилу (службе). В приведенном мной примере, я открываю порт для того, чтобы люди из интернета имели доступ к моему веб-серверу Apahce, который установлен на компьютере с локальным адресом 192.168.1.10). По этому, свое имя «сервиса» я так и указал — apache.
- В поле «Server IP Address» я вписал (Внимание. ) ЛОКАЛЬНЫЙ адрес моего компьютера на котором установлен и и запущен веб-сервер Apache. Как было сказано выше адрес компьютера 192.168.1.10, и именно такое значение я и вписал в указанном поле.
- Следующим шагом я указал какие порты и по каким протоколам хочу переадресовывать на мой сервер. Для этого на странице представлена целая таблица. В ней каждая строка — это отдельное правило переадресации («портфорвардинга»). В строке самым первым указывается стартовый (начальный / первый) номер порта (External Port Start). Дело в том, что иногда требуется переадресация не одного порта, а целого диапазона (например, для протокола BitTorrent нужно пробросить порты с 6881 по 6889). В таком случае в это поле пишется начальный номер порта диапазона. Если же «пробросить» нужно только один порт, то тогда в это поле пишется номер этого порта. В следующем поле (External Port End) указывается последний номер порта, если вы настраиваете переадресацию целого диапазона портов, или же тот же самый номер порта, что и в первом поле, если вы переадресуете всего только один порт. В следующем поле (Protocol) вы указываете — пакеты какого протокола будут переадресовываться. Варианты: TCP, UDP или оба сразу. Этот параметр вы должны узнать в документации на то приложение, для которого создается ваше правило. Ну и последние два параметра в строке — это соответственно первый (Internal Port Start) и последний (Internal Port End) номера портов на вашем локальном компьютере, на которые будет осуществляться переадресация. В моем случае, для веб-сервера apache,нужно было всего-лишь обеспечить прохождение TCP-пакетов на 80-й порт. Именно поэтому, как и видно на рисунке 20, в полях первого и последнего номеров внешних портов, а также в поле стартового порта внутренней сети вписан 80-й номер порта, а в поле Protocol указан протокол TCP.
- После того, как правило создано, нажмите кнопку «Save/Apply«. Ваше правило будет записано в память модема и тут же запущено (начнет работать переадресация).
Мой пример с 80-м портом выбран еще и потому, что попытка настроить его переадресацию приводит к появлению дополнительного вопроса (для случая других номеров портов у вас есть шанс и не увидеть подобного вопроса). Дело в том, что при настройке самого подключения я оставил включенным т.н. «WAN Service» (доступ к веб-интерфейсу настроек модема извне) (см. пункт 3 на рис. 14 выше). И благодаря этому внешний 80-й порт модема был «занят» — на нем он сам отвечал при обращении извне. Теперь же я ему указываю, что запросы по 80-у порту нужно переадресовывать на компьютер в локальной сети. По этому, модем, чтобы у меня осталась возможность входа в настройки извне, предлагает мне сменить номер порта, на котором будет работать его встроенная веб-сервер настроек с 80-го на 8080 (см. рис. 21 ниже).
Соглашаемся. А что нам еще делать? Единственное, нужо запомнить, что отныне при попытке попасть в настройки модема звне (из интернета), к адресу нужно будет дописывать номер порта 8080, например, вот так: http://123.123.123.123:8080/.
После того, как правило создано, мы снова взвращаемся на страницу со списком уже настроенных в модеме «виртуальных серверов». Но теперь в нем уже появился один пункт — строка про созданный только что «виртуальный сервер» apache (см. рис. 22 ниже). При желании создать следующий «виртуальный сервер», снова нажмите кнопку «Add» и повторите приведенную выше инструкцию, указав новые параметры. Учтите, что «портфорвардинг» возможен не только на разные номера портов, но и на разные компьютеры вашей локальной домашней сети. Единственное ограничение — один и тот же порт нельзя пробросить на насколько компьютеров.
Локалка через интернет
У меня на блоге уже была одна статья про организацию локальной сети через интернет при помощи Hamachi, но сегодня мы поговорим про еще один сервис, используемый в подобных целях, — OpenVPN.
О чем вообще речь? О том, чтобы связать два или большее количество компьютеров, находящихся в совершенно разных местах, в единую локальную сеть. То есть физически то они будут далеко друг от друга, а виртуально — как будто в одной локальной сети. Что это дает?
- Возможность делиться файлами по сети;
- Возможность запустить какую-нибудь программу типа 1с, обращающуюся с одного компьютера на другой;
- Возможность играть вместе в игры и многое другое.
Сама статья написана не мной, предложил мне ее один из постоянных участников нашего форума, NicromanseR, за что я ему очень благодарен. Сам я лишь немного подредактировал статью, чтобы она больше ложилась в стилистику этого блога.
Итак, как же сделать локалку через интернет с использованием OpenVPN? Задача не совсем простая и потребует некоторого количества манипуляций, но предлагаемая инструкция описывает их достаточно подробно.
Итак, скачиваем дистрибутив программы с официального сайта, распаковываем его и устанавливаем всё по умолчанию. Внимание! Нужно подтвердить установку драйвера сетевого адаптера TAP-Win32 Adapter V9, когда Windows это попросит.
Openvpn сервер
Один из компьютеров будет выступать в качестве Openvpn сервера, к нему будут подключаться другие компьютеры. Желательно, чтобы на нем был выделенный (постоянный) IP адрес. Начнем с его настройки.
- Запустите окно командной строки Пуск – Выполнить (или Win+R) – cmd.exe
- Cамая сложная часть настройки – генерация сертификатов и ключей. Здесь нужно быть предельно внимательным и точно следовать инструкциям. В окне консоли вводим без кавычек «cd C:Program FilesOpenVPNeasy-rsa» где C:Program FilesOpenVPN папка с установленной программой. Окно консоли не закрываем.
- Вводим опять без кавычек «init-config»
- Реедактируем файл vars.bat и устанавливаем следующие параметры: KEY_COUNTRY, KEY_PROVINCE, KEY_CITY, KEY_ORG, KEY_EMAIL. Эти параметры нельзя оставлять пустыми, остальные можно оставить по умолчанию. Пример:
set KEY_COUNTRY=RU
set KEY_PROVINCE=MO
set KEY_CITY=Moskow
set KEY_ORG=GazProm
set KEY_EMAIL=root@yandex.ru
set KEY_CN=changeme
set KEY_NAME=changeme
set KEY_OU=changeme
set PKCS11_MODULE_PATH=changeme
set PKCS11_PIN=1234
В стандартном блокноте вам не получится отредактировать данный файл, поэтому я воспользовался программкой «Notepad++».
«build-key client1»
«build-key client2»
(это команды для двух филиалов, по аналогии можно сделать ключи для большего количества)
port 5194
proto udp
dev tun
topology subnet
ca C:\Program Files\OpenVPN\config\keys\ca.crt
cert C:\Program Files\OpenVPN\config\keys \server.crt
key C:\Program Files\OpenVPN\config\keys \server.key # This file should be kept secret
dh C:\Program Files\OpenVPN\config\keys \dh1024.pem
server 10.218.77.0 255.255.255.0 # vpn subnet
ifconfig-pool-persist ipp.txt # Тут будут храниться ip адреса клиентов
push «route 192.168.78.0 255.255.255.0»
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status.log
log-append openvpn.log
verb 4
mute 20
client-to-client
client-config-dir C:\Program Files\OpenVPN\config\keys
Конфиг готов, осталось создать ещё 1 файлик с именем «ipp.txt» и следующим содержанием:
client1,10.218.77.10
client2,10.218.77.11
client3,10.218.77.12
Всё, от сервера OpenVPN можно пока отстать. Переходим к настройке клиентской части для создания локалки через интернет.
Openvpn клиент
Чтобы настроить Openvpn клиент, Заходим в папку по адресу C:Program FilesOpenVPNconfig и создаём там файлик «client.ovpn» со следующим содержанием:
remote my_server 5194
client
dev tun
proto udp
topology subnet
persist-key
persist-tun
ca C:\Program Files\OpenVPN\config\keys \ca.crt
cert C:\Program Files\OpenVPN\config\keys \client1.crt
key C:\Program Files\OpenVPN\config\keys \client1.key
comp-lzo
verb 4
mute 20
Тут Вам надо поменять значение «my_server» на IP адрес вашего сервера. Скопируем файлы ca.crt, client1.crt, client1.key в папку C:Program FilesOpenVPNconfigkeys для пользователя «client1» и файлы ca.crt, client2.crt, client2.key для второго клиента (если у вас планируется больше двух). На этом настройка OpenVPN клиента закончена. Пробуем подключиться.
Примечание (Сандер): Если вы все правильно настроите, то после запуска службы на сервере и сеансов на клиентах, ваши компьютеры окажутся в одной локальной сети. Технически это будет выглядеть как будто в сетевых настройках у вас появился новый сетевой адаптер, который функционирует как локалка через интернет. И еще. OpenVPN — это бесплатный продукт с открытым кодом, так что вы работаете не через черный ящик, не завязаны на чужие сервера, в общем, при помощи этой технологии вы получаете настоящую защиту от внешнего мира. Кроме того, OpenVPN прекрасно работает под Линуксом, так что вы даже сможете связать друг с другом в одну компьютеры с совершенно разными операционными системами.
Если у вас будут вопросы, пишите, мы постараемся помочь.
Локалка через интернет
У меня на блоге уже была одна статья про организацию локальной сети через интернет при помощи Hamachi, но сегодня мы поговорим про еще один сервис, используемый в подобных целях, — OpenVPN.
О чем вообще речь? О том, чтобы связать два или большее количество компьютеров, находящихся в совершенно разных местах, в единую локальную сеть. То есть физически то они будут далеко друг от друга, а виртуально — как будто в одной локальной сети. Что это дает?
- Возможность делиться файлами по сети;
- Возможность запустить какую-нибудь программу типа 1с, обращающуюся с одного компьютера на другой;
- Возможность играть вместе в игры и многое другое.
Сама статья написана не мной, предложил мне ее один из постоянных участников нашего форума, NicromanseR, за что я ему очень благодарен. Сам я лишь немного подредактировал статью, чтобы она больше ложилась в стилистику этого блога.
Итак, как же сделать локалку через интернет с использованием OpenVPN? Задача не совсем простая и потребует некоторого количества манипуляций, но предлагаемая инструкция описывает их достаточно подробно.
Итак, скачиваем дистрибутив программы с официального сайта, распаковываем его и устанавливаем всё по умолчанию. Внимание! Нужно подтвердить установку драйвера сетевого адаптера TAP-Win32 Adapter V9, когда Windows это попросит.
Openvpn сервер
Один из компьютеров будет выступать в качестве Openvpn сервера, к нему будут подключаться другие компьютеры. Желательно, чтобы на нем был выделенный (постоянный) IP адрес. Начнем с его настройки.
- Запустите окно командной строки Пуск – Выполнить (или Win+R) – cmd.exe
- Cамая сложная часть настройки – генерация сертификатов и ключей. Здесь нужно быть предельно внимательным и точно следовать инструкциям. В окне консоли вводим без кавычек «cd C:Program FilesOpenVPNeasy-rsa» где C:Program FilesOpenVPN папка с установленной программой. Окно консоли не закрываем.
- Вводим опять без кавычек «init-config»
- Реедактируем файл vars.bat и устанавливаем следующие параметры: KEY_COUNTRY, KEY_PROVINCE, KEY_CITY, KEY_ORG, KEY_EMAIL. Эти параметры нельзя оставлять пустыми, остальные можно оставить по умолчанию. Пример:
set KEY_COUNTRY=RU
set KEY_PROVINCE=MO
set KEY_CITY=Moskow
set KEY_ORG=GazProm
set KEY_EMAIL=root@yandex.ru
set KEY_CN=changeme
set KEY_NAME=changeme
set KEY_OU=changeme
set PKCS11_MODULE_PATH=changeme
set PKCS11_PIN=1234
В стандартном блокноте вам не получится отредактировать данный файл, поэтому я воспользовался программкой «Notepad++».
«build-key client1»
«build-key client2»
(это команды для двух филиалов, по аналогии можно сделать ключи для большего количества)
port 5194
proto udp
dev tun
topology subnet
ca C:\Program Files\OpenVPN\config\keys\ca.crt
cert C:\Program Files\OpenVPN\config\keys \server.crt
key C:\Program Files\OpenVPN\config\keys \server.key # This file should be kept secret
dh C:\Program Files\OpenVPN\config\keys \dh1024.pem
server 10.218.77.0 255.255.255.0 # vpn subnet
ifconfig-pool-persist ipp.txt # Тут будут храниться ip адреса клиентов
push «route 192.168.78.0 255.255.255.0»
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status.log
log-append openvpn.log
verb 4
mute 20
client-to-client
client-config-dir C:\Program Files\OpenVPN\config\keys
Конфиг готов, осталось создать ещё 1 файлик с именем «ipp.txt» и следующим содержанием:
client1,10.218.77.10
client2,10.218.77.11
client3,10.218.77.12
Всё, от сервера OpenVPN можно пока отстать. Переходим к настройке клиентской части для создания локалки через интернет.
Openvpn клиент
Чтобы настроить Openvpn клиент, Заходим в папку по адресу C:Program FilesOpenVPNconfig и создаём там файлик «client.ovpn» со следующим содержанием:
remote my_server 5194
client
dev tun
proto udp
topology subnet
persist-key
persist-tun
ca C:\Program Files\OpenVPN\config\keys \ca.crt
cert C:\Program Files\OpenVPN\config\keys \client1.crt
key C:\Program Files\OpenVPN\config\keys \client1.key
comp-lzo
verb 4
mute 20
Тут Вам надо поменять значение «my_server» на IP адрес вашего сервера. Скопируем файлы ca.crt, client1.crt, client1.key в папку C:Program FilesOpenVPNconfigkeys для пользователя «client1» и файлы ca.crt, client2.crt, client2.key для второго клиента (если у вас планируется больше двух). На этом настройка OpenVPN клиента закончена. Пробуем подключиться.
Примечание (Сандер): Если вы все правильно настроите, то после запуска службы на сервере и сеансов на клиентах, ваши компьютеры окажутся в одной локальной сети. Технически это будет выглядеть как будто в сетевых настройках у вас появился новый сетевой адаптер, который функционирует как локалка через интернет. И еще. OpenVPN — это бесплатный продукт с открытым кодом, так что вы работаете не через черный ящик, не завязаны на чужие сервера, в общем, при помощи этой технологии вы получаете настоящую защиту от внешнего мира. Кроме того, OpenVPN прекрасно работает под Линуксом, так что вы даже сможете связать друг с другом в одну компьютеры с совершенно разными операционными системами.
Если у вас будут вопросы, пишите, мы постараемся помочь.
Adblockdetector