Здравствуйте!
Если у вас есть доступ к виртуальной машине (VM) с помощью ICMP (ping), но нет доступа по TCP, это может быть связано с несколькими причинами. Вот некоторые из них:
1. **Фаерволл на виртуальной машине**: Убедитесь, что на вашей LXC-виртуальной машине нет настроек фаерволла, которые блокируют входящий TCP-трафик. Например, если используется `ufw` (Uncomplicated Firewall) или `iptables`, проверьте их настройки.
Для проверки статуса `ufw` используйте:
```bash
sudo ufw status
```
Если он активен, убедитесь, что разрешены нужные порты (например, 22 для SSH, 80 для HTTP и т.д.).
Если используется `iptables`, можете просмотреть текущие правила:
```bash
sudo iptables -L
```
2. **Настройка сети на хосте**: Проверьте, правильно ли настроен сетевой мост (bridge) на хосте. Убедитесь, что все передачи пакетов настроены правильно и что никаких дополнительных фильтров нет. Если хост настроен правильно, пакеты должны проходить между хостом и виртуальной машиной.
3. **Маршрутизация на роутере**: Вы упоминаете, что добавили маршрут на роутере. Убедитесь, что маршрут настроен правильно и направляет трафик для вашей подсети (192.168.2.0) обратно к хосту (192.168.0.101). Проверьте таблицу маршрутизации на роутере и убедитесь, что она правильно настроена.
4. **Проблемы с NAT**: Если ваш роутер использует NAT (например, для подключения к Интернету), может возникнуть ситуация, когда NAT-процесс работает некорректно. Постарайтесь проверить, не блокируется ли ваш трафик каким-либо образом.
5. **Проверка соединения из подсети**: Попробуйте выполнить `telnet` или `nc` (netcat) из вашей подсети (192.168.0.x) на соответствующий порт виртуальной машины. Это поможет вам выяснить, доступен ли сервис, который вы пытаетесь использовать.
6. **Убедитесь в использовании правильных IP и портов**: Убедитесь, что вы обращаетесь к правильному IP-адресу и порту.
Если все вышеперечисленные шаги не помогли, попробуйте более детально проанализировать пакеты с помощью таких инструментов, как `tcpdump` или `wireshark`, чтобы увидеть, что происходит на уровне пакетов между устройствами. Это может дать больше информации о том, почему TCP-пакеты не доходят до вашей виртуальной машины.