Проблема с пробросом портов на виртуальной машине KVM может быть вызвана несколькими факторами, учитывая вашу конфигурацию iptables. Давайте рассмотрим возможные источники проблем и предложим решения.
### 1. Конфигурация iptables
Согласно вашей конфигурации iptables, у вас настроен DNAT для перенаправления HTTP трафика на ваш виртуальный хост (`192.168.122.198`):
```plaintext
DNAT tcp -- anywhere CentOS-Stream-9 tcp dpt:http to:192.168.122.198:80
```
Проблемы могут возникнуть из-за следующих причин:
- **Пробрасывание только порта 80**: Убедитесь, что вы действительно хотите пробросить все порты, кроме 22. Если это так, вы должны добавлять дополнительные правила для Tcp-соединений на другие порты (например, 443) в схему DNAT.
- **Отсутствие правильного разрешения на доступ к порту**: Проверьте, нет ли других правил в iptables, которые могут блокировать доступ к порту 80.
- **Политики цепочек**: Убедитесь, что вы принимаете или разрешаете пакеты в цепочках INPUT и FORWARD.
### 2. Настройка сети KVM (основных и віртуальных интерфейсов)
Проверьте конфигурацию сети вашей KVM host. Убедитесь, что виртуальная машина подключена к правильной сети и получает соответствующие пакеты. Если вы используете bridged networking, убедитесь, что виртуальная машина может правильно общаться с сетью, в которой находится хост.
### 3. Проверка состояние nginx
Убедитесь, что Nginx на вашей виртуальной машине слушает на порту 80 и что нет конфликта с другими службами. Используйте следующую команду для проверки:
```bash
sudo netstat -tuln | grep :80
```
Также проверьте, что конфигурация Nginx корректна, выполнив:
```bash
sudo nginx -t
```
### 4. Проверка подключения
Попробуйте выполнить ping на IP-адрес вашей виртуальной машины (`192.168.122.198`) с хостовой машины, чтобы убедиться, что сеть работает.
### 5. Логи
Проверьте логи Nginx на наличие ошибок, это может дать указание на возможные проблемы. Логи обычно находятся в `/var/log/nginx/error.log`.
### 6. Возможные дополнительные шаги
Добавьте правила для проброса других необходимых портов, если это нужно. Например:
```bash
iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-destination 192.168.122.198:443
```
Пример для проброса всех TCP портов, кроме 22, может выглядеть следующим образом (для 3-го и 4-го правил необходимо повторить его для каждого порта):
```bash
iptables -t nat -A PREROUTING -p tcp --dport <PORT> -j DNAT --to-destination 192.168.122.198:<PORT>
```
### Итог
После проверки всех этих пунктов вы, вероятно, сможете выявить причину проблемы с пробросом портов. Если проблемы сохраняются, пожалуйста, предоставьте дополнительные данные о конфигурации сети и настройках KVM для более детального анализа.