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

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

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
Описание трех режимов жизненного цикла службы внедрения зависимостей Asp.net Core.
boy illustration
Java реализует пользовательские аннотации для доступа к интерфейсу без проверки токена.
boy illustration
Серверная часть Unity добавляет поддержку .net 8. Я еще думал об этом два дня назад, и это сбылось.
boy illustration
Проект с открытым исходным кодом | Самый элегантный метод подписки на публичные аккаунты WeChat на данный момент
boy illustration
Разрешения роли пользователя Gitlab Гость, Репортер, Разработчик, Мастер, Владелец
boy illustration
Spring Security 6.x подробно объясняет механизм управления аутентификацией сеанса в этой статье.
boy illustration
[Основные знания ASP.NET] — Аутентификация и авторизация — Использование удостоверений для аутентификации.
boy illustration
Соединение JDBC с базой данных MySQL в jsp [легко понять]
boy illustration
[Уровень няни] Полный процесс развертывания проекта Python (веб-страницы Flask) в Docker.
boy illustration
6 способов чтения файлов свойств, рекомендуем собрать!
boy illustration
Графическое объяснение этапа строительства проекта IDEA 2021 Spring Cloud (базовая версия)
boy illustration
Подробное объяснение технологии междоменного запроса данных JSONP.
boy illustration
Учебное пособие по SpringBoot (14) | SpringBoot интегрирует Redis (наиболее полный во всей сети)
boy illustration
Подробное объяснение механизма подтверждения выпуска сообщений RabbitMQ.
boy illustration
На этот раз полностью поймите протокол ZooKeeper.
boy illustration
Реализуйте загрузку файлов с использованием минимального WEB API.
boy illustration
Демо1 Laravel5.2 — генерация и хранение URL-адресов
boy illustration
Spring boot интегрирует Kafka и реализует отправку и потребление информации (действительно при личном тестировании)
boy illustration
Мысли о решениях по внутренней реализации сортировки методом перетаскивания
boy illustration
Междоменный доступ к конфигурации nginx не может вступить в силу. Междоменный доступ к странице_Page
boy illustration
Как написать текстовый контент на php
boy illustration
PHP добавляет текстовый водяной знак или водяной знак изображения к изображениям – метод инкапсуляции
boy illustration
Интерпретация быстрой таблицы (TLB)
boy illustration
Интерфейс WeChat API (полный) — оплата WeChat/красный конверт WeChat/купон WeChat/магазин WeChat/JSAPI
boy illustration
Преобразование Java-объекта в json string_complex json-строки в объект
boy illustration
Примените сегментацию слов jieba (версия Java) и предоставьте пакет jar
boy illustration
matinal: Самый подробный анализ управления разрешениями во всей сети SAP. Все управление разрешениями находится здесь.
boy illustration
Коротко расскажу обо всем процессе работы алгоритма сборки мусора G1 --- Теоретическая часть -- Часть 1
boy illustration
[Спецификация] Результаты и исключения возврата интерфейса SpringBoot обрабатываются единообразно, поэтому инкапсуляция является элегантной.
boy illustration
Интерпретация каталога веб-проекта Flask