logo

nixscript

Keep it simple, stupid !

Ссылка на статью в формате MarkDown для Curl, кодировка RU.UTF-8

Доступ к компу из интернета без DDNS и покупки доменного имени

Адрес страницы: https://nixscript.ru/noddns

Иногда случается так, что нужен доступ к компу из интернета, при этом нет ни желания ни денег на организацию доступа с доменным именем.

Нужны идеи? Будут вам идеи!

Для начала надо убедиться, что у вас белый IP. Если это так, то надо настроить роутер/модем на проброс портов 80 и 443, если вам нужен доступ по веб-протоколам. Или 22 порт, если по ssh. Описаний этого действа в сети много, всё зависит от вашего сетевого железа, поэтому этот момент вам надо нагуглить.

Скрипт для сервера очень прост. Получает запрос, выцепляет из него адрес IP и вставляет в веб-страницу. Сделаем PHP-скрипт под именем your_script.php

<?php
if($_GET['ip']=="0"){
  file_put_contents("dynamic_ip.txt",$_SERVER["REMOTE_ADDR"]);
}
else {
  $IP = file_get_contents("dynamic_ip.txt");
  echo "<a href='$IP'>Домашний комп</a>";
}

Теперь закидываем этот скрипт на один из действующих сайтов в интернете, не в корневую папку, а во вложенную. Так будет более безопасно.

Со скриптом для целевого компа так же всё просто. Сделаем bash-скрипт с именем send_ip

#!/bin/bash
curl http://some.site/some_dir/your_script.php?ip=0

Параметром к curl укажите правильный путь к скрипту в интернете, при этом фрагмент your_script.php?ip=0 должен остаться неизменным.

И на скрипт send_ip задать выполнение раз минут в 5, запустив с правами root это:

# crontab -e
*/5 * * * * /home/user/bin/send_ip

Укажите правильный путь к скрипту send_ip и сохраните. Перезапустите cron.

# через systemd так:
systemctl restart cron

Если your_script.php уже в интернете, откройте браузер, в адресной строке вбейте адрес к скрипту http://some.site/some_dir/your_script.php и нажмите Enter. Заметьте, на конце адреса не должно быть фрагмента ?ip=0! Браузер выдаст страницу, на которой будет только ссылка «Домашний комп» на внешний IP к вашему компу.

Автор: Grigruss 26.04.2018 vk@nixscript


Статья написана в формате MarkDown и сконвертирована в HTML с помощью скрипта Parsedown.

Вверх 🡑