А я могу предложить решение в виде
Ngrok. Вот сейчас ним пользуюсь и всё отлично работает. И главное! Есть бесплатный тарифный план.
Но как всегда ложка дёгтя. На бесплатном тарифе Вам не доступны кастомные сабдомены, и Вам всё время будет необходимо зайти на сайт чтобы узнать какой порт сейчас у Вас используется для проброса.
То есть например, Вы прокидываете порт 80 через Ngrok. При таком варианте, на бесплатном тарифном плане, Вы будете получать ссылку вида: 0.tcp.eu.ngrok.io:1153 по этой ссылке и будет доступен Ваш 80 порт. И при каждом перезапуске Ngrok, Вы получаете новый порт в URL-е Ngrok.
Я сейчас думаю как это обойти. Думаю можно использовать мой прошлый скрипт:
Бесплатная альтернатива DynDNS. То есть получать URL-у тунеля через
API, благо что есть, и записывать эту URL-у в DNS записи. Проблема в том что как было в скрипте:
Бесплатная альтернатива DynDNS, у меня не получиться из-за того, что ссылку вида: 0.tcp.eu.ngrok.io:1153 я могу передать только в TXT запись. То есть мне всё-равно нужно будет каждый раз проверять записи на домене, чтобы знать какой порт для подключения использовать, а не так как было ранее что я просто открыл свой домен и попал на веб-морду дома. Так-что я пока в поиске решения
И кстати, у меня сейчас Ngrok стартует после каждой перезагрузки сервера (если такова была). Сделал это очень просто через crontab:
Код: Выделить всё
@reboot /root/ngrok start --all --config /root/.ngrok2/ngrok.yml
Конфиг ngrok.yml:
Код: Выделить всё
authtoken: doHreNa_bukv_I_cIfR
region: eu
consolue_ui: false
log_level: info
log_format: logfmt
log: /var/log/ngrok.log
web_addr: 127.0.0.1:4040
tunnels:
web:
addr: 80
proto: tcp
ssh:
addr: 22
proto: tcp
Токен можно получить по ссылке: https://dashboard.ngrok.com/get-started после регистрации.
При желании можно сделать скрипт который бы просыпался, проверял запущен ли Ngrok, запускал при необходимости (мало ли упадёт) и засыпал на определенное время, а потом по новой.