136 lines
12 KiB
Markdown
136 lines
12 KiB
Markdown
# TROUBLESHOOT.md — шпаргалка: частые проблемы и решения
|
||
|
||
Правило работы: сначала запустите check-скрипт своей машины (он скажет, ЧТО
|
||
сломано), затем откройте соответствующий раздел ниже. Все команды безопасны,
|
||
кроме отмеченных ОСТОРОЖНО.
|
||
|
||
## 0. Универсальная диагностика (всегда начинать с этого)
|
||
```
|
||
ip -4 -br a && ip route # адреса и маршруты
|
||
ping -c2 <адрес соседа> # линк жив?
|
||
ss -tlnp # что слушает по TCP (нужен root)
|
||
ss -ulnp # что слушает по UDP (нужен root)
|
||
systemctl status <служба> --no-pager # прямая сводка о службе
|
||
journalctl -eu <служба> --no-pager | tail -30 # почему служба упала
|
||
```
|
||
|
||
## 1. Сеть / NetworkManager
|
||
| Симптом | Причина | Решение |
|
||
|---|---|---|
|
||
| «Connection activation failed» | нет кабеля, пустой блок [connection], конфликт профилей | `nmcli con show`, `nmcli dev status`; перезаписать профиль и `nmcli con up <имя>` |
|
||
| NM не видит файл .nmconnection | права файла не 600 | `chmod 600 <файл>`, затем `nmcli con reload` |
|
||
| Адрес есть, пингов нет | не туда воткнуто; нет маршрута по умолчанию; VLAN-порт не в trunk | проверять `ip route`; на HQ-SW порт к роутеру должен быть trunk с VLAN 100/200/999 |
|
||
| Резолвинг не работает | пустой resolv.conf / недоступен DNS | `cat /etc/resolv.conf`, `ping <DNS>`; `systemctl restart NetworkManager` после смены |
|
||
|
||
## 2. GRE
|
||
| Симптом | Причина | Решение |
|
||
|---|---|---|
|
||
| Туннель есть, пинга нет | в remote указан не тот адрес (нужен адрес роутера в сети ISP) | на ОБЕИХ сторонах `ip tunnel show`; сверить remote/local |
|
||
| Пинг от роутера к роутеру есть, от сервера нет | нет маршрутов к офисным сетям | пропишите офисные сети в OSPF (network + passive-interface) или статикой |
|
||
| Не переживает перезагрузку | профиль без autoconnect | `nmcli con modify gre1 connection.autoconnect yes` |
|
||
|
||
## 3. OSPF (frr)
|
||
| Симптом | Причина | Решение |
|
||
|---|---|---|
|
||
| Сосед есть, но офиса не видны | забыли `network <офисная_сеть> area 0` | `vtysh -c 'show running-config'` — сравнить со списком сетей |
|
||
| Сосед в 2WAY, не Full | обычной broadcast-сети DR/BDR; в point-to-point туннеле | проще на gre: `ip ospf network point-to-point` на обеих сторонах |
|
||
| Соседей нет совсем | network-предложение не совпадает с реальной сетью; интерфейс в passive | проверить network-записи; `passive-interface default` НЕ должен включать туннель |
|
||
| MD5 не работает | другой пароль/номер ключа/нет ip ospf authentication | на обоих: `ip ospf authentication message-digest` и ОДИНАКОВЫЙ ключ+пароль |
|
||
| OSPF не слушает frr | не включены демоны | ПРОВЕРИТЬ /etc/frr/daemons: zebra=yes, ospfd=yes, `systemctl restart frr` |
|
||
|
||
## 4. NAT / Интернет
|
||
| Симптом | Причина | Решение |
|
||
|---|---|---|
|
||
| Пинг IP 77.88.8.7 не идёт из офиса | нет MASQUERADE; ip_forward=0 | `iptables -t nat -L POSTROUTING -nv`; `cat /proc/sys/net/ipv4/ip_forward` |
|
||
| После reboot правила NAT пропали | iptables не сохранён | `iptables-save > /etc/sysconfig/iptables`, `systemctl enable iptables` (ПРОВЕРИТЬ имя) |
|
||
| Пинг IP есть, имена не резолвятся | нет DNS / NAT-адресации | `ping ya.ru`; проверка DNS-конфигурации (раздел 7) |
|
||
|
||
## 5. DHCP
|
||
| Симптом | Причина | Решение |
|
||
|---|---|---|
|
||
| Клиент не получает адрес | служба dhcpd не активна; client не в нужной сети; range заполнен | `systemctl status dhcpd` (ПРОВЕРИТЬ имя), `nmcli con up <интерфейс>` снова |
|
||
| dhcpd не стартует | ошибка конфига (range вне сети, нет subnet) | `dhcpd -t`; `journalctl -eu dhcpd` |
|
||
|
||
## 6. SSH (порт 2027)
|
||
| Симптом | Причина | Решение |
|
||
|---|---|---|
|
||
| Connection refused | sshd не перезапущен после смены порта; SELinux; firewall | `ss -tlnp \| grep 2027`; `getenforce` → `semanage port -a -t ssh_port_t -p tcp 2027`; `firewall-cmd --add-port=2027/tcp --permanent && firewall-cmd --reload` |
|
||
| Permission denied | AllowUsers не содержит пользователя; MaxAuthTries? | `sudo sshd -T | grep -E 'port|allowusers|maxauthtries|banner'` |
|
||
| Баннер не показывается | баннер-файл не существует/путь другой | путь в `sshd -T` должен существовать с текстом |
|
||
|
||
## 7. DNS (dnsmasq)
|
||
| Симптом | Причина | Решение |
|
||
|---|---|---|
|
||
| dig пустой / REFUSED | служба/ports/listen-address | `systemctl status dnsmasq`; `ss -ulnp \| grep 53`; listen-address должен включать 127.0.0.1 и адрес сервера |
|
||
| A есть, PTR нет | dnsmasq не выдаёт reverse по hosts | `dig -x <IP>`; при необходимости добавить reverse-зону явно (см. QUESTIONS.md) |
|
||
| Внешние имена не резолвятся | нет `server=<адрес>` (форвардер) | `dig +short ya.ru @127.0.0.1`; добавить server-строку, рестарт |
|
||
|
||
## 8. RAID/mdadm
|
||
| Симптом | Причина | Решение |
|
||
|---|---|---|
|
||
| после reboot нет md0 | нет ARRAY-строки в /etc/mdadm.conf; initramfs старый | строка ARRAY по UUID, затем `dracut -f` |
|
||
| mdadm: device busy | диски смонтированы/грязные | размонтировать; `wipefs -a /dev/vdX` ОСТОРОЖНО (только array-диски!) |
|
||
| /raid не монтируется | неверный UUID в fstab | `blkid /dev/md0`; сверить с fstab; `mount -a` покажет ошибку |
|
||
|
||
## 9. NFS
|
||
| Симптом | Причина | Решение |
|
||
|---|---|---|
|
||
| mount: access denied | сеть клиента не в exports | `exportfs -v`; поправить строку; `exportfs -ra` |
|
||
| mount: connection refused | службы rpcbind/nfs-server не активны | `systemctl enable --now rpcbind nfs-server` (ПРОВЕРИТЬ имена); `ss -tlnp \| grep 2049` |
|
||
| Permission denied при записи | права ФС каталога | `ls -l /raid/nfs`, выставить владельца/права |
|
||
|
||
## 10. chrony
|
||
| Симптом | Причина | Решение |
|
||
|---|---|---|
|
||
| Stratum 10 | нет синхронизации с upstream | `chronyc sources -v`; доступен ли upstream; порт 123/udp |
|
||
| Клиенты не синхронизируются | нет allow <сеть> на сервере; firewall | добавить `allow <a.b.c.d/prefix>`, рестарт chronyd |
|
||
|
||
## 11. Docker
|
||
| Симптом | Причина | Решение |
|
||
|---|---|---|
|
||
| docker: command not found | пакет не установлен (или podman alias) | `dnf list installed \| grep -i dock`; соответствие пакету РЕД ОС 8 (ПРОВЕРИТЬ) |
|
||
| permission denied | docker требует root | `sudo docker ...` |
|
||
| compose: no such image | образ не загружен | `docker load -i <tar>`, затем `docker compose up -d` |
|
||
| 8080 не отвечает | контейнер упал | `docker ps -a`, `docker logs <id>`, `ss -tlnp | grep 8080` |
|
||
|
||
## 12. Nginx / apache / mariadb
|
||
| Симптом | Причина | Решение |
|
||
|---|---|---|
|
||
| nginx -t: [emerg] ... строка X | ошибка в exam-proxy.conf | поправить строку X; после правки `systemctl reload nginx` |
|
||
| 502 Bad Gateway | бэкенд недоступен с ISP (маршруты!) | `curl -v <бэкенд-IP:порт>` с ISP; если нет — статические маршруты или OSPF |
|
||
| 401 всё время | битый htpasswd | `printf "%s:%s\n" WEB "$(openssl passwd -apr1 'P@ssw0rd')" > файл` |
|
||
| виртуальный хост показывает дефолт | нет Host-маршрутизации | проверять server_name и какой блок ловит (nginx -t покажет; curl -H "Host: ...") |
|
||
| страница 500 | ошибки PHP/подключения к БД | `tail /var/log/httpd/error_log` (ПРОВЕРИТЬ путь на РЕД ОС 8); сверить учётные данные БД в index.php |
|
||
|
||
## 13. Samba DC
|
||
| Симптом | Причина | Решение |
|
||
|---|---|---|
|
||
| user create: password policy | пароль короче/проще политики | `samba-tool domain passwordsettings show`; ИСПОЛЬЗОВАТЬ пароль под политику |
|
||
| realm join fails | DNS BR-SRV не прописан на клиенте | `echo "nameserver <BR-SRV>" > /etc/resolv.conf`; тест `dig <домен>` |
|
||
| getent passwd hquser1 пусто | sssd/winbind не настроен/внизу | `systemctl status sssd`; логи; соглашение о формате имён группы ('hq' vs 'hq@домен') |
|
||
| sudo файл игнорируется | права не 440 / неверное имя группы | `chmod 440 /etc/sudoers.d/...`; имя группы сверить с getent |
|
||
|
||
## 14. fail2ban
|
||
| Симптом | Причина | Решение |
|
||
|---|---|---|
|
||
| не запускается | backend не видит журнал | в jail: `backend = systemd` (если используете journald) |
|
||
| IP не банится | maxretry/bantime не применились, jail не active | `sudo fail2ban-client status sshd`; проверьте порт 2027 в jail; `fail2ban-client reload` |
|
||
|
||
## 15. Сертификаты / https
|
||
| Симптом | Причина | Решение |
|
||
|---|---|---|
|
||
| certificate expired / not yet valid | уехало системное время | `timedatectl`; chrony должен тянуть время (задание 2) |
|
||
| unable to verify | клиент не доверяет корневому CA | root.crt в /etc/pki/ca-trust/source/anchors, `update-ca-trust` |
|
||
| браузер: CERT_AUTHORITY_INVALID | нет SAN или не доверие к CA | `openssl x509 -in cert -noout -ext subjectAltName`; домен ДОЛЖЕН быть в SAN |
|
||
|
||
## 16. Прочее
|
||
- Перезагрузка после большинства скриптов улучшает сходимость (особенно VLAN
|
||
и туннели). Ловить проблемы после reboot — пройтись check-скриптами.
|
||
- git clone падает по сертификату — на экзамене допустимо
|
||
`git config --global http.sslVerify false` (временно) или scp репозитория.
|
||
- Пустой DISPLAY? — всё по консоли, виртуальности GUI отсутствуют.
|
||
|
||
Если что-то сломалось не из этого списка: запустите check-скрипт машины,
|
||
посмотрите журналы (`journalctl -eu <служба> | tail -30`) и поиском по этому
|
||
файлу — похожие симптомы.
|