Я потратил некоторое время на исследования, но не нашел рабочего решения следующей проблемы:
Я хочу туннелировать любые запросы на сервере 1, порт x на сервер 2, порт x. Порт остается прежним, я просто хочу туннелировать любые данные, отправляемые на сервер 1 через порт x, на сервер 2.
Соединение будет выглядеть так:
Клиент> Сервер 1> туннель> Сервер 2
и наоборот:
Сервер 2> туннель> Сервер1> Клиент
Возможно ли это? Если да, то как? Оба сервера работают под управлением Debian 8.
Пожалуйста, извините меня, если это общий вопрос для новичков, но я только начинаю работать с серверами и прочим.
Спасибо ^^
Это называется прокси-сервером. Да, это возможно, если включить модуль пересылки на server1, а затем добавить соответствующие правила пересылки в свой iptables.
Например:
* На server1:
Включить пересылку:
echo "1" > /proc/sys/net/ipv4/ip_forward
sysctl net.ipv4.ip_forward=1
Добавить правила переадресации для Iptables
iptables -t nat -A PREROUTING --dst server1_ip -p tcp --dport portX -j DNAT --to-destination server2_ip:portX
iptables -t nat -A POSTROUTING -p tcp --dst server2_ip --dport portX -j SNAT --to-source server1_ip
iptables -t nat -A OUTPUT --dst server1_ip -p tcp --dport portX -j DNAT --to-destination server2_ip:portX
где:
portX: Порт, который вы хотите переадресовать
server1_ip : IP-адрес сервера, который получает начальный IP-адрес и пересылает его на server2.
server2_ip: IP-адрес сервера, на который вы хотите перенаправить трафик.