Як зайти на Linux-сервер на сірому IP з Android-системи з мобільним інтернетом, використовуючи ipv6

Як зайти на Linux-сервер на сірому IP з Android-системи з мобільним інтернетом, використовуючи ipv6

Почну з того, що в мережі подібного матеріалу для новачків не знайшов. У цій публікації хочу просто описати деякий набутий мною досвід, втім, ця інструкція цілком робоча і я нею зараз користуюся.

У зв'язку з переїздом в новий будинок був отриманий і новий провайдер, що видає тільки сірий IP. Благо NAT його не симетричний. У моєму скромному домашньому сервері на основі Raspberry pi встановлена Debian-подібна система. Я створив собі прості побутові радості: торренто-качалка і невелика файлова хмара, щоб кидати туди по FTP фото, що накопичилися. І абсолютно природно те, що адмініструвати і відправляти фото було зручно безпосередньо зі смартфона на Android. Але сірий IP позбавив мене всього цього, а купувати реальний - статичний або хоча б динамічний бажання не було. Що ж, довелося почати пошук вирішення проблеми. Дуже швидко я натрапив на вихід - ipv6.

Щоб не описувати довго алгоритм моїх дій і пошуків, розповім коротко, що саме було зроблено.

Є багато варіантів з'єднання ipv6 в настільних системах. До них належать сервіс Teredo, 6to4, тунельні брокери. З цього списку для себе в ході експериментів встановив Тередо. Це такий мережевий протокол, який інкапсулює і передає пакети ipv6 через ipv4. Для встановлення в середовищі Debian подібних систем потрібно в консолі виконати:

$ sudo apt-get install miredo

Після завершення встановлення ваш ipv6 вже налаштований і його можна використовувати. Для перевірки можна виконати декілька дій.

Перше

$ ifconfig

У виводі команди ви знайдете teredo серед мережевих пристроїв. Приклад:

teredo Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00

inet6 addr: 2001:0:58af:53d:233a:3cc1:d1d8:1831/32 Scope:Global

inet6 addr: fe80::ffff:ffff:ffff/64 Scope:Link

UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1280 Metric:1

RX packets:448 errors:0 dropped:0 overruns:0 frame:0

TX packets:434 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:500

RX bytes:45434 (44.3 KiB) TX bytes:68646 (67.0 KiB)

Ваша адреса ipv6 - 2001:0:58af:53d:233a:3cc1:d1d8:1831

Друге

$ ping6 ipv6.google.com

Це ми пінгуємо ipv6 версію гугла. Ось тут увага. Якщо пінг не пройшов, то ви, швидше за все, не можете використовувати Teredo, у провайдера симетричний NAT. Якщо пінг пройшов, то:

Третє

http://www.subnetonline.com/pages/ipv6-network-tools/online-ipv6-ping.php

Пробуємо пінгувати сервер зі світу всередину. Для цього зайдіть за наведеним посиланням.

Пропінгувавши і отримавши позитивний відгук, ви можете бути впевнені, що з'єднатися з вашим сервером зовні знову можна.

Тепер переходимо до Android. І ось тут у мене почалися сюрпризи. За замовчуванням Android готовий працювати з ipv6, але провайдер мобільної мережі не готовий мені дати робити це. Тунельні брокери можуть працювати з будь-якою системою, але не з Android. У всякому разі поки. Хоча брокер під ім'ям SixXS на сайі заявляє, що у них є пара клієнтів для Android, але зареєструватися там просто не вдалося, навіть не дивлячись на надані мною достовірні дані, які вони вимагають. Загалом, копаючи мережу, я знайшов щастя, натрапивши на це:

http://www.gogo6.com/photo/gogodroid

Якщо посилання перестане працювати, то програма так і називається - gogodroid. Працює вона як клієнт для тунельного брокера gogo6. Загалом, я ризикнув і встановив цей клієнт. Правда, цей додаток зажадав наявності root. У мене права root є, чи буде вона виконувати свої завдання без цих прав, не знаю. Програмка відкрилася на Android 4.4.2, опції її прості і зрозумілі. За замовчуванням можна запустити клієнт анонімно, не реєструючись у брокера. Трохи подумавши, клієнт отримає свій ipv6 і, власне, тут же можна підключитися до свого сервера через мобільну мережу. Як і раніше. До речі, для підключення я використовую зручний термінальний клієнт JuceSSH.

Відразу ж хочу обмовитися. Протокол Teredo не видає статичного IP, а значить, доведеться турбуватися тим, щоб сервер віддавав куди-небудь змінений IP. Якщо у когось є міркування на цей рахунок - прошу ділитися. Може бути є більш елегантне рішення для з'єднання сервера на Linux і Андроїд в таких умовах?

Дякую за увагу. Всім хорошого пінгу.

Image