Назад | Перейти на главную страницу

перенаправление порта iptables на другой порт веб-сервера

Можно ли перенаправить порт на порт, принадлежащий другому веб-серверу?

У меня есть экземпляр 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.