Гайд із мереж · 2 хв читання

Що таке CGNAT і як його обійти

Якщо ваша публічна IP починається зі 100.64 або друзі не можуть під'єднатися до вашого сервера — імовірно, провайдер тримає вас за CGNAT, ділячи одну публічну адресу між багатьма клієнтами. Пояснюємо, що це означає і які є реальні обхідні шляхи.

Дефіцит IPv4, перекладений на вас

Carrier-Grade NAT (CGNAT) — це те, як провайдери викручуються з вичерпанням адрес IPv4. Замість того щоб дати кожному абоненту унікальний публічний IP, провайдер саджає сотні чи тисячі абонентів за одну спільну публічну адресу і транслює їхні з'єднання на великому операторському маршрутизаторі. Ідея та сама, що й у NAT вашого домашнього роутера, тільки поверхом вище й на багато домогосподарств одразу. Під час звичайного серфінгу ви цього не помічаєте: вихідні з'єднання працюють нормально. Проблема — у вхідних.

Оскільки публічний IP ви ділите з незнайомцями, доступної ззовні адреси у вас насправді немає. Відкрити порт до своєї машини не вийде, бо що робити з вхідними пакетами на цій спільній адресі, вирішує роутер провайдера, а не ви, — і він гадки не має, якому саме абоненту призначене випадкове вхідне з'єднання.

Як зрозуміти, що ви за ним

Є швидка перевірка. Дізнайтеся свій публічний IP на сайті «what is my IP», а тоді подивіться, який IP показує сторінка стану WAN у вашому роутері. Якщо вони різні — роутер вважає своєю WAN-адресою приватну, а світ бачить іншу — ви за CGNAT. Явна ознака — WAN-адреса з діапазону 100.64.0.0/10, зарезервованого саме під CGNAT, або приватна на вигляд WAN-адреса (10.x, 172.16–31.x, 192.168.x) там, де ви очікували публічну.

Симптоми всі про вхідні з'єднання: проброс портів у роутері нічого не дає, друзі не можуть зайти на гру, яку ви хостите, самостійно підняті сервіси недосяжні ззовні, а BitTorrent ледве повзе без вхідних пірів. Усе, що ви намагаєтеся хостити, не працює, хоча все, що ви відвідуєте, відкривається нормально.

Реальні способи це обійти

Побороти CGNAT зі свого боку не вийде, бо бракує саме того, що лежить у провайдера, — публічного IP, який належить вам. Чесні варіанти: 1) Попросіть провайдера дати публічний/статичний IP; багато хто дає, іноді за невелику доплату. 2) Орендуйте VPS і піднімайте сервіс там або зробіть тунель до нього через WireGuard, щоб публічний IP цього VPS став фасадом для вашого домашнього сервісу — стандартне рішення самохостерів. 3) Візьміть виділений (персональний) IP: адресу, закріплену за вами, яку — на відміну від спільної під CGNAT — реально можна спрямувати на ваш сервіс і внести в білий список.

Спільна логіка та сама, що й з пробросом портів: ліки від «у мене немає справжнього публічного IP» — це отримати такий IP під свій контроль. Спільний вихід VPN для вхідного хостингу цього не дає, а VPS плюс виділений IP — дає: стабільна адреса й порти, які ваші. Це прямий і чесний шлях від «я за CGNAT» до «я доступний ззовні».

FAQ

Відповіді на питання

Як дізнатися, чи я за CGNAT?

Порівняйте публічний IP, який показує сайт «what is my IP», з WAN-адресою у вашому роутері. Якщо вони різні або WAN-адреса роутера з діапазону 100.64.0.0/10 (чи приватного 10/172/192), ви за CGNAT: провайдер ділить одну публічну адресу між багатьма клієнтами.

Чи може VPN вирішити проблему CGNAT?

Спільний вихід VPN для вхідного хостингу — ні, він тягне лише вихідний трафік. Реальні рішення: попросити в провайдера публічний IP, підняти сервіс на VPS і зробити до нього тунель або взяти виділений IP під своїм контролем, який справді можна спрямувати на ваш сервіс.

Отримайте справжній IP під своїм контролем

CGNAT забирає у вас доступну ззовні адресу; VPS із виділеним IP від s4m повертає її — стабільний публічний IP і порти, які ваші, тож вхідні з'єднання просто працюють.

Цю сторінку знаходять за запитами

Реальні пошукові фрази, на які відповідає ця сторінка — за посиланнями відкриються матеріали, що розкривають тему глибше.