ㅤ
Я выспался, можно продолжать радовать вас всякой «нужной» хуйней.
Давно про
nip.io ничего не слышал, но всё чаще встречаю его у ребят с Linux Factory. Суть этого сервиса — автоматически разрешать поддомены в IP адреса без необходимости поднимать свой DNS сервер.
Сейчас как мы делаем, локально редактируем файл
/etc/hosts, прописываем в него какие-то свои локальные айпишники на вымышленные домены. Например:
192.168.0.10 nginx.local
192.168.0.11 grafana.local
И если перейти по адресу
nginx.local попадаешь на виртуалку с айпишником 192.168.0.10. Это всё очевидно.Но опять же как оказалось про манипуляции с hosts файлом многие не знали.
А ведь это база. С помощью которой ты к примеру поднимаешь новый продакшен. Но что бы протестировать его, тебе нужно подкинуть на новый продакшен домен со старого продакшена. А тебе такое сделать не дадут.
Вот и прописываешь себе в
hosts этот домен, указываешь айпишник нового прода, идешь тестишь, если все ок, то меняешь A запись.Вернемся к
nip.io, суть там такая же, прописываешь айпишники и нужные домены и по итогу получаешь такое:nginx.192.168.0.10.nip.io → 192.168.0.10
app.192.168.0.11.nip.io → 192.168.0.11
test.192.168.0.12.nip.io → 192.168.0.12
Теперь открыв
nginx.192.168.0.10.nip.io ты попадешь на 192.168.0.10 без редактирования своего hosts файла.Давай потыкаем
У меня на IP
192.168.10.6 в локалке висит малина со всякими открытыми портами. Пингуем:
ping 192.168.10.6.nip.io
В ответ я получаю такую картинку:
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
Name: 192.168.10.6.nip.io
Address: 192.168.10.6
Отлично, пинг прошел, вернулся локальный айпишник. То есть мы пинганули какой-то глобальный домен, а он привел нас на локальный сервис.
Теперь я направляюсь в браузер и открываю url:
http://192.168.10.6
Мне открывается стартовая страница
nginx. Тут всё понятно и логично. А теперь давай сделаем так.http://nginx.192.168.10.6.nip.io
Хуяк и видим предупреждение:
Для сайта 192.168.10.6.nip.io не поддерживается защищенное подключение
Ну клёвое же. Запрос прошел через глобальный домен и перенаправил запрос в мою локальную сеть. Без необходимости что-то прописывать в
hosts файле.Просто жмем «продолжить» и попадаем снова на стартовую страницу
nginx.Еще вариант с портами:
http://sync.192.168.10.6.nip.io:8384
На порту
8384 у меня висит syncthing и всё отлично открывается. То есть можно пробрасывать запросы через домен прям на порты или в докер контейнеры.А можно прям кучу поддоменов плодить:
http://a.b.c.d.192.168.10.6.nip.io/
И всё будет работать.
А еще можно на такие домены получить SSL сертификаты, но у тебя должен быть белый айпишник.
sudo certbot certonly --standalone -d nginx.204.0.115.50.nip.io
Хуяк и у тебя готовый SSL для домена
nginx.204.0.115.50.nip.io. Ну а если не хочется возиться с certbot можно воспользоваться алтернативами, например acme.sh или caddy.Минусы nip.io:
1. Не поддерживает wildcards, но в большинстве случаев они избыточны. Инструмент заточен больше на удобное тестирование при разработке.
2. SSL работает только с публичными IP. Для
127.0.0.1.nip.io или 192.168.x.x.nip.io Let's Encrypt не выдаст сертификат.У
nip.io есть альтернативы: xip.io или sslip.ioВ общем я показал, а тебе уже самому решать где это применить или не применить.
Хорошо тебе провести эти выходные. Ну а я пошел фиксить баги.
Увидимся!
🛠 #devops #networks
—
✅ @bashdays / @linuxfactory / @blog