Що таке NAT, більшість дізнається хвилин за десять після купівлі. Nginx запустився, curl localhost віддає сторінку, а браузер на ноутбуці просто крутить коліщатко. Нічого не зламано. Просто в сервера немає власного публічного IPv4, і єдині вхідні двері — один проброшений порт для SSH.
Цих одних дверей вистачає на напрочуд багато задач і зовсім не вистачає на деякі дуже поширені. Якщо ви ще обираєте між двома типами тарифів, наша давніша стаття Виділений IP чи NAT VPS ставить одне питання, яке все вирішує. Ця стаття про те, як жити з відповіддю: що NAT-сервер уміє на практиці, де він упирається в стіну і як вибратися, коли ви з нього виросли.
Що ви насправді отримуєте
У NAT-сервера приватна адреса за нашим шлюзом. У кабінеті вказано хост і персональний порт, і під'єднуєтеся ви так:
ssh -p 20123 root@host
Цей порт веде на 22-й порт усередині вашого сервера. Усі інші вхідні порти по IPv4 ззовні закриті, і прокинути додаткові не можна. З вихідними інакше: сервер дістає до будь-чого в інтернеті, крім SMTP-портів 25 і 465 — вони закриті на всіх тарифах, хоч NAT, хоч ні. Усі правила — у розділі Мережа й порти.
І ще одна деталь, важлива для декого: вихідна адреса не ваша власна. Трафік іде через адресу, якою ви не керуєте, тож зворотний DNS для неї не задати й репутацію відправника на ній не побудувати.
Що спокійно працює за одним портом
Усе, що саме починає розмову. А це категорія ширша, ніж здається:
- Боти, які опитують. Telegram-бот на long polling, Discord-бот на gateway-з'єднанні, торговий бот, який ходить в API біржі. Усе це вихідні з'єднання.
- ШІ-агенти. Агентові, який викликає API моделей, ходить сайтами, пише файли й запускає код, не треба, щоб хтось телефонував йому. Йому потрібні CPU, пам'ять і вихід назовні.
- Воркери й парсери. Усе, що забирає задачі з черги, обходить сторінки чи синхронізує дані за розкладом.
- Збиральні машини й раннери. CI-раннери зазвичай самі реєструються на сервері й забирають роботу, тож на NAT їм добре.
Для такого навантаження найдешевшого тарифу чесно досить. Nano — $3 на місяць за 2 vCPU, 1 GB RAM і 15 GB диска; Small — $8 за 4 vCPU, 4 GB і 35 GB. Повний перелік — на окремій сторінці про NAT-тарифи.
Де одного порту замало
Стіна — усе, де з'єднання має почати хтось інший.
Найочевидніше — сайт. Браузери під'єднуються до 443-го порту (і до 80-го заради редиректу), а на NAT-тарифі цих портів ззовні просто немає. Повісити сайт на нестандартний порт теж не вийде — принаймні так, щоб відвідувачі з цим змирилися.
Власний домен з HTTPS упирається в ту саму стіну двічі. DNS-запис можна спрямувати на адресу шлюзу, але нічого з того, що туди прийде, не потрапить на ваш сервер, крім SSH-порту. А звичайний спосіб отримати безкоштовний сертифікат перевіряє сервер на 80-му чи 443-му порту.
Вебхуки ламаються тихо. Сповіщення про платежі, платформа ботів, що надсилає оновлення, Git-сервер, який повідомляє про новий коміт, — усім їм треба достукатися до вас. Бот, який чудово працював на long polling, перестає працювати саме тієї миті, коли ви переводите його на вебхуки.
VPN-точкам, ігровим і поштовим серверам вхідні порти потрібні за визначенням. Як і всьому, що ви хотіли б відкрити колезі в браузері.
Обхідні шляхи, чесно
IPv6. Нові Linux-сервери отримують публічну IPv6-адресу, і на NAT-тарифах вона веде на сервер напряму, на будь-який порт. Якщо всі клієнти вашого сервісу — ваші (ноутбук, інші сервери, моніторинг з IPv6), це чудово працює. Для публічного сайту — ні: частина відвідувачів досі сидить у мережах без IPv6 і сторінку просто ніколи не відкриє. Windows-тарифи поки лише з IPv4.
Тунель. Можна запустити невеликий агент, який тримає вихідне з'єднання з ретранслятором деінде, а той пересилає публічний трафік назад тунелем. Це працює, і для демо чи внутрішньої панелі цілком розумно. Але для чогось важливого ви додали третю сторону в середину кожного запиту й ще одну річ, яка може зламатися о третій ночі.
SSH-тунель для себе. Якщо адмінка потрібна лише вам, не виставляйте її назовні взагалі. Прокиньте її через SSH-порт, який у вас уже є:
ssh -p 20123 -L 8080:localhost:8080 root@host
Потім відкрийте http://localhost:8080 у себе на машині. Це найнедооціненіший прийом на NAT-сервері, і до того ж він безпечніший, ніж панель у відкритому інтернеті.
Моя чесна думка: IPv6 і SSH-тунелі — добрі інструменти. А постійний публічний сервіс, пущений через тунель лише тому, що в сервера немає IPv4, зазвичай означає, що ви з NAT виросли.
Перехід на власний IPv4 без перевстановлення
Нічого перезбирати не треба. Відкрийте сервер у кабінеті, оберіть «Змінити тариф» і тариф із виділеним IP того самого розміру або більший. Сервер один раз перезавантажиться й повернеться з власним публічним IPv4, своїм диском і всім, що ви встановили. Порти 80, 443 і все, що ви відкриєте у фаєрволі, стануть доступні ззовні, а SSH переїде на звичайний 22-й порт. Подробиці — у розділі Зміна тарифу.
Перш ніж натиснути, корисно знати кілька речей:
- Ви доплачуєте пропорційну різницю до кінця поточного періоду, з балансу. Nano-IP коштує $8 на місяць проти $3 за Nano; Small-IP — $16 проти $8.
- Потрібна вільна адреса в локації вашого сервера. Якщо зараз її немає, кабінет скаже про це до будь-якого списання.
- Якщо ви правили мережеву конфігурацію всередині сервера вручну, перевірте її після перезавантаження. На стандартному образі все застосовується само.
- Спершу зробіть бекап. Це лише одне перезавантаження, але дані все-таки ваші.
Де NAT не підходить — і де не підходить IPv4
NAT — неправильний вибір для всього публічного, для всього, що приймає вебхуки, і для всього, чому потрібна фіксована адреса, яку хтось внесе в allowlist. Не витрачайте дні на те, щоб це обійти. Різниця між Nano і Nano-IP — $5 на місяць.
Але й виділений IPv4 — не чарівна паличка. Він не змусить сайт, який блокує адреси дата-центрів, пустити вас, і не врятує парсер від лімітів: такі рішення ухвалюють за мережею, у якій ви перебуваєте, а не за тим, хто ще користувався адресою. А якщо весь ваш проєкт — кілька ботів і агент, купувати IPv4, на який ніхто ніколи не під'єднається, — гроші на вітер.
Якщо ви однаково плануєте переїзд на конфігурацію більшу, у статті Як перенести VPS без простою розписано порядок дій, а Як читати характеристики VPS допоможе під час порівняння тарифів.
Коментарі
Поки немає коментарів. Будьте першим.