Проброс портов на внутренний сервер для внешних и внутренних клиентов через IpTables
Пробросить для внешних клиентов, идущих из интернета на интерфейс с адресом 77.37.158.109 на порт 5555 все запросы на внутренний сервер с IP 192.168.0.23 который тоже слушает порт 5555
Если клиент из внутренней сети 192.168.0.0/24 будет обращаться на ресурс 192.168.0.23 на порт 5555, то всё будет отлично, но если вдруг он решит зайти на него из вне, типа как внешний юзер, допустим по некому доменному имени типа donik.org, то у него ничего не выйдет. Это будет вызвано тем, что внутренний сервер 192.168.0.23 будет видеть, что к нему обращается клиент из внутренней подсети. И поэтому этот сервер 192.168.0.23 будет отвечать этому клиенту минуя внешний шлюз 77.37.158.109 (адрес, на котором в итоге висит домен и где ходят внешние юзеры). Клиент такого ответа не ждёт, т.к. он находясь внутри локалки, решил вдруг обратиться к внутреннему ресурсу через внешний адрес. Чтобы такое разрешить, нужно все запросы, идущие на внутренний адрес сервера 192.168.0.23 по порту 5555 помечать, что они якобы идут с адреса 77.37.158.109 (стандартная схема работы NAT'а)
Ссылки
- Статья, которая легла в основу статьи