У нас всегда есть два составляющих: source (источник) и destinations (приемник)
рассмотрим простую задачу:
у нас есть модем с белым айпи наружу, есть какие-то внутренние ресурсы, например docker-host машина (10.10.10.68), у которой открыт порт 22 (ssh), на который без проблем цепляемся сидя в локальной сети
подзадача: сесурити надо учитывать..
Рализация такая:
доменное имя: у нас же есть внешнее доменное имя, которое ссылается на внешний адрес модема ?
docker.amegaserver.com A 178.98.247.42ping docker.amegaserver.com. Пингуется наш внешний адрес ? Ок.Торчащие наружу порты основных служб - это беда для нас и радость для злодеев
port-mapping (port-forward, транслятор портов, опубликание служб и тому подобное)внешний порт (external port) - у нас это какой-нить выдуманный (не стандартный) порт ssh службы - например 8022внутренний порт (dest port, internal port) - у нас это порт на котором нас ждут - 22 (ssh)внутренний адрес (dest ip, internal ip) - у нас по заданию это 10.10.10.68exretnal_ip=0.0.0.0 (любой внешний хост)external_port=8022 (внешний порт)internal_ip=10.10.10.68 (внутренний хост, куда идем)internal_port=22 (внутренний реальный порт, на котором висит и ждет нас служба)Тестирование:
ping docker.amegaserver.comtelnet docker.amegaserver.com 8022Trying 146.158.64.42...
Connected to docker.amegaserver.com.
Escape character is '^]'.
SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.3
ssh login@docker.amegaserver.com