# Устранение сетевых проблем

!!! Warning "Обратите внимание"
    Ошибки бывают разные. Доступ к определенному ресурсу, пропускная спостобность и так далее.

    Здесь разберем самые самые частые проблемы, которые могут быть.

    Так же, эта информация не для обычных пользователей, а администраторов сетей и серверов. Здесь показаны достаточно специфичные варианты устранения проблем. 

    Все команды, показаны здесь чаще всего используються в ОС Linux.

Посмотрим сначала достаточно простые проблемы, а после перейдем на более серьезные ситуации.

--- 
## Сайт не открываеться

Для начала посмотрим коды ошибок.

??? info "Комментарий автора"
    Сам не запоминаю коды, так как сразу перехожу на поиск проблемы. Это происходит на мышечном памяти.

    Когда управляешь самостоятельно всей инфраструктурой, можешь сразу определить причину методом исключения. Однако это не очень правильно и коды необходимо знать.


### Коды ошибок

Самые частые коды:

1. **404** — **Not Found** — ресурс не найден на сервере.

2. **403** — **Forbidden** — доступ запрещен.
    - Неправильные права доступа к файлам на уровне ОС.
    - Активен фильтр ограничения доступа (IP-белый список и т.п.).

3. **504** — **Gateway Timeout** — бэкенд не ответил вовремя.
    - Сервер отвечает долго и может происходить на сетевом уровне или из-за нагруженности бэкенда.

4. **503** — **Service Unavailable** — бэкенд временно недоступен.
    - Бэкенд не запущен или упал.
    - Порт бэкенда закрыт или недоступен.

5. **502** — **Bad Gateway** — прокси получил некорректный ответ от бэкенда.
    - Несовместимость версий протоколов.
    - Бэкенд отдает ответ в неправильном формате.

!!! info Бэкенд
    Был упомянут такой термин, как Бэкенд. 

    Это распространенное название конечных серверов, когда веб сервер находиться из сервером проксирования.

Коды ошибок во время диагностики:

1. **200** - **OK** - ресурс упешно получен без каких либо ошибок.
2. **301** - **Moved Permanently** - Перенаправляет на другой URI.

--- 

### Примеры ситуаций

#### Сайт поднят, но не открываються на других устройствах в локальной сети

Для начала, и это самое важное, нужно определить как именно не открываеться.

- Сайт не загружаеться.
    - Браузер сразу показывает ошибку, что не может достучаться до сайта.
        - **Server not found** или **Не удается получить доступ к сайту**.
- Выводит статическу ошибку о ошибке.
    - Сервер выведет данную ошибку ввиде HTML страницы кода, если такое веб сервер умеет.


##### Сайт не открываеться.
   
Для начало узнаем, открыт ли порт.

```
nc -zv <address> <port>
```

``` title="Порт открыт"
$ nc -zv 192.168.1.1 80
 
Connection to 192.168.1.1 80 port [tcp/http] succeeded!
```

``` title="Порт закрыт"
$ nc -zv 192.168.1.1 80

nc: connect to 100.222.6.5 port 80 (tcp) failed: Connection timed out
```

!!! info "Рекомендация"
    Используйте параметр `-w`. Данный параметр выставляет time out по секундноe

