Tcp с нестандартным socks5 прокси. Удаленный доступ через прокси. Установка SOCKS сервера

Анонимность в сети — тема не новая. И вы наверняка устанавливали к себе на комп прогу типа A4Proxy, SocksChain
и им подобные. Лично я не люблю, когда для работы с проксями нужна какая-то отдельная прога. Во-первых
некрасиво, когда много окон на панели задач или значков в трее, во-вторых проги эти требуют кряков, а их
искать лень 🙂 Поэтому я и написал классы для поддержки SOCKS5-серверов, которые я теперь могу заюзать
в какой-нибудь своей проге. И вот теперь хочу всем рассказать, как это делать.

То, к каким серверам и по каким протоколам мы может обращаться через прокси, зависит от
типа этого прокси, т. е. протокола, по которому мы обращаемся к нему. Типов проксей существует нескольно:
HTTP-proxies, SOCKS4, SOCKS5, SSL CONNECT и т.д. HTTP-proxy наиболее распространены, их легче всего найти и инете, но работают они только с HTTP, к тому
же могут вставлять в заголовки запроса адрес клиента, то есть быть
не анонимными. Протокол SOCKS наиболее примечателен тем, что он инкапсулирует протоколы не прикладного, а
транспортного уровня, т.е. TCP/IP и UDP/IP. Поскольку только по этим протоколам возможна работа в Сети,
через SOCKS можно работать с любыми серверами, в том числе и такими же SOCKS и,
таким образом, организовывать цепочки SOCKS-серверов. По этой же причине ВСЕ SOCKS-сервера анонимны — невозможно
на уровне TCP/IP и UDP/IP передать дополнительную информацию, не нарушив работу вышестоящего
протокола.

Мы остановимся на протоколе SOCKS5. Его описание лежит в
. Для SOCKS5 стандартным является порт 1080, но, впрочем, на этот
стандарт никто особого внимания не обращает. Каждое SOCKS-соединение проходит стадию аутентификации, если она требуется, затем клиент
посылает команду. Команда может быть одна из трех:
CONNECT — исходящее TCP-соединение с указанным адресом. Использование этой команды мы рассмотрим
подробнее, так как она нужна наиболее часто. BIND — открыть порт (сервер выбирает порт и посылает клиенту адрес и порт) и принять TCP соединение.
Серверу может понадобится знать, кто будет соннектиться. На этот случай нужно передать эту инфу. UDP ASSOCIATE — открыть UDP-порт (сервер выбирает порт). Данные, предназначенные для конечного
хоста и данные от него идут тоже по UDP. Данные в SOCKS5 передаются в бинарном виде, а не в текстовом, как в HTTP, SMTP, POP3 и др.

Описание протокола

Сконнектившись с сервером, клиент шлет пакет, в котором указана версия протокола и поддерживаемые
методы аутентификации. Этот пакет имеет следующий формат:

BYTE Version;
BYTE nMethods;
BYTE methods

Версия должна быть 5. Каждый элемент methods определяет не только метод аутентификации, но и способ шифрования данных,
если оно используется. Из этих методов сервер выбирает один. Можно указывать любое количество методов, но, если сервер не требует аутентификации, то никакие методы,
кроме 0x00 (не использовать ни аутентификацию, ни шифрование) не потребуются. В ответ сервер шлет пакет следующего содержания:

BYTE Version
BYTE method,

где method — выбранный сервером метод или 0xFF (ни один из предложенных методов не поддерживается). Если метод 0x00, то можно сразу посылать команду.

Пакет команды имеет следующий формат:

BYTE Version; // 5
BYTE Cmd ; // 1 — CONNECT
BYTE Reserved; // 0

BYTE addr;
WORD port; // Байты в сетевом порядке, т. е. htons(Port);

Если используется доменное имя, то сначала идет байт длины, а затем строка без завершающего нуля.

Сервер посылает ответ:

BYTE Version; // 5
BYTE Rep ; // 0 — Ok
BYTE Reserved; // 0
BYTE AType; // 1 — IPv4; 3 — domain name; 4 — IPv6
BYTE addr;
WORD port;

Здесь адрес и порт — это адрес и порт, видимые хосту. Возвращается, как правило, IP-адрес, а не доменное
имя. Этот адрес может отличаться от того, по которому мы обращаемся к серверу, особенно, если сервер
используется по назначению, т. е. для выхода из локалки в инет. Если Rep не ноль, т. е. ошибка, то закрываем соединение, в
противном случае работаем с хостом. Мы не используем шифрование, поэтому просто передаем и принимаем данные, как при обычном соединении. Если одна из сторон закроет соединение с socks-сервером, то он сразу же закроет соединение с другой
стороной. Одно socks-соединение инкапсулирует одно TCP-соединение или попытку его установления,
так что если использовать socks для анонимного сканирования портов, то эта
процедура может занять пол дня.

Кодинг

Поскольку socks инкапсулирует TCP, целесообразно сделать класс socks-соединения производным от
класса сокета, но MFCшный CSocket не подходит, т.к. у него все методы
не виртуальные. Напишем свой класс сокета и назовем его, скажем, CTSocket

#include

class CTSocket
{
public:





virtual void Close();
virtual unsigned long GetHost(); // Узнать свой адрес. Это тоже может понадобиться.

private:
SOCKET sock;
};

Реализацию этого класса каждый сможет написать сам (кто не знает как, RTFM MSDN), так что не буду ее
рассматривать. Теперь напишем класс socks-соединения. Он будет поддерживать только самый необходимый набор
функций: поддерживается только команда CONNECT, не поддерживается аутентификация и SOCKS-сервер
задается только IP-адресом, а не доменным именем. Больше в одной статье не поместится.

Class CSocksSocket: public CTSocket
{
public:
virtual BOOL CreateSocket();
virtual BOOL Connect(unsigned long ip, unsigned short port);
virtual BOOL Connect(LPCSTR name, unsigned short port);
virtual int Send(const char* str, int len);
virtual int Recv(char* buf, int max);
virtual BOOL Close();
virtual unsigned long GetHost();

CTSocket* pSocket;
unsigned long socks_ip;
unsigned short socks_port;

private:
char buffer; // Такого размера точно хватит
unsigned long l_ip; // Адрес, возвращаемый функцией
GetHost()

};

// Реализация
BOOL CSocksSocket::CreateSocket()
{
if (!pSocket->CreateSocket()) return FALSE;
if (!pSocket->Connect(socks_ip, socks_port)) return FALSE;
buffer = 5; // Ver
buffer = 1; // 1 method
buffer = 0; // no auth
pSocket->Send(buffer, 3);
int n = pSocket->Recv(buffer, 2);
if (n != 2) return FALSE;
method 0 not supported
return TRUE;
}

BOOL CSocksSocket::Connect(unsigned long ip, unsigned short port)
{
buffer = 5; // Ver
buffer = 1; // CONNECT
buffer = 0; // Reserved
buffer = 1; // IPv4
*((unsigned long*)(buffer + 4)) = ip;
*((unsigned short*)(buffer + 8)) = port;
pSocket->Send(buffer, 10);
int n = pSocket->Recv(buffer, 10);
if (n != 10) return FALSE;
if (buffer != 0) return FALSE; //
Can’t connect

return TRUE;
}

BOOL CSocksSocket::Connect(LPCSTR name, unsigned short port)
{
buffer = 5;
buffer = 1;
buffer = 0;
buffer = 3; // Domain name
int m = strlen(name);
buffer = m; //
Length byte
memcpy(buffer+5, name, m); //
Копируем строку без завершающего нуля
*((unsigned short*)(buffer + 5 + m)) = port;
pSocket->Send(buffer, m + 7);
int n = pSocket->Recv(buffer, 10);
if (n != 10) return FALSE;
if (buffer != 0) return FALSE;
if (buffer != 1) return FALSE; //
Будем требовать, чтобы нам сказали IP, а не что-нибудь другое.
l_ip = *((unsigned long*)(buffer + 4));
return TRUE;
}

int CSocksSocket::Send(const char* str, int len)
{
return pSocket->Send(str, len);
}

int CSocksSocket::Recv(char* buf, int max)
{
return pScoket->Recv(buf, max);
}

void CSocksSocket::Close()
{
pSocket->Close();
}

unsigned long CSocksSocket::GetHost()
{
return l_ip;
}

// Ну, а теперь тестовая прога
void main()
{
WSADATA wsadata;
CTSocket tsock;
CSocksSocket ssock(&tsock);

WSAStartup(MAKEWORD(2,2), &wsadata);

ssock.socks_ip = inet_addr(«10.10.10.10»); // Впишите сюда нужный адрес
ssock.socks_port = 1080; //
Впишите сюда порт

if (!ssock.CreateSocket()) return; // Can’t connect to socks
// or auth required
if (!ssock.Connect(«www.mail.ru», htons(80))) return; //
www.mail.ru
// is inaccessible
LPSTR q = «HEAD / HTTP/1.1\xD\xAHost: www.mail.ru:80\xD\xAUser-Agent: xakep\xD\xA\xD\xA»;
ssock.Send(q, strlen(q));

char buf;
int n = ssock.Recv(buf, 1000);
buf[n] = 0;
printf("%s", buf);

На сегодняшний день существует несколько основных технологий, целью которых является сокрытие IP-адреса. В данной статье у вас будет возможность ознакомиться одним из них, а именно с VPN.

В первую очередь для выполнения этого процесса необходимо узнать не только личный IP-адрес, но и серверный адрес DNS. В принципе, в получении данной информации нет каких-либо трудностей, достаточно, к примеру, посетить сайт www.whoer.net.


Даже если вы захотите изменить данные своего IP-адреса, недостаточно использовать VPN или Socks, так как сегодня существует масса технологий, с помощью которых можно без проблем его выявить. Итак, давайте вернемся к нашей теме и более детально изучим способ VPN.

VPN (Virtual Private Network, виртуальная частная сеть)


В первую очередь стоит отметить то, что VPN-соединение внешнего типа практически не имеет отличий от обычного подключения к той или иной локальной сети. В данном случае приложения никаким образом не почувствуют никакой разницы, следовательно будут применять его в качестве «входа» на просторы интернета.

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


Действие VPN-сервера заключается в том, что он при получении пакета произведет его расшифровку, разборку и выполнит необходимое действие от своего лица. После получения ответа от ресурса удаленного типа, он поместит его непосредственно в GRE-пакет. После этого произведет зашифровку и отправку клиенту.

Необходимо помнить о том, что для повышения степени безопасности необходимо систематическое шифрование данных, которые передаются. Немаловажно то, что посредством использования MPPE (Microsoft Point-to-Point Encryption) может быть выполнена зашифровка PPTP-трафика.

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

OpenVPN представляет собой свободную технологическую реализацию VPN, организация которой производится с учетом интернетовского общепринятого протокольного стека TCP/IP. Таким образом, можно полноценно быть уверенным в том, что соединение будет выполнено и с теми провайдерами, которые собственно не поддерживают необходимый PPTP.

В том числе деятельность OpenVPN производится в случае отсутствия у вас личного IP-адреса. Эта особенность является отличительной, к примеру, от PPTP, которому в обязательном порядке необходимы сразу две сетевые сессии.

Со временем в сфере браузеров создаются новые разработки. Браузеры, которые мы сегодня используем, регулярно улучшаются. Когда-то давно, на заре их появления в Интернете и сфере IT в целом, браузеры не поддерживали многих функций, например, работу с SOCKS прокси серверами. Отсюда, появилась необходимость в применении отдельных приложений с соответствующим функционалом.

В настоящее время отпадает необходимость в любых приложениях. Благодаря обновлению наших любимых браузеров сейчас они поддерживают работу с прокси и их настройку.

Получение доступа к SOCKS прокси

Для использования SOCKS прокси через браузер сперва необходимо получить к ним доступ. Сделать это можно на сайте .

Выполните следующие шаги:

1. Откройте страницу и войдите под своим аккаунтом.

2. После входа на сайт открывается админпанель, на которой можно выполнить поиск прокси по определенным параметрам либо отобразить список всех доступных прокси.


3. Самый простой способ получения прокси: опция List Proxys. Нажмите кнопку с этой надписью. Откроется страница со списком всех доступных в данный момент прокси серверов.


4. Нажмите на любой прокси в колонке HostName, появится всплывающее окно.

5. Для отображения адреса и порта выбранного прокси сервера нажмите click here to view . В окне появится текущий статус прокси. Если проверка прошла успешно, скопируйте его адрес и порт. В противном случае, выберите другой прокси из списка найденных прокси серверов.

6. У вас есть SOCKS прокси, который можно использовать в работе. В нашем случае (на примере) - это 1.36.114.198:53052

7. Теперь приступаем к настройке браузера для использования SOCKS прокси.

Работа с SOCKS прокси в FireFox

1. Для настройки SOCKS в браузере FireFox воспользуйтесь панелью меню.

2. Откройте меню Настройки > Дополнительные .

3. Затем выберите вкладку Сеть и нажмите кнопку Настроить . Откроется новое окно, в котором необходимо ввести данные прокси сервера. Нажмите Ручная настройка сервиса прокси и снимите флажок с опции Использовать этот прокси-сервер для всех протоколов.

4. Введите данные прокси сервера и нажмите OK.


5. Убедитесь, что ваш IP-адрес изменился, по ссылке http:// ipleak. com .


Работа с SOCKS прокси в браузере Opera (ver 13.0+)

1. Откройте меню Инструменты > Настройки .

2. Выберите вкладкуБраузер .

3. Нажмите кнопку Изменить настройки прокси-сервера .

5. Во вкладке Соединения Настройки
Настройки LAN) .

6. Поставьте галочку напротив Использовать прокси-сервер

7. Затем нажмите Дополнительно. SOCKS прокси-сервера.

8.Нажмите OK , и еще раз OK в другом окне. Проверьте ваш текущий IP-адрес на сайте http://ipleak. com :


Работа с SOCKS прокси в браузере IE

1. Откройте меню Инструменты, выберите Опции интернета.

2. Во вкладке Соединения нажмите кнопку Настройки .

3. Появится всплывающее окно с настройками.

4. Поставьте галочку напротив Использовать прокси-сервер , что позволит задать параметры вашего прокси-сервера.

5. Затем нажмите Дополнительно. Здесь можно ввести параметры SOCKS прокси.


6. Нажмите OK в каждом открытом окне настроек (всего 3 раза) для сохранения изменений.

7. Настройки выполнены. Проверьте свой текущий IP-адрес на сайте http:// ipleak. com .


Работа с SOCKS прокси в браузере Chrome

1. Нажмите иконку «Инструменты» и выберите «Настройки » для входа в меню настроек.

2. Перейдите на закладку Дополнительные настройки.

3. Нажмите кнопку Изменить настройки прокси-сервера .

4. Появится всплывающее окно с настройками.

5. Во вкладке Соединения выберите ваше подключение и нажмите Настройки .
(если вы подключаетесь через локальную сеть или роутер - нажмите Настройки LAN)

6. Поставьте галочку напротив Использовать прокси-сервер , что позволит задать параметры вашего прокси-сервера.

7. Затем нажмите Дополнительно. В открывшемся окне введите данные SOCKS прокси-сервера.


8. Для сохранения настроек нажмите несколько раз OK.

9. Проверьте свой текущий IP-адрес:


В то время как стандартный HTTP прокси отлично подходит для просмотра web-страниц, SOCKS прокси ориентированы на другое программное обеспечение, такое как электронная почта, мессенджеры и даже интернет-телефония, добавляя в них еще один уровень безопасности. David Koblas изобрел SOCKS прокси пока работал над MIPS Computer Systems, предшественнике Silicon Graphics. Koblas представил архитектуру SOCKS в 1992 году и использования нового типа прокси очень быстро распространилось.

Инструкция по использованию SOKCS прокси

1. Получите доступ к списку SOCKS прокси-серверов. Есть два способа поиска. Первый это поиск сайтов, таких ка Public Proxy Servers для получения информации о бесплатных прокси-серверах. Другой способ - подписаться на частную службу прокси-сервера, к примеру Unique Internet Services, которая предоставляет доступ к тысячам частных SOCKS прокси.

2. Загрузите и установите бесплатную копию Proxy Firewall. Перейдите к proxyfirewall.org, в нижней части страницы нажмите на ссылку "Download". Выберите команду "Run" в открывшемся окне. Когда программа установки завершится, вам будет предложено перезагрузить компьютер. Сохраните все открытые файлы и перезагрузите компьютер.

3. Откройте Proxy Firewall и добавьте ваши прокси в список. Перейдите к вкладке "Private Proxies", если вы являетесь участником Unique Internet Services, а затем введите имя пользователя и пароль для автоматического импорта тысячи прокси-серверов. Если же вы не являетесь участником Unique Internet Services, вы можете использовать приложение, нажав "Add Proxies" в левом нижнем углу, а затем вручную введя IP-адрес и номер порта для каждого SOCKS прокси-сервера.

4. Задайте разрешение для ваших программ. Первый раз при открытии каждой программы после установки Proxy Firewall, программа обнаружит Proxy Firewall и спросит вас, как действовать дальше. Вы можете выбрать прямой доступ к интернету или выбрать подключение через SOCKS прокси . Proxy Firewall будет помнить настройки для каждой программы на вашем компьютере, но их можно будет поменять в любое время, нажав на вкладку "Rules" в Proxy Firewall.

Приветствую! Сегодня мы будем настраивать socks5. Довольно таки часто задают такой вопрос -Как настроить socks5 прокси. Хотелось бы отметить что существенных отличий от настройки от http нет. Единственное отличие это немного видоизменён основной конфигуратор 3proxy.
Что же- начнём.
Для начала покупаем сервер. Я буду разбирать на примере хостинга с которым привык работать. Указываю реф ссылку, потому что именно тем, кто зарегистрировался по рефке я готов помочь в решении проблем, возникших при настройки прокси. А так же я предоставлю свой личный промо код, который даст вам 250 руб бонусом при пополнение баланса от 250 руб.

Теперь нам надо пополнить баланс (минимальный платёж 250 руб), но нам надо пополнить на 270 руб на всякий случай, чтобы воспользоваться промо-кодом и получить ещё + 250 руб бонусом. Переходим во вкладку баланс и пополняем счёт удобным для вас способом.

После того как на счёт поступили 270 руб, воспользуемся бонус кодом. Для этого опять же во вкладке баланс выбираем картинку бонус код

и вводим мой бонус код «proksik»

И получаем бонус))) Теперь у вас на счету должна появится цифра 516 руб, которой хватит вам на 133 дня

Дожидаемся активации сервера (сервер был заказан в момент регистрации).
Если сервер активен то он появится во вкладке «сервер» и ему будет при вязан ip

Она подгрузится моментально. Теперь нам надо переустановить ОС на нужную нам Ubuntu 16-04 x86-64

Переходим опять во вкладку «сеть» и жмём на «переустановка»

Выбираем Ubuntu 16-04 x86-64 и переустанавливаем ОС.

На почту придёт новое письмо с данными от сервера. Нас интересует пароль от SSH.

Подготовительные работы закончены. Приступим к настройки самих прокси. Как мы уже знаем у нас есть сервер и /64 ipv6 подсеть.

Нам потребуется ssh клиент. У кого нет качаем .

Устанавливаем его и запускаем. Вводим наш ip от сервера, пароль и логинимся.

Открываются консоль и ftp клиент. Сворачиваем лишнее и оставляем только чёрную консоль. Работать будем тут.
Всё что требуется от вас -это чётко повторять и не допускать маленьких ошибок и идти последовательно шаг за шагом.
Для того чтобы вставить команду в консоль-просто тапаем на консоль правой кнопкой мышки (ПКМ)

Приступаем. Копируем первую команду и вставляем в консоль. Жмём Enter.

apt-get -y install vim git gcc g++ make

Открываем конфигуратор sysctl.conf

И в конце документа (для перемещения используем стрелочки на клавиатуре) добавляем следующее

net.ipv6.ip_nonlocal_bind = 1

И сохраняем файл, нажав сочетаний клавиш ctrl+O, Enter, ctrl+X

Применяем изменения, для этого вводим команду ниже и жмём Enter

Скачиваем и компилируем последнюю версию ndppd

cd ~ git clone https://anonscm.debian.org/cgit/collab-maint/ndppd.git cd ~/ndppd make all && make install

Создаем конфигурационный файл, для этого используем команду ниже

Вставляем содержимое, изменив подсеть на свою

route-ttl 30000 proxy eth0 { router no timeout 500 ttl 30000 rule 2a07:14c0:0:8198::/64 { static } }

Сохраняем конфиг, нажав сочетаний клавиш ctrl+O, Enter, ctrl+X

Запускаем ndppd.conf

ndppd -d -c /root/ndppd/ndppd.conf

В консоли должны появится 3 строчки как на скрине ниже

Переходим к настройки сети

Добавляем адрес на ens3, изменив свою подсеть в команде что написана ниже

ip -6 addr add 2a07:14c0:0:8198::2/64 dev eth0

На скрине ниже видно что мы берём свою подсеть и вставялем после двоеточия цифру 2

Добавляем маршрут по умолчанию на ens3

ip -6 route add default via 2a07:14c0:0:8198::1

Так же берётся просто подсеть (4 сектора) без /64, после двоеточия прописывается цифра 1

И прикрепляем нашу сеть к ens3

ip -6 route add local 2a07:14c0:0:8198::/64 dev eth0

Тут меняется только подсеть в таком виде как нам выдал хостинг.

Cкачиваем и устанавливаем 3proxy (можете копировать сразу 4 команды и после отработки 3 команд нажать enter)

cd ~ git clone https://github.com/z3APA3A/3proxy.git cd 3proxy/ make -f Makefile.Linux

Создаем файл ip.list с нужным количеством ipv6 адресов сгенерированных в случайном порядке.
Для этого скачиваем c моего сайта скрипт генерации файла ip.list

wget http://сайт/random-ipv6_64-address-generator.sh

Сменим права на скрипт

chmod +x random-ipv6_64-address-generator.sh

Правим скрипт

nano random-ipv6_64-address-generator.sh

Нам надо поменять 2 значения
MAXCOUNT=500
network=2a07:14c0:0:8198

MAXCOUNT это число ip которые мы хотим сгенерить а network- это наша подсеть (4 сектора)

Редактируем и сохраняем файл, нажав сочетаний клавиш ctrl+O, Enter, ctrl+X

Сгенерируем ip и запишем их в ip.list

./random-ipv6_64-address-generator.sh > ip.list

Проверим пинг 1 из адреса. Для этого посмотрим ip которые только что сгенерили

Появится список наших ip. Скопируем один из адресов, выделив его мышкой.

После замените в команде ниже ip на ваш

ping6 -I 2a07:14c0:0:8198:4a50:b855:570a:6ac7 ipv6.google.com

И вставьте в консоль, нажмите enter. Должны пойти пинги как на скрине ниже

Чтобы остановить пинг, нажмите ctrl+C

Скачиваем скрипт 3proxy.sh на сервер

wget http://сайт/skript/3proxy.sh

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

Отредактируем его

После редактирования сохраняем файл, нажав сочетаний клавиш ctrl+O, Enter, ctrl+X

Запускаем скрипт

Увеличиваем лимиты

ulimit -n 600000 ulimit -u 600000

Запускаем прокси

/root/3proxy/src/3proxy /root/3proxy/3proxy.cfg

Чистим файл автозагрузки и открываем его

echo "" > /etc/rc.local nano /etc/rc.local

Приведём его к виду (4,5,6 строчки мы уже редактировали, когда настраивали сеть, можете скопировать от туда и вставить оставив впереди /sbin/)

#!/bin/bash ulimit -n 600000 ulimit -u 600000 /sbin/ip -6 addr add 2a07:14c0:0:8198::2/64 dev eth0 /sbin/ip -6 route add default via 2a07:14c0:0:8198::1 /sbin/ip -6 route add local 2a07:14c0:0:8198::/64 dev eth0 /root/ndppd/ndppd -d -c /root/ndppd/ndppd.conf /root/3proxy/src/3proxy /root/3proxy/3proxy.cfg exit 0

Сохраняем файл, нажав сочетаний клавиш ctrl+O, Enter, ctrl+X

Наши прокси готовы, осталось нам сформировать полный прокси лист. Для этого я использую обычный xlsx файл. Прокси будут состоять из нашего ip сервера, порта (начальный порт 30000) , логина и пароля, которые мы уже указывали с вами в скрипте. Меняться будет только порт, Остальное будет неизменно. На выходе у нас будут разные ipv6 адреса.

mob_info