В одной из предыдущих статей мы выяснили, что такое как таковой протокол в ИТ и зачем он нужен. Кратко так:
- Компьютеры могут общаться между собой.
- Для этого им нужно договориться о языке общения — это и есть протокол.
- Протоколы бывают физическими — какие вольты, амперы, радиочастоты и модуляции использовать оборудованию.
- Протоколы бывают логическими — как понимать сигналы, закодированные в этих вольтах и модуляциях.
- Существует целый стек протоколов — как многослойный пирог. В фундаменте там вольты и амперы, потом основы языка, потом сложные конструкции языка и на самой верхушке — как должны общаться приложения. Этот стек (или модель) называют OSI — Open Systems Interconnection Model.
Сегодня поговорим о протоколах TCP/IP — именно они отвечают за работу всего интернета и позволяют нам отправлять запросы на сервер в другой стране и получать в ответ гифки, музыку и всё остальное.
Коротко: что такое и зачем нужны TCP/IP
How to force a person to read SMS? telegram secrets
- TCP/IP — это названия протоколов, которые лежат в основе интернета. Благодаря им компьютеры обмениваются данными, не мешая друг другу.
- Оба протокола отвечают за передачу данных, но IP просто отправляет их в сеть, а TCP ещё следит за тем, чтобы эти данные попали по нужному адресу.
- В TCP встроено подтверждение получения, поэтому при хорошей связи данные точно дойдут до получателя.
Что такое TCP/IP
TCP/IP — общее стандартное название двух протоколов, TCP и IP. Они стоят рядом потому, что протокол TCP работает поверх IP, а вместе эти протоколы образуют универсальный стек протоколов передачи данных.
TCP — это протокол управления передачей (Transmission Control Protocol). Его задача — управлять отправкой данных и следить за тем, чтобы они были гарантированно приняты получателем. Именно гарантия получения данных и сделала этот протокол таким востребованным. Про гарантированную доставку расскажем чуть позже.
IP — протокол, который отвечает за адресацию: чтобы нужные данные долетели до нужного компьютера. Его основная задача — логически соединить компьютеры между собой, чтобы можно было отправлять данные от одного к другому. Для этого он выделяет IP-адреса, строит маршруты доставки пакетов, а главное — умеет организовать передачу данных с помощью пакетов.
- IP-протокол знает, ЧТО нужно сделать, чтобы доставить данные от одного компьютера к другому;
- а TCP-протокол знает, КАК это сделать и при этом убедиться, что получатель точно получил все свои пакеты.
Пакетная передача данных
Когда один компьютер хочет передать что-то другому, то он не отправляет байт за байтом по очереди. Вместо этого он отправляет данные мелкими порциями, а получатель собирает из них исходные данные. Этим как раз занимаются протоколы — разбивают всё на части и склеивает заново, потому что каждый пакет пронумерован.
Пакет может быть размером от 1 до 64 килобайт, но в нём всегда есть несколько обязательных полей — по ним протокол понимает, кому какие данные нужно передать.
Гарантированная доставка пакетов
Протокол TCP следит за тем, пришли к получателю отправленные данные или нет и нужно ли их отправить заново. Для этого в нём есть механизм подтверждения: после очередной порции данных получатель отправляет сигнал, что данные получены, а отправитель дожидается этого сигнала.
Если сигнала подтверждения нет, то протокол отправляет этот же пакет данных ещё раз — мало ли что. Если подтверждения нет несколько раз подряд, то протокол выдаёт сообщение об ошибке и закрывает соединение.
Но если подтверждать получение каждого пакета, то на это будет уходить очень много времени: при скорости сети в 100 мегабит в секунду реальная скорость передачи данных будет около 50 килобит в секунду. А всё потому, что отправитель не будет передавать новые данные, пока не получит подтверждение по предыдущему пакету. В итоге почти всё время сеть будет занята не передачей данных, а подтверждениями и подтверждениями подтверждений.
Чтобы не было таких задержек, в протоколе предусмотрели кумулятивное и выборочное подтверждение:
- В кумулятивном получатель подтверждает приём последнего пакета и всех предыдущих.
- В выборочном — подтверждает диапазон пакетов, которые он получил. Если какого-то пакета нет в подтверждении, отправитель посылает его заново. Это одна из оптимизаций работы протокола, и в TCP таких оптимизаций много — благодаря им у нас шустрый интернет с быстрыми подтверждениями.
По умолчанию используется кумулятивное подтверждение, например, каждых 100 пакетов:
И что с того?
Связка протоколов TCP/IP делает так, чтобы мы могли отправить данные куда-то в интернет и они точно дошли. Всё это происходит быстро, незаметно для нас, где-то в глубинах наших компьютеров и телефонов.
При этом связка TCP/IP — не единственная, которая бывает. Например, есть ещё UDP/IP, которая чаще используется в онлайн-играх и видеосозвонах — там нет подтверждения получения пакетов, просто данные льются без конца.
Если вы не инженер или не разработчик сетевых систем, вам не нужно в этом разбираться — вы просто пользуетесь этим каждый день. Но зато теперь вы знаете, как это работает.
Источник: thecode.media
Как поднять свой socks5-сервер для Telegram
Для работы простого socks5-сервера вам понадобиться виртуальная машина на каком-нибудь хостинге и Ubuntu 16.04 LTS. Настраивать будем Dante Server 1.4.2, эта версия поддерживает работу с авторизованными пользователями и в ней исправлены многие ошибки.
SOCKS — сетевой протокол, который позволяет клиент-серверным приложениям прозрачно использовать сервисы за фаерволами. SOCKS базируется на стандарте TCP/IP и позволяет работать с любыми протоколами (версия Socks 4 – с TCP, Socks 5 – с TCP и UDP). SOCKS proxy просто передает данные от клиента к серверу, не вникая в содержимое самих данных (поэтому он может работать с HTTP, FTP, SMTP, POP3, NNTP, etc.).
1. Установка Dante Server
Сразу включим учётную запись администратора:
sudo su
Скачаем и разархивируем исходники сервера:
cd /opt wget http://www.inet.no/dante/files/dante-1.4.2.tar.gz tar -xvf dante-1.4.2.tar.gz cd dante-1.4.2/
Установим необходимые утилиты и зависимости:
apt-get install gcc libwrap0 libwrap0-dev libpam0g-dev make checkinstall
Подготовим файлы dante для компиляции:
mkdir /opt/dante ./configure —prefix=/opt/dante
Получим статус конфигурации:
Client: Enabled Server: Enabled Preloading: Enabled Libwrap: Enabled BSD Auth: Disabled, usable bsd_auth.h not found PAM: Enabled GSSAPI: Not found/disabled KRB5: Not found/disabled SASL: Not found/disabled UPNP: Not found/disabled Compatability: issetugid setproctitle strlcpy strvis Modules: redirect: Not found bandwidth: Not found ldap: Not found
make
Упаковываем в пакет и устанавливаем:
checkinstall
/opt/dante/sbin/sockd -v Dante v1.4.2. Copyright (c) 1997 — 2014 Inferno Nettverk A/S, Norway
2. Настройка сервера
Создадим пользователи и установим пароль:
useradd -s /bin/nologin telegram passwd telegram
Узнаем название сетевого интерфейса:
ifconfig eth0 Link encap:Ethernet HWaddr 00:50:56:bd:74:65 lo Link encap:Local Loopback
Предположим, что он называется eth0 . Пропишем его в конфигурационном файле:
nano /etc/sockd.conf
#logoutput: /var/log/socks.log logoutput: stderr # На каком сетевом интерфейсе и порту обслуживаем socks клиентов internal: eth0 port = 1080 # С какого IP или интерфейса выходим во внешний мир external: eth0 #internal: x.x.x.x port = 1080 #external: x.x.x.x # Используемый метод авторизации клиентов. none — без авторизации. socksmethod: username #socksmethod: username none user.privileged: root user.notprivileged: nobody client pass < from: 0.0.0.0/0 to: 0.0.0.0/0 log: error connect disconnect >client block < from: 0.0.0.0/0 to: 0.0.0.0/0 log: connect error >socks pass < from: 0.0.0.0/0 to: 0.0.0.0/0 log: error connect disconnect >socks block < from: 0.0.0.0/0 to: 0.0.0.0/0 log: connect error >
Ещё один вариант настройки конфигурации:
logoutput: syslog stdout /var/log/sockd.log internal: x.x.x.x port = 1080 external: x.x.x.x socksmethod: username user.privileged: root user.unprivileged: nobody user.libwrap: nobody client pass < from: 0.0.0.0/0 to: 0.0.0.0/0 log: error >client block < from: 0.0.0.0/0 to: 127.0.0.0/8 log: connect error >socks pass < from: 0.0.0.0/0 to: 0.0.0.0/0 command: connect log: error socksmethod: username >
3. Автоматический запуск сервера
Для того, чтобы запуск сервера происходил при старте системы, соберём модуль запуска. Для этого необходимо создать файл /etc/init.d/sockd с таким содержимым:
Сделаем скрипт запуска исполняемым:
chmod +x /etc/init.d/sockd
Обновим конфигурацию демонов:
systemctl daemon-reload
Источник: levashove.ru
Автоматические настройки прокси для Телеграма: как подключить и установить через сервер
FAQ
Автор fast12v0_steleg На чтение 6 мин Просмотров 953 Опубликовано 15.08.2020
Уже 4 года длится борьба Роскомнадзора с Телеграм. В основном мессенджер работает без дополнительных усилий со стороны пользователя, но иногда приложение очень долго грузится или вообще не заходит в сеть.
Тогда требуется подключение через proxy-сервер. Что это, как легко установить связь на айфонах, смартфонах с Андроидом, для десктопа – разберемся в статье.
Что такое прокси для Telegram
Это программное обеспечение, позволяющее выполнять запросы абонента от своего имени. Устанавливается на компьютер или другое устройство, работающее в сети.
Иначе говоря, proxy – это анонимайзер, скрывающий адрес пользователя, подставляющий вместо истинного IP свой.
Блокираторы запрос, отправленный через proxy, воспринимают как поступивший из-за рубежа и пропускают его.
Как подключиться через прокси
Для того чтобы воспользоваться proxy-сервером, его надо сначала найти. Это можно сделать, не выходя из мессенджера или запросив в поисковых системах.
Рассмотрим, как провести настройку Телеграмма через прокси на разных устройствах.
На компьютере
Есть три варианта настройки прокси для Телеграм с десктопа:
- через bot – автоматический сервис, который ищется в интернете или самом Telegram;
- через установки компа, где надо вводить определенные данные;
- разместить прокси на собственном сервере (для специалистов).
MTPROTO
Это передовой протокол от команды Телеграм, разработанный специально для обхода блокировок. По этой системе может работать только Telegram, другие программы и приложения подключить через MTProto не получится.
Для того чтобы добавить MTProxy, требуется обновить мессенджер до последней версии. Затем действуем по одному из трех алгоритмов:
1. Найти bot в интернете или в поисковой строке Телеграм, для этого надо написать запрос «Список MTPr» или «бот MTPro», выбрать один из вариантов и нажать на кнопку «подключить», после чего программа все сделает сама.
2. Найти список proxy c данными для соединения вручную, после чего:
- для Telegram Desktop (Windows или Linux) надо зайти в настройки, перейти в раздел «Дополнительные настройки», выбрать подпункт «Способ подключения». В типе соединения кликаем на MTProto. В появившемся поле прописываем адрес хоста, порт и секрет.
- для MacOS в настройках выбираем раздел «Конфиденциальность и безопасность», где кликаем на «использовать proxy», далее вводим название хоста, порт и секрет.
3. Установить MTProto на собственный сервер. Плюсы этого варианта:
- позволяет рекламировать личный канал (добавлять его всем абонентам, работающим через прокси);
- можно создавать до 16 криптографических ключей и поставлять сервис 60 тыс. пользователей, что актуально для компаний;
- не требуется регистрация с введением логина и пароля.
Socks5
Так называется последняя на сегодня версия сетевого протокола, включение которой позволяет пользователю находиться за границей междусетевого экранирования. Доступно для версий Telegram Decktop, Mac, iOS, Android.
Настроить прокси в Телеграме по протоколу Socks 5 также можно тремя способами:
- Найти бот, который сам проведет установку, самостоятельно ничего настраивать не надо.
- Через настройки. Входим в «Дополнительные настройки», затем кликаем на «Способ подключения». Выбираем соединение TCP через Socks. Вводим значения в поля «хост», «порт».
- Добавить proxy на собственный сервер, для чего скачать (бесплатно) и установить дистрибутив прокси-сервера для Linux. Затем включить прокси в Телеграмме.
HTTP
Это стандартный протокол для передачи данных в виде гипертекстовых документов. Обычно он используется автоматически и никак не может помочь в обходе блокировок.
На телефоне с iOS
На iphone, ipad также можно подключиться к прокси автоматически, используя бот. Или активировать proxy через ввод сведений в настройках:
- заходим в раздел «Данные и диск»;
- среди типов соединения выбираем «Прокси»;
- кликаем по ссылке «Добавить»;
- затем обозначаем нужный протокол MTProto или Socks 5 (HTTP отсутствует);
- пишем название выбранного сервера, порт, для MTProxy – ключ;
- сохраняем.
На смартфоне с Android
В этом случае надо делать то же самое, что и на айфоне: выбираем bot в поиске мессенджера для автоматического подключения, или если есть параметры конкретного proxy, вводим сведения вручную:
- в меню настроек выбираем «Данные и диск»;
- затем кликаем по пункту «Настройки прокси»;
- нажимаем «Добавить прокси»;
- находим нужный протокол;
- для MTProto вводим название сервера, порт и ключ, для Socks5 – адрес сервера и порт;
- сохраняем.
Для того чтобы выключить прокси в Телеграме, в настройках просто надо поставить положение бегунка на «выкл» для Андроид или галочку напротив «Выключено» для iOs.
Подключение веб-версии
Выполнить вход через онлайн-системы удастся, только если уже есть зарегистрированный аккаунт на телефонном номере.
Для захода в web-версию мессенджера предлагается использовать ссылки t.me или зеркала t-do.ru, tlgg.ru. Для Веба также существуют прокси-боты. Еще можно настроить компьютер на работу через прокси.
Для того чтобы начать общаться в Telegram, надо зайти в веб-версию, ввести телефонный номер, дождаться кода из СМС, внести его и начинать общаться.
Список прокси-серверов в Telegram
Найти proxy можно в интернете. Поисковые системы выдадут большое количество сайтов с выбором протокола и страны нахождения сервера. Например, http://foxtools.ru/Proxy.
Но чаще всего удобнее и быстрее искать proxy в самом Телеграм. Для этого в поисковой строке надо набрать «Список прокси». В этом случае в выдаче появится несколько каналов с обновляемыми сервисами. Например, https://t.me/tgsocks5list или https://t.me/dteamproxy.
Еще более удобный способ подключения – через bot, найти который можно, набрав «Бот (название протокола)» или «Прокси тут» (https://t.me/proksitut, https://t.me/proxy_tut, https://t.me/ProxySdes).
Решение проблем с подключением
Несмотря на своевременную установку proxy на устройство, иногда бывают сбои, соединение с прокси Telegram не устанавливается. Длительное отсутствие включения, бесконечное ожидание обновления могут свидетельствовать о том, что:
- Нет соединения с интернетом.
- Возможно, proxy перестал работать или перегружен, тогда необходимо перейти на другой сервер с помощью бота.
- Для десктопа нет допуска на работу мессенджера («Панель управления» / «Брандмауэр Windows / «Разрешения взаимодействия с приложениями или компонентами»). Если допуск отсутствует, то его надо запросить.
Прокси – это удобный и надежный инструмент для обхода блокировок мессенджера.
Есть три варианта настройки этого сервиса для бесплатного использования: для новичков, продвинутых абонентов и «гуру» сети.
В любом случае если Телеграм «завис», не принимает и не отправляет сообщения, нужно подключить любой доступный в сети и мессенджере прокси-сервер.
Источник: stelegram.ru