Можно ли перенаправить порт на порт, принадлежащий другому веб-серверу?
У меня есть экземпляр ec2, который может подключаться к mysql db, живущему на другой машине, не принадлежащей к той же сети. т.е. aws-machine: XXXX => Интернет-сайт: YYYY
Я пробовал использовать переадресацию портов со следующей конфигурацией, но это не сработало.
sudo ufw allow from any to any port XXXX proto tcp
sudo sysctl net.ipv4.ip_forward=1
sudo iptables -t nat -A PREROUTING -p tcp --dport XXXX-j DNAT --to-destination internet-website:YYYY
sudo iptables -A INPUT -p tcp --dport XXXX -j ACCEPT
sudo iptables -t nat -A POSTROUTING -p tcp --dport XXXX -j MASQUERADE
Идея состоит в том, чтобы создать туннель для подключения к базе данных без входа в систему или использования туннеля ssh. Как я могу это реализовать?
Вам необходимо разрешить трафик через цепочку FORWARD, а не через цепочку INPUT.
INPUT - это трафик, предназначенный для локального компьютера; FORWARD - это трафик, проходящий через локальную машину.
Поскольку filter
таблица (где находятся цепочки INPUT и FORWARD) обрабатывается после nat
таблица (где PREROUTING), filter
таблица обрабатывает пакет после вы изменили его на DNAT для удаленного хоста, поэтому пакет отправляется через цепочку FORWARD, а не через цепочку INPUT.