Как настроить персональный сервер, работающий постоянно?
Как настроить персональный сервер, работающий постоянно?

Читайте полезные статьи впервые

1

Источник сегментfault.com/a/1190000021143144

Что такое Raspberry Pi?

Raspberry Pi (китайское название Raspberry Pi, сокращенно RPi, (или RasPi/RPI) предназначен для обучения компьютерному программированию), микрокомпьютер размером с кредитную карту, а его система основана на Linux. С выпуском Windows 10 IoT мы также сможем использовать Raspberry Pi под управлением Windows.

С момента своего создания ее искали многие компьютерные энтузиасты и производители, и когда-то было трудно найти «школу». Несмотря на свой «миниатюрный» внешний вид, его «сердце» очень мощное. В нем есть все функции, такие как видео и аудио. Можно сказать, что он хоть и маленький, но имеет все внутренние органы.

1. Поймите мои слова

Другими словами, Raspberry Pi — это хост. К нему можно подключать внешние мониторы, клавиатуры, мыши, USB-накопители и другие периферийные устройства. Поскольку он небольшой и имеет множество последовательных и внешних портов, он может напрямую обращаться ко многим базовым устройствам.

2. Модели на рынке

Большинство продуктов на рынке — это модели B+ 3-го поколения. Поиск на Taobao нашел много Raspberry Pi. Цена за чистую материнскую плату (без каких-либо периферийных устройств) составляла около 230+, что было немного дороже и превышало мой бюджет. поэтому я продолжал искать дешевые и наконец нашел Raspberry Pi 100+.

3. Raspberry Pi ноль w

Raspberry Pi Zero w — это мини-Raspberry Pi, в котором всего 1/3 от 3b+. Получив его, вы обнаружите, что он действительно очень маленький и очень милый. Ниже моя реальная фотография, вы можете увидеть, насколько мини-размер.

Вы можете видеть, что сверху — это обычная черная ручка, за ней следует внешняя сетевая карта Wi-Fi с функцией Plug-and-Play, затем устройство для чтения карт USB, а внизу — наш сегодняшний главный герой, ноль w. Он действительно очень маленький, ничего подобного. Оно действительно прекрасно интерпретирует поговорку «Воробей хоть и мал, но все внутренние органы у него есть». Основные параметры нуля на этом Raspberry Pi следующие:

  • Процессор BCM2835, частота 1 ГГц, ОЗУ 512 МБ.
  • Чип BCM43438 WiFi/BT
  • разъем питания микро-USB
  • интерфейс micro-USB OTG
  • порт миниHDMI
  • Композитное видео и интерфейс расширения сброса
  • Хрупкий интерфейс камеры CSI
  • Держатель карты micro-SD для хранения операционной системы
  • 40-контактный интерфейс расширения GPIO
  • Размер: 65мм*30мм

Несмотря на то, что у него только одно ядро ​​ЦП и всего 512 МБ памяти, вы можете подумать, что он ничего не может сделать, но на самом деле его производительность все еще очень хороша, и это действительно небольшой случай для запуска веб-сайта.

4. Больше малинового писа

Дополнительные модели Raspberry Pi или руководства по использованию можно найти на веб-сайте Raspberry Pi Lab, где имеется множество ресурсов.

Система установки Raspberry Pi с нуля

1. Подготовьтесь

Возможно, вам придется подготовиться заранее:

  • Карта памяти SanDisk на 16 или 32 ГБ (обратите внимание, что раньше ее использовали в мобильных телефонах, она очень маленькая)
  • Самый распространенный USB-кабель для передачи данных Android (не type-c).
  • u инструмент для форматирования диска (рекомендоватьиспользовать SDFormatter)
  • Инструмент системного программирования (Win32DiskImager)
  • Малиновый Пи-система (Вы можете перейти на официальный сайт для скачивания)

Я использую образ системы Raspbian Stretch Lite. Эта система Lite не имеет настольной версии и имеет только черную консоль.

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

2. Первый шаг — загрузка образа системы.

После скачивания необходимого вам образа системы, как показано ниже

Вначале есть только один zip-файл размером около 360 МБ. Вам нужно его разархивировать, чтобы получить папку, показанную на картинке выше.

Затем войдите в папку, и вы увидите изображение img размером около 1,7 ГБ.

ps: Если этот официальный образ Raspbian является другим сторонним образом, загруженный сжатый пакет после распаковки может не быть образом img. В этом случае обратитесь к Baidu, чтобы решить эту проблему.

3. Используйте Win32DiskImager для записи образа на карту памяти.

Вставив карту памяти в кард-ридер, вставьте ее в компьютер.

После открытия программного обеспечения Win32DiskImager выберите образ img, выберите свой U-диск в качестве устройства и нажмите «Запись». После завершения записи появится окно с подсказкой об успешном выполнении.

пс: На картинке выше я не выбрал устройство, потому что не вставил картридер. Это просто демонстрация.

4. Измените файлы загрузочного раздела.

Не спешите вытаскивать картридер. В этот момент наш компьютер видит, что на USB-накопителе есть только один раздел с именем boot, и его размер может составлять всего около 40 МБ. Не волнуйтесь, потому что окно есть. не распознает другие разделы системы Linux на карте памяти.

4.1 Создайте новый ssh-файл

Потому что наш нулевой w имеет мини-интерфейс HDMI, но мне не нужен экран, поэтому мне нужно использовать ssh для подключения к системе в нулевом w, поэтому мне нужно включить функцию ssh при первом включении время.

Входим в загрузочный раздел и создаем новый файл с именем ssh. Будьте осторожны, не добавляйте суффикс! ! ! ! Там тоже ничего не пишите! !

4.2 Создайте новый файл wpa_supplicant.conf.

Поскольку для ssh-соединения требуется IP-адрес, нам необходимо автоматически подключать нулевой w к Wi-Fi при первом включении, чтобы он находился в той же локальной сети, что и наш компьютер, чтобы мы могли подключиться к системе нулевого w. через СШ.

Аналогичным образом в загрузочном разделе создайте новый файл с именем wpa_supplicant.conf, затем запишите в него следующее содержимое и сохраните:

Язык кода:javascript
копировать
country=CN
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
    ssid="ваше имя Wi-Fi"
    psk="Ваш пароль от Wi-Fi"
}

5. Собираем наш минимальный хост и подключаем

Выньте карту памяти из кард-ридера, вставьте ее в ноль и используйте USB-кабель для передачи данных Android для подключения к источнику питания (5 В, 1 А).

Подождите несколько минут, в течение которых индикатор нашего нуля будет продолжать мигать, что нормально. Пока индикатор не загорится, подходим к роутеру и проверяем IP-адрес Raspberry Pi.

Вы можете видеть, что IP-адрес нашего нулевого w — 192.168.0.104, а затем использовать инструмент подключения ssh (рекомендуется Putty) для подключения к Raspberry Pi. Начальная учетная запись — pi, а пароль — raspberry.

Соединение прошло успешно, как показано на картинке выше. Таким образом, наша система будет установлена ​​правильно.

PS: Если мобильный телефон включает точку доступа и действует как маршрутизатор, мы можем загрузить на свой мобильный телефон приложение под названием Android Terminal и ввести команду ip neigh, чтобы проверить информацию IP устройства, подключенного к мобильному телефону.

6. Оптимизируйте нашу систему Raspberry Pi.

6.1 Изменить источник

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

6.1.1 Изменение файла source.list
Язык кода:javascript
копировать
sudo nano /etc/apt/sources.list
--Комментируйте другой контент, добавьте следующее:
deb http://mirrors.ustc.edu.cn/raspbian/raspbian/raspbian stretch main contrib non-free rpi
6.1.2 Измените файл raspi.list
Язык кода:javascript
копировать
sudo nano /etc/apt/sources.list.d/raspi.list
--Комментируйте другой контент, добавьте следующее:
deb http://mirrors.ustc.edu.cn/archive.raspberrypi.org/debian stretch main ui
6.1.3 Выполнение обновлений
Язык кода:javascript
копировать
sudo apt-get update
sudo apt-get upgrade

6.2 Изменить часовой пояс

Язык кода:javascript
копировать
sudo dpkg-reconfigure tzdata

Просто найдите Азию и выберите Шанхай.

6.3 Автоматический запуск ssh при загрузке

Первый тип:

Язык кода:javascript
копировать
sudo raspi-config

Введите выбранное и найдите параметр интерфейса, затем найдите ssh и нажмите Enter, чтобы включить его.

Второй тип: Запустить в командной строке терминала SSH После обслуживания, если система перезагружается или запускается после завершения работы, SSH По умолчанию служба отключена, и ее все равно необходимо запускать вручную. Для удобства вы можете настроить ее. SSH Служба запускается автоматически при включении, открытии /etc/rc.local файл, в заявлении exit 0 Присоединился раньше:/etc/init.d/ssh start

Предлагаю вам попробовать, у меня работает нормально.

7. Установите nginx

Язык кода:javascript
копировать
#Установить
sudo apt-get install nginx
#запускать
sudo /etc/init.d/nginx start
#перезапуск
sudo /etc/init.d/nginx restart
#останавливаться
sudo /etc/init.d/nginx stop

Откройте браузер и посетите 192.168.0.104 (ваш IP-адрес Raspberry Pi). Вы увидите страницу nginx, указывающую, что он установлен.

Я загрузил свой блог здесь, как показано ниже.

Я вижу страницу нормально, но ее можно увидеть только в интрасети (LAN). Что мне делать, если я хочу, чтобы все имели доступ?

8. Проникновение в интранет

Проникновение во внутреннюю сеть означает проникновение внутренних (локальных) веб-приложений в общедоступную сеть через NAT, чтобы другие могли получить к ним доступ.

Проникновение в интранет в настоящее время осуществляется в основном с помощью ngrok и frp, оба из которых очень просты в использовании. К бесплатным отечественным ngroks относятся ittun, suny и natapp. Первые два можно настроить с помощью доменных имен, а для второго требуются. VIP-версия Только после этого вы сможете настроить доменное имя.

Я попробовал все три и обнаружил, что версия клиента ngrok от Sunny не может работать на моем Raspberry Pi, но ngrok от ittun и natpp может. Поскольку мне нужно настроить доменное имя, я использую версию ngrok_arm от ittun.

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

Это скриншот нормальной работы, вы можете посетить http://zerow.ittun.com/...

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

9. Еще

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

Информация о состоянии нулевого w следующая:

Я запустил на нем сервис nginx и ngrok. Памяти осталось еще 250 МБ, что еще очень комфортно. Температура процессора не слишком высокая. Работает уже два дня и в основном находится в пределах 37-39.

Рекомендовано в прошлом

Краткое изложение 89 основных встроенных концепций! Сколько вы знаете?

Почему никогда не будет языка, который заменит C/C++?

Проработав 12 лет в сфере аппаратного обеспечения, я переключился на FAE оригинального производителя чипов и, как обычно, взял на себя вину.

Подробно объяснено, как работает Git! ! !

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose