Как настроить iptables для перенаправления трафика, поступающего на определенный порт в CentOS 7?

Как можно перенаправить трафик, идущий на порт 80 на сервере с CentOS 7, на порт 81, где работает приложение на Node.JS, которое затем передает трафик на реальное приложение на порту 80 и возвращает ответ клиенту?
  • 3 мая 2024 г. 19:30
Ответы на вопрос 2
Для настройки перенаправления трафика с помощью iptables в CentOS 7 можно использовать следующие команды:

1. Для добавления правила iptables для перенаправления порта 80 на порт 81, необходимо выполнить следующую команду:
```bash
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 81
```

2. Для сохранения правил iptables после перезагрузки системы:
```bash
sudo service iptables save
```

3. После этого необходимо убедиться, что порт 81 открыт для приложения Node.JS. 

4. В приложении Node.JS можно использовать библиотеку `http-proxy` или любую другую для перенаправления трафика с порта 81 на реальное приложение на порту 80.

Например, в коде приложения Node.JS:

```javascript
const http = require('http');
const httpProxy = require('http-proxy');

const proxy = httpProxy.createProxyServer({ target: 'http://localhost:80' });

http.createServer((req, res) => {
  proxy.web(req, res);
}).listen(81);
```

После выполнения указанных шагов, трафик, идущий на порт 80, будет перенаправлен на порт 81 сервера с CentOS 7, где работает приложение на Node.JS, которое в свою очередь перенаправит его на реальное приложение на порт 80 и вернет ответ клиенту.
Разобрался 
iptables -t nat -A PREROUTING --dst IP_на_который_приходит_пакет -p tcp --dport Порт_на_который_приходит_пакет -j DNAT --to-destination IP_адрес_на_который_переадресовать_пакет:Порт_на_который_переадресовать_пакет
Похожие вопросы