💡 Полезные Советы

Что такое Pi-Apps и как его установить на Raspberry Pi

08.03.26
568

Если вы используете свой Raspberry Pi 5 в качестве настольного компьютера, ретро-консоли или медиацентра, вы наверняка сталкивались с тем, что установка некоторых программ в Linux требует поиска сложных команд и ручной компиляции кода. Именно эту проблему решает Pi-Apps.

Что такое Pi-Apps?
 

Pi-Apps - это бесплатный магазин приложений с открытым исходным кодом, созданный специально для Raspberry Pi (и других устройств на базе ARM/x86 Linux).

Главная его цель - максимально упростить процесс установки софта. По сути, это набор скриптов, упакованных в удобный графический интерфейс. С помощью Pi-Apps вы можете скачивать, обновлять и удалять десятки популярных программ буквально в пару кликов, без необходимости лезть в командную строку.

Что можно установить через Pi-Apps?

  • Браузеры: Chromium (с поддержкой Widevine для Netflix/Spotify), Firefox, Tor и так далее
  • Мессенджеры: Telegram, Discord, Skype.
  • Разработка: Visual Studio Code, Arduino IDE, Android Studio.
  • Игры: Minecraft, Doom, эмуляторы Box86/Box64 для запуска Windows-игр,.
  • Утилиты: GIMP, OBS Studio, TeamViewer.

Как установить Pi-Apps на Raspberry Pi

Процесс установки невероятно прост и занимает всего пару минут. Все, что вам нужно - это доступ к интернету и открытый терминал.

***
Перед установкой любого нового софта рекомендуется обновить систему. Это поможет избежать конфликтов версий.

  1. Откройте терминал (сочетание клавиш Ctrl + Alt + T).
  2. Введите следующую команду и нажмите Enter:

    sudo apt update && sudo apt upgrade -y
  3. Дождитесь завершения процесса обновления.

Установка Pi-Apps

Разработчик Pi-Apps (Botspot) подготовил удобный скрипт автоматической установки. В том же терминале введите одну простенькую команду:

wget -qO- https://raw.githubusercontent.com/Botspot/pi-apps/master/install | bash

Завершение и запуск

Скрипт автоматически скачает необходимые файлы, установит зависимости и создаст ярлыки. Процесс полностью автоматизирован.

Как только в терминале появится сообщение об успешной установке, вы можете его закрыть.

Где найти Pi-Apps?

На вашем рабочем столе появится иконка Pi-Apps.

Также программу можно найти в главном меню Raspberry Pi OS в разделе "Стандартные" (Accessories).

Как пользоваться Pi-Apps

Интерфейс программы интуитивно понятен:

  1. Запустите Pi-Apps.
  2. Перед вами появится окно с категориями (Games, Internet, Tools и т.д.).
  3. Выберите нужную категорию или воспользуйтесь кнопкой Search (Поиск), чтобы найти конкретное приложение.
  4. Выберите программу и нажмите кнопку Install (Установить).
  5. После этого откроется окно терминала, где вы сможете наблюдать за процессом установки. Как только он завершится, программа будет готова к использованию!

Неблокируемый VPN‑туннель AmneziaWG для Raspberry Pi 5: подключение к VPS и проброс портов (на примере CS 1.6)

27.02.26
4258

Для кого это решение:
Идеально подходит тем, у кого дома нет публичного/статического ("белого") IP-адреса, чтобы напрямую открыть порты, но есть любой недорогой VPS-сервер. В данном руководстве для примера, мы используем сервер игры Counter-Strike 1.6.
Как работает эта архитектура:
Мы превращаем VPS сервер в публичную "витрину" для домашнего железа, связывая их через неблокируемый VPN-туннель.

  • VPS (Внешний шлюз): Смотрит в интернет своим реальным IP-адресом и принимает подключения игроков. Внутри туннеля AmneziaWG он получает адрес 10.8.0.1.
  • Raspberry Pi 5 (Домашний сервер): Спокойно стоит за провайдерским NAT. Она сама инициирует подключение к VPS, пробивая туннель, и получает внутренний адрес 10.8.0.2.
  • Магия маршрутизации: Мы берем внешний игровой порт (27015 UDP/TCP) на VPS и прозрачно пробрасываем его сквозь туннель прямо на вашу домашнюю "малинку", ну или linux сервер.

Главный плюс: мы буквально "вытягиваем" Raspberry Pi в глобальную сеть, не ломая то, что уже работает. Порт-форвардинг настраивается настолько ювелирно, что крутящиеся на VPS сайты, веб-сервисы и боты даже не заметят соседства с игровым сервером.

1. Установка AmneziaWG 

На сервере VPS (Ubuntu/Debian):

sudo add-apt-repository ppa:amnezia/ppa
sudo apt update
sudo apt install amneziawg-tools amneziawg-dkms -y

На Raspberry Pi 5 (Особый способ установки ключей, обходящий блокировки):

sudo apt update
sudo apt install -y gnupg2 curl linux-headers-$(uname -r)
# Скачиваем ключ через 80 порт
gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 57290828
gpg --export 57290828 | sudo tee /usr/share/keyrings/amnezia.gpg > /dev/null
# Добавляем репозиторий
echo "deb [signed-by=/usr/share/keyrings/amnezia.gpg] https://ppa.launchpadcontent.net/amnezia/ppa/ubuntu focal main" | sudo tee /etc/apt/sources.list.d/amneziawg.list
sudo apt update
sudo apt install -y amneziawg-tools amneziawg-dkms

2. Генерация ключей

Все ключи для удобства генерируем на VPS, чтобы потом просто скопировать их в конфиги.

Выполняем на VPS:

mkdir -p ~/awg-keys && cd ~/awg-keys
awg genkey | tee server_private | awg pubkey > server_public
awg genkey | tee client_private | awg pubkey > client_public

# Выводим на экран и копируем в блокнот:
cat server_private && cat server_public
cat client_private && cat client_public

3. Настройка VPS (Сервер)

  1. Включаем маршрутизацию (форвардинг) в ядре:

    echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
    sudo sysctl -p
  2. Создаем конфигурационный файл:

    sudo nano /etc/amnezia/amneziawg/awg0.conf
  3. Вставляем настройки (замените ключи на сгенерированные). Внимание: если ваш основной сетевой интерфейс называется не eth0, а ens3 - измените его в правилах PostUp/PostDown.

    [Interface]
    PrivateKey = <server_private>
    Address = 10.8.0.1/24
    ListenPort = 51820
    
    # Магические параметры Amnezia
    Jc = 4
    Jmin = 40
    Jmax = 70
    S1 = 29
    S2 = 15
    H1 = 2021056581
    H2 = 641527027
    H3 = 1018901243
    H4 = 301646271
    
    # Маскарадинг для выхода туннеля в сеть
    PostUp = iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
    PostDown = iptables -t nat -D POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
    
    [Peer]
    PublicKey = <client_public>
    AllowedIPs = 10.8.0.2/32
  4. Открываем порт в фаерволе (если используете UFW) и запускаем туннель:

    sudo ufw allow 51820/udp
    sudo systemctl enable --now awg-quick@awg0

4. Настройка Raspberry Pi 5 (Клиент)

  1. Создаем конфигурационный файл:

    sudo nano /etc/amnezia/amneziawg/awg0.conf
  2. Вставляем настройки. Важно: Обязательно проверьте наличие заголовка [Peer], без него парсер выдаст ошибку Line unrecognized

    [Interface]
    PrivateKey = <client_private>
    Address = 10.8.0.2/24
    
    Jc = 4
    Jmin = 40
    Jmax = 70
    S1 = 29
    S2 = 15
    H1 = 2021056581
    H2 = 641527027
    H3 = 1018901243
    H4 = 301646271
    
    [Peer]
    PublicKey = <server_public>
    Endpoint = IP_ВАШЕГО_VPS:51820
    AllowedIPs = 10.8.0.0/24
    PersistentKeepalive = 25
  3. Запускаем туннель и проверяем пинг до VPS:

    sudo systemctl enable --now awg-quick@awg0
    ping -c 4 10.8.0.1

5. Настройка проброса портов (NAT и UFW) на VPS

Чтобы внешний трафик, приходящий на публичный IP VPS по порту 27015, улетал на домашнюю малинку, выполняем на VPS:

  1. Открываем нужные порты для входящих подключений:

    sudo ufw allow 27015/udp
    sudo ufw allow 27015/tcp
  2. Критически важный шаг: Разрешаем транзитный (FORWARD) трафик в UFW, иначе фаервол молча убьет пакеты, идущие сквозь сервер в туннель:

    sudo ufw route allow proto udp to 10.8.0.2 port 27015
    sudo ufw route allow proto tcp to 10.8.0.2 port 27015
  3. Прописываем правила iptables для перенаправления (DNAT) и обратной подмены адреса (SNAT/MASQUERADE):

    # Перенаправление внутрь туннеля
    sudo iptables -t nat -A PREROUTING -p udp --dport 27015 -j DNAT --to-destination 10.8.0.2:27015
    sudo iptables -t nat -A PREROUTING -p tcp --dport 27015 -j DNAT --to-destination 10.8.0.2:27015
    
    # Обратный маскарадинг
    sudo iptables -t nat -A POSTROUTING -d 10.8.0.2 -p udp --dport 27015 -j MASQUERADE
    sudo iptables -t nat -A POSTROUTING -d 10.8.0.2 -p tcp --dport 27015 -j MASQUERADE
  4. Сохраняем правила iptables, чтобы они пережили перезагрузку сервера:

    sudo apt install iptables-persistent -y
    sudo netfilter-persistent save

Вывод:
Сервер работает стабильно, трафик полностью скрыт от DPI, а игровой сервер светит в мир с выделенного IP-адреса.

Что такое MTProto FakeTLS и как настроить свой прокси для Telegram?

19.02.26
1846

В этой статье подробно разберем, как работает технология MTProto FakeTLS, почему она так эффективна для Telegram, и пошагово настроим собственный неуязвимый прокси-сервер.

Что такое MTProto?

MTProto - это специализированный криптографический протокол, разработанный командой Telegram для безопасной передачи данных. Благодаря ему все ваши переписки надежно зашифрованы (как в прочном сейфе), и никто не может прочитать их содержимое. Однако обычный MTProto-прокси легко обнаруживается провайдерами: они не могут прочитать трафик, но видят его специфическую структуру и просто блокируют соединение.

Что такое FakeTLS?

Чтобы обмануть DPI, была придумана надстройка FakeTLS. Её задача - маскировка.
FakeTLS берет зашифрованный трафик Telegram и оборачивает его так, чтобы внешне он выглядел как абсолютно стандартное, безопасное HTTPS-соединение с популярным сайтом (например, с серверами Google, Microsoft или Apple).

Представьте, что вы отправляете секретный документ (ваше сообщение). Обычный прокси - это прозрачный конверт: почтальон (провайдер) не может прочесть текст, но видит, что письмо адресовано в Telegram, и выбрасывает его.
С FakeTLS вы кладете документ в стандартную коробку из-под популярного интернет-магазина. Почтальон видит обычную посылку, ничего не подозревает и свободно пропускает её.

Ограничения: почему не работают звонки?

Важно понимать, что MTProto идеально подходит для передачи текста, фото, видео и кружочков (используется надежный протокол TCP).
Однако голосовые и видеозвонки в Telegram требуют максимальной скорости без задержек, поэтому для них используется протокол UDP. MTProto-прокси не умеет маршрутизировать UDP-трафик. При попытке позвонить приложение попытается установить прямое соединение в обход прокси, и провайдер его заблокирует. (Для звонков лучше использовать полноценные VPN-решения, такие как Outline или WireGuard).

Пошаговая настройка сервера VPS/VDS

Для настройки нам понадобится виртуальный сервер (VPS/VDS) с установленной ОС Linux (рекомендуется Ubuntu) и доступом по SSH. Мы будем использовать современный и легковесный сервер mtg версии 2, работающий через Docker.

1. Подготовка сервера и установка Docker
Подключитесь к вашему серверу по SSH. Для маскировки под HTTPS-трафик нам обязательно нужен свободный порт 443. Проверим, не занят ли он:

ss -tulnp | grep :443

Если вывод пустой - порт свободен.

Установим Docker одной командой (если он еще не установлен):

curl -fsSL https://get.docker.com -o get-docker.sh && sudo sh get-docker.sh

2. Генерация криптографического ключа (FakeTLS)

Нам нужно создать специальный секрет, который заставит наш прокси притворяться сервером Google (dl.google.com). Выполните команду:

docker run --rm nineseconds/mtg:2 generate-secret --hex dl.google.com

В терминале появится длинная строка, начинающаяся с букв ee (например: ee123456789...dl.google.com). Скопируйте и сохраните её! Это ваш секретный ключ.

3. Создание файла конфигурации

Современная версия mtg требует отдельного файла настроек. Создадим его. Скопируйте приведенный ниже блок целиком, заменив ВАШ_СЕКРЕТ_ИЗ_ШАГА_2 на скопированный ранее длинный ключ (кавычки вокруг ключа нужно оставить!):

cat <<EOF > config.toml
secret = "ВАШ_СЕКРЕТ_ИЗ_ШАГА_2"
bind-to = "0.0.0.0:3128"
EOF

Нажмите Enter. Файл config.toml успешно создан в вашей текущей директории.

4. Запуск прокси-сервера

Теперь запустим сам сервер в фоновом режиме. Команда пробросит нужные порты и применит наш файл настроек:

docker run -d --name mtproto-proxy \
  -p 443:3128 \
  -v $(pwd)/config.toml:/config.toml \
  --restart unless-stopped \
  nineseconds/mtg:2 run /config.toml

Чтобы убедиться, что всё запустилось без ошибок, проверьте логи:

docker logs mtproto-proxy

Если вы не видите сообщений об ошибках, значит сервер успешно работает!

5. Настройка Firewall (UFW)
Обязательно нужно разрешить входящий трафик на наш порт маскировки.
Внимание: Если вы используете UFW, сначала обязательно разрешите порт SSH (22), чтобы не потерять доступ к серверу!

sudo ufw allow 22/tcp
sudo ufw allow 443/tcp
sudo ufw enable

(Нажмите y, если система предупредит о возможном разрыве SSH-соединения).

Подключение в Telegram

Ваш сервер готов! Осталось только сформировать ссылку для себя и своих друзей/клиентов.

Шаблон ссылки выглядит так:
tg://proxy?server=IP_АДРЕС_СЕРВЕРА&port=443&secret=ВАШ_СЕКРЕТ

  1. Замените IP_АДРЕС_СЕРВЕРА на реальный IP вашего сервера.
  2. Вместо ВАШ_СЕКРЕТ вставьте ту самую длинную строку, начинающуюся на ee.
  3. Отправьте эту ссылку себе в "Избранное" в Telegram.
  4. Нажмите на нее и выберите "Подключить прокси".

В верхней части экрана Telegram появится значок щита с галочкой. Поздравляем, теперь ваш трафик надежно замаскирован, а блокировки остались в прошлом!

P.S: Не забудьте обезопасить сервер и другими полезными вещами, например fail2ban, доступ по ssh ключам и т.д.

Не работает Eshop белый экран, как починить? (Актуально с 2026 г.) Настройка прокси для Nintendo Switch через Every Proxy и VPN.

19.02.26
10856

Многие владельцы Nintendo Switch столкнулись с неприятной проблемой: eShop перестал открываться даже при смене региона аккаунта, выдавая глухую ошибку подключения. Причина кроется не только в прошлых ограничениях самой Nintendo, но и в недавних массовых блокировках инфраструктуры Cloudflare со стороны Роскомнадзора. Пытаясь заблокировать технологию шифрования ECH (Encrypted Client Hello) и другие сервисы, под блокировку попали целые подсети IP-адресов, на которых работают серверы цифрового магазина Nintendo.

Nintendo Switch не поддерживает установку VPN‑клиентов. На консоль нельзя поставить приложение, которое бы шифровало трафик или меняло IP‑адрес. Поэтому единственный рабочий способ - дать консоли доступ к интернету, который уже проходит через VPN.
И здесь появляется Android‑смартфон: он умеет подключаться к VPN, а с помощью приложения Every Proxy может "раздавать" этот VPN‑трафик другим устройствам в локальной сети.

Почему чужие прокси небезопасны, а локальный прокси через телефон - безопасен.

Публичный прокси - это как попросить незнакомца из подворотни(гетто) отправить вашу почту.
Локальный прокси - это как передать письмо самому себе в соседнюю комнату.

Когда люди слышат слово "прокси", они часто представляют себе сомнительные публичные сервера, где непонятно кто сидит по ту сторону. И это справедливо: чужие прокси действительно могут быть опасны! Но локальный прокси, который работает на вашем собственном телефоне, - это совершенно другая история.

Почему публичные или "чужие" прокси небезопасны.
Когда вы подключаетесь к прокси, который принадлежит неизвестному человеку или компании, вы фактически отдаёте им весь свой интернет‑трафик. Это значит, что владелец прокси может:
•     перехватывать незашифрованные данные (логины, пароли, токены, куки);
•     подменять ответы сайтов (фишинг, реклама, вредоносные скрипты);
•     собирать историю посещений;
•     встраивать трекинг;
•     вмешиваться в трафик игр и сервисов.
Публичные прокси - это чёрный ящик. Вы не знаете, кто их контролирует, что они логируют и какие цели преследуют.

Почему локальный прокси на Android безопасен

1. Вы контролируете устройство - прокси работает на вашем телефоне.
Никто, кроме вас, не имеет к нему доступа.

2. Трафик не выходит наружу - Switch -> ваш телефон -> VPN -> интернет. Никаких сторонних серверов между вами и VPN нет.

3. Прокси не шифрует и не расшифровывает данные - он просто пересылает трафик дальше. HTTPS‑сайты шифруются TLS, VPN шифрует весь трафик телефона, прокси не может "подглядывать" внутрь пакетов.
4. Прокси работает только в вашей Wi‑Fi сети.

5. Every Proxy не имеет доступа к вашему трафику

Подготовка

  1. У Вас должен быть телефон OS Android (владельцы Iphone идут лесом), у Вас должен быть рабочий VPN
  2. Подключите оба устройства к одной сети. Ваш Android-смартфон и Nintendo Switch должны быть подключены к одной и той же Wi-Fi сети (к одному роутеру).
  3. Установите VPN на телефон. Скачайте и установите любой надежный VPN-сервис на ваш Android, если у вас его еще нет.
  4. Установите Every Proxy. Скачайте приложение Every Proxy из Google Play Market.

Настройка Android-устройства

  1. Откройте ваш VPN-клиент на телефоне.
  2. Выберите сервер в стране, где Nintendo eShop работает без ограничений (например, США, Великобритания, Польша и т.д.), и подключитесь к нему.
  3. Убедитесь, что VPN работает (обычно появляется значок ключика в верхней панели телефона).

Настройка приложения Every Proxy

  1. Откройте приложение Every Proxy на телефоне.
  2. В главном меню вы увидите переключатель HTTP/HTTPS. Переведите его во включенное положение.
  3. Ниже появятся данные вашего подключения:
  4. IP Address (IP-адрес): Обычно выглядит как 192.168.X.X (выбирайте тот, который соответствует вашей локальной Wi-Fi сети, а не внутренний IP типа 10.X.X.X).

  5. Port (Порт): По умолчанию обычно 8080.
  6. Запишите или запомните эти две цифры - они понадобятся для консоли.
  7. Нажмите на три точки (Настройки) в правом верхнем углу Every Proxy и убедитесь, что в разделе настроек не стоят ограничения, мешающие раздаче интернета. (По умолчанию стандартных настроек достаточно).

Настройка Nintendo Switch

  1. Включите Nintendo Switch и зайдите в Настройки системы (иконка шестеренки на главном экране).
  2. Перейдите в раздел Интернет -> Настройки интернета.
  3. Консоль начнет поиск сетей. Выберите вашу домашнюю Wi-Fi сеть (к которой уже подключен телефон).
  4. Нажмите Изменить настройки.
  5. Прокрутите вниз до пункта Прокси-сервер и измените его значение на Вкл.
  6. В появившихся полях введите данные из Every Proxy:
  7. В поле Сервер введите IP-адрес из приложения (например, 192.168.1.149).
  8. В поле Порт введите порт из приложения (например, 8080).
  9. Сохраните изменения и нажмите Подключиться к этой сети.
  10. Консоль проверит подключение. Если все сделано верно, тест пройдет успешно.

💡 Для особо одаренных.

  • Регион аккаунта: Чтобы зайти в зарубежный eShop, регион вашей учетной записи Nintendo (Nintendo Account) должен быть регионом, который не находиться под санкциями. Регион аккаунта меняется через браузер на официальном сайте Nintendo (в настройках профиля), а не на самой консоли!

  • Спящий режим: Когда вы переводите телефон в спящий режим, система Android может "убивать" фоновые процессы для экономии батареи, включая Every Proxy или VPN. Если интернет на Switch пропал, проверьте телефон - возможно, нужно отключить оптимизацию батареи для этих двух приложений.

  • Отключение: Когда вы закончите скачивать игры и захотите играть по обычной сети, не забудьте зайти в настройки интернета на Switch и выключить Прокси-сервер.

Часто используемые команды Linux: быстрый справочник

11.02.26
510

📂 File and Directory Management (Управление файлами и папками)

Эти команды используются для навигации по файловой системе и работы с файлами.

  • ls (List): Выводит список файлов и папок в текущей директории.

  • pwd (Print Working Directory): Показывает полный путь к папке, в которой вы сейчас находитесь.

  • cd (Change Directory): Используется для перехода в другую папку.

  • mkdir (Make Directory): Создает новую папку.

  • rmdir (Remove Directory): Удаляет пустую папку.

  • touch: Создает пустой файл или обновляет время последнего изменения существующего файла.

  • cp (Copy): Копирует файлы или папки.

  • mv (Move): Перемещает файлы или папки (также используется для переименования).

  • rm (Remove): Удаляет файлы (или папки с ключом -r).

📝 File Viewing and Editing (Просмотр и редактирование файлов)

Инструменты для чтения содержимого файлов и внесения изменений.

  • cat (Concatenate): Выводит содержимое файла на экран полностью.

  • less: Позволяет просматривать длинные файлы постранично (можно листать вверх и вниз).

  • more: Старая версия less, позволяет листать только вниз (в большинстве случаев).

  • nano: Простой и понятный консольный текстовый редактор для новичков.

  • vim: Мощный и сложный консольный редактор для продвинутых пользователей.

  • gedit: Стандартный графический текстовый редактор (как Блокнот) для среды GNOME.

⚙️ Process Management (Управление процессами)

Команды для контроля запущенных программ и служб.

  • ps (Process Status): Показывает моментальный снимок текущих запущенных процессов.

  • top: Показывает список процессов в реальном времени (нагрузка на CPU, память).

  • kill: Завершает процесс по его идентификатору (PID).

  • killall: Завершает все процессы с указанным именем.

  • pstree: Показывает процессы в виде иерархического дерева (кто кого запустил).

  • htop: Более удобная, цветная и интерактивная версия top.

ℹ️ System Information (Информация о системе)

Диагностика ресурсов и параметров компьютера.

  • uname: Выводит информацию о системе (ядро, архитектура). Часто используют uname -a.

  • df (Disk Free): Показывает количество свободного и занятого места на дисках.

  • du (Disk Usage): Показывает размер папок и файлов.

  • free: Показывает использование оперативной памяти (RAM) и файла подкачки (Swap).

  • lscpu: Детальная информация о процессоре.

  • lshw (List Hardware): Подробная информация обо всем оборудовании.

  • lsblk (List Block Devices): Список всех подключенных накопителей и их разделов.

👤 User and Group Management (Управление пользователями и правами)

Администрирование учетных записей.

  • passwd: Смена пароля пользователя.

  • useradd: Создание нового пользователя.

  • userdel: Удаление пользователя.

  • usermod: Изменение параметров пользователя (например, добавление в группу).

  • groupadd: Создание новой группы пользователей.

  • groupdel: Удаление группы.

  • groups: Показывает, в каких группах состоит пользователь.

  • id: Выводит цифровые идентификаторы пользователя (UID) и групп (GID).

🌐 Network Configuration and Monitoring (Сеть)

Настройка сети и диагностика подключений.

  • ifconfig: Старая команда для просмотра и настройки сетевых интерфейсов (IP, маска).

  • ip: Современная и более мощная замена ifconfig.

  • ping: Проверка доступности удаленного узла (сервера/сайта).

  • netstat: Статистика сетевых подключений, портов и таблиц маршрутизации.

  • ss: Современная и быстрая замена netstat для просмотра сокетов.

  • traceroute: Показывает маршрут (узлы), который проходит пакет до цели.

  • ssh (Secure Shell): Безопасное подключение к удаленному компьютеру.

  • nc (Netcat): "Швейцарский нож" для сети — умеет читать и писать данные в сетевые соединения (тестирование портов, передача файлов).

📦 Package Management (Управление пакетами)

Установка и удаление программ. Команды зависят от вашего дистрибутива Linux.

  • apt-get / apt: Используются в Debian, Ubuntu, Mint. apt — более современная и удобная версия.

  • yum / dnf: Используются в RHEL, CentOS, Fedora. dnf — современная замена yum.

  • rpm: Низкоуровневый менеджер пакетов для Red Hat систем (установка .rpm файлов).

  • dpkg: Низкоуровневый менеджер пакетов для Debian систем (установка .deb файлов).

  • snap: Универсальный менеджер пакетов от Canonical (работает на большинстве дистрибутивов).

  • zypper: Менеджер пакетов для openSUSE.

Как сбросить пароль Raspberry Pi оффлайн (через редактирование shadow)

09.02.26
797

С моей Raspberry Pi 5 всё не так, при добавлении init=/bin/sh в cmdline.txt на Raspberry Pi появляется чёрный экран и кулер работает на максимуме, явный симптом зависания и проблема глубже на уровне железа. Поэтому я заказал UART провод, скоро подключимся по COM порту с помощью PuTTy и посмотрим, какие проблемы при старте системы. 

Раз init=/bin/sh ведёт себя нестабильно, можно сбросить пароль оффлайн, изменив shadow на карте памяти. Если у вас Windows, используйте виртуальную машину (VirtualBox/VMware) с любым Live-образом Linux (Ubuntu/Debian).

Шаг 1: Подготовка VirtualBox (если у вас Windows).
Проброс USB-картридера в виртуальную машину часто вызывает трудности, так как Windows "захватывает" устройство первой.

  1. Установите VirtualBox Extension Pack (обязательно для работы USB 2.0/3.0).
  2. Вставьте картридер с флешкой в ПК.
  3. В настройках машины: USB -> Поставьте галочку Включить контроллер USB -> Нажмите иконку с плюсом ("Добавить фильтр") -> Выберите ваш картридер (например, Generic Mass Storage).
  4. Важно: Теперь извлеките картридер из ПК. Запустите виртуальную машину.
  5. Когда Linux загрузится, вставьте картридер обратно в порт. Благодаря фильтру он сразу "пробросится" внутрь виртуальной машины.

Шаг 2: Монтирование файловой системы (выполняйте только если карта не смонтировалась автоматически - см. Бонус внизу)

  1. Узнайте имя вашего диска:
    1. lsblk
    2. Обычно карта памяти видна как sdb или mmcblk0. На ней будет два раздела:
      1. маленький bootfs (FAT32)
      2. большой rootfs (EXT4) - он нам и нужен.
  2. Смонтируйте раздел с системой (замените sdb2 на ваш раздел):

    sudo mkdir -p /mnt/rpi
    sudo mount /dev/sdb2 /mnt/rpi
    

Шаг 3: Удаление пароля

Нам нужно отредактировать файл /etc/shadow, где хранятся хеши паролей.

  1. Сделайте резервную копию на всякий случай:

    sudo cp /mnt/rpi/etc/shadow /mnt/rpi/etc/shadow.bak
  2. Откройте файл в редакторе:

    sudo nano /mnt/rpi/etc/shadow
    
  3. Найдите строку с вашим пользователем (обычно pi, root или ваш логин). Она выглядит примерно так:

    user:$6$kH...поток_символов...:19000:0:99999:7:::
  4. Что делать: Удалите всё, что находится между первым и вторым двоеточием.
    1. Было: user:$6$aBcDeF...:12345:...
    2. Стало: user::12345:...
    3. Примечание: Двоеточия должны остаться, между ними должно быть пусто. Это означает "пароль не задан".
  5. Сохраните файл: Ctrl+O -> Enter -> Ctrl+X.

Шаг 4: Завершение

  1. Размонтируйте диск перед извлечением, чтобы не повредить файловую систему:

    sudo umount /mnt/rpi
  2. Вставьте карту обратно в Raspberry Pi и включите его.
  3. Система пустит вас без пароля (или попросит логин - введите имя пользователя и нажмите Enter).
  4. Сразу же задайте новый пароль:
  5. passwd

Бонус: если раздел уже смонтирован (пример с /run/media/...) [Как у меня]

Во многих десктоп‑дистрибутивах (KDE, GNOME, XFCE) флешки и SD‑карты автоматически монтируются файловым менеджером в /run/media/ИМЯ_ПОЛЬЗОВАТЕЛЯ/МЕТКА_НОСИТЕЛЯ.

Это значит, что вам может не понадобиться вручную монтировать раздел в /mnt - достаточно сразу отредактировать файл по уже существующему пути.


Например, если система смонтировала root‑раздел Raspberry Pi как /run/media/merion/rootfs, достаточно выполнить:

sudo nano /run/media/merion(ваше имя пользователя)/rootfs/etc/shadow

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

Чем отличается /mnt от /run/media ?

/mnt - исторически "универсальная" точка для ручного временного монтирования, куда админ сам монтирует нужный раздел командой mount.

/media и /run/media - стандартные места для автоматического монтирования съёмных носителей (флешки, SD‑карты и т.п.) через udisks/desktop‑окружение, обычно подподкаталог /run/media/ПОЛЬЗОВАТЕЛЬ/….