Бомбардиро крокодило!
Я выспался, можно продолжать радовать вас всякой «нужной» хуйней.
Давно про 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 этот домен, указываешь айпишник нового прода, идешь тестишь, если все ок, то меняешь 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:
Не поддерживает wildcards, но в большинстве случаев они избыточны. Инструмент заточен больше на удобное тестирование при разработке.
SSL работает только с публичными IP. Для
127.0.0.1.nip.ioили192.168.x.x.nip.ioLet’s Encrypt не выдаст сертификат.
У nip.io есть альтернативы: xip.io или sslip.io
Хорошо тебе провести эти выходные. Ну а я пошел фиксить баги. Увидимся!








Комментарии