From 9e3ee7ebc880e8f2a8dbacc16dc0dc9b10e734eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=B0=D0=BD=D0=B8=D0=B8=D0=BB=20=D0=93=D1=80=D0=B0?= =?UTF-8?q?=D0=B1=D0=B0=D1=80=D1=8C?= Date: Tue, 30 Jun 2026 12:13:25 +0300 Subject: [PATCH] feat: add troubleshooting section for SSL errors during installation --- doc/lwc-doc/docs/troubleshooting/ssl-error.md | 184 ++++++++++++++++++ doc/lwc-doc/mkdocs.yml | 1 + 2 files changed, 185 insertions(+) create mode 100644 doc/lwc-doc/docs/troubleshooting/ssl-error.md diff --git a/doc/lwc-doc/docs/troubleshooting/ssl-error.md b/doc/lwc-doc/docs/troubleshooting/ssl-error.md new file mode 100644 index 0000000..d508d37 --- /dev/null +++ b/doc/lwc-doc/docs/troubleshooting/ssl-error.md @@ -0,0 +1,184 @@ +# Ошибка SSL при установке + +## Описание проблемы + +При выполнении `cobot setup` или `rosdep update` может возникать ошибка SSL-рукопожатия при попытке загрузить индексы зависимостей ROS с серверов GitHub. + +**Возможные причины:** + +- Сетевые ограничения (корпоративный брандмауэр, интернет-провайдер) +- Блокировка GitHub на уровне маршрутизатора или провайдера +- Проблемы с DNS-разрешением `raw.githubusercontent.com` +- Ограниченный доступ к TLS-соединениям (Deep Packet Inspection) + +## Симптомы + +=== "cobot setup" + ``` + [rosdep] Initializing rosdep... + ERROR: unable to process source [https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml]: + + ERROR: unable to process source [https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml]: + + ERROR: Not all sources were able to be updated. + ``` + +=== "rosdep update" + ``` + /usr/bin/rosdep:6: DeprecationWarning: pkg_resources is deprecated as an API. + from pkg_resources import load_entry_point + ERROR: unable to process source [https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml]: + (https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml) + ERROR: unable to process source [https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml]: + (https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml) + ERROR: Not all sources were able to be updated. + [[[ + ERROR: unable to process source [https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml]: + (https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml) + ERROR: unable to process source [https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml]: + (https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml) + ``` + +--- + +## Решение: VPN через WireGuard + +Рекомендуемый способ обойти сетевые ограничения — поднять WireGuard VPN-туннель. +По настройке **WireGuard-сервера** обратитесь к [официальной документации WireGuard](https://www.wireguard.com/quickstart/) или документации вашего облачного провайдера. + +Ниже приведена настройка **клиентской части** на рабочей машине. + +--- + +### 1. Установка WireGuard + +```bash +sudo apt update && sudo apt install -y wireguard-tools +``` + +--- + +### 2. Конфигурация клиента + +Создайте файл конфигурации: + +```bash +sudo nano /etc/wireguard/wg0.conf +``` + +Добавьте следующее содержимое, подставив данные вашего сервера: + +```ini +[Interface] +# Приватный ключ клиента (генерируется командой: wg genkey) +PrivateKey = <ВАШ_ПРИВАТНЫЙ_КЛЮЧ> +# IP-адрес клиента в VPN-сети +Address = 10.0.0.2/24 +# DNS-серверы (опционально) +DNS = 8.8.8.8, 1.1.1.1 + +[Peer] +# Публичный ключ WireGuard-сервера +PublicKey = <ПУБЛИЧНЫЙ_КЛЮЧ_СЕРВЕРА> +# Адрес и UDP-порт сервера +Endpoint = :51820 +# Маршрутизировать весь трафик через VPN +AllowedIPs = 0.0.0.0/0 +# Keepalive для клиентов за NAT +PersistentKeepalive = 25 +``` + +!!! tip "Генерация ключей" + Если у вас ещё нет ключевой пары, сгенерируйте её: + ```bash + # Приватный ключ + wg genkey | tee privatekey + + # Публичный ключ (передайте администратору сервера) + cat privatekey | wg pubkey + ``` + +!!! note "Частичная маршрутизация" + Если нужно направлять через VPN только трафик к GitHub, замените `AllowedIPs`: + ```ini + AllowedIPs = 140.82.112.0/20, 185.199.108.0/22 + ``` + +!!! warning "Проблемы с MTU" + Если соединение установлено, но есть потери пакетов — уменьшите MTU в секции `[Interface]`: + ```ini + MTU = 1420 + ``` + +--- + +### 3. Управление туннелем + +```bash +# Поднять туннель +sudo wg-quick up wg0 + +# Проверить статус и статистику соединения +sudo wg show + +# Остановить туннель +sudo wg-quick down wg0 +``` + +--- + +### 4. Автозапуск при загрузке системы + +```bash +sudo systemctl enable wg-quick@wg0 +sudo systemctl start wg-quick@wg0 +``` + +--- + +### 5. Проверка подключения + +```bash +# Убедиться, что интерфейс поднят +ip addr show wg0 + +# Проверить маршруты +ip route show + +# Пинг до VPN-сервера +ping 10.0.0.1 + +# Проверить внешний IP (должен совпадать с IP VPN-сервера) +curl -s ifconfig.me +``` + +После успешного подключения повторно запустите установку: + +```bash +cobot setup +``` + +или только обновление rosdep: + +```bash +rosdep update +``` + +--- + +### 6. Диагностика + +Если туннель не поднимается, смотрите системные логи: + +```bash +sudo journalctl -u wg-quick@wg0 -f +``` + +Убедитесь, что на **сервере** открыт UDP-порт `51820`: + +```bash +# Проверить на сервере +sudo ufw status +# или +sudo iptables -L -n | grep 51820 +``` diff --git a/doc/lwc-doc/mkdocs.yml b/doc/lwc-doc/mkdocs.yml index 8e24009..08e7885 100644 --- a/doc/lwc-doc/mkdocs.yml +++ b/doc/lwc-doc/mkdocs.yml @@ -84,5 +84,6 @@ nav: - Решение проблем: - Ошибка конфигурации: troubleshooting/config-error.md + - Ошибка SSL (rosdep/setup): troubleshooting/ssl-error.md