Как разместить общедоступный веб-сайт на вашем домашнем Raspberry Pi

Windows

[ad_1]

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

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

Если вы хотите создать что-то интерактивное с вашим Pi, сохраняя при этом максимальную безопасность, вот как это сделать.

Что вам понадобится для этого проекта

  • Малиновый Пи 4 или Raspberry Pi 3 с адаптером питания
  • Карта microSD 8 ГБ (или больше) с ОС Raspberry Pi. Смотрите наш список лучшие карты microSD для Raspberry Pi.
  • Учетная запись Google Cloud Platform и инструмент командной строки gcloud или другого облачного провайдера, с которым вы знакомы. Обратите внимание, что входящий трафик будет стоить денег, которые в нашем случае составляют 5 долларов в месяц.

Как разместить общедоступный веб-сайт на вашем домашнем Raspberry Pi

Прежде чем начать, убедитесь, что у вас настроена ОС Raspberry Pi. Если вы еще этого не сделали, ознакомьтесь с нашей статьей о том, как настроить Raspberry Pi в первый раз или как сделать безголовая установка Raspberry Pi (без клавиатуры и экрана).

1. Установить gitчто позволит нам клонировать код этого проекта.

sudo apt-get update && sudo apt-get install -y git

2. Клонировать репозиторий с примером кода. Этот код обеспечивает связь с датчиком и настраивает простой сервер для мониторинга в вашей домашней сети.

cd ~/
git clone https://github.com/rydercalmdown/pi_home_reverse_proxy.git

3. Запустите команду установки после спуска в хранилище. Это установит все необходимые компоненты SSH, а также nginx, простой сервер, который мы будем использовать в качестве примера.

cd pi_home_reverse_proxy
make install-pi

4. Создайте пару открытого/закрытого ключей SSH. Закрытый ключ останется на Raspberry Pi и будет использоваться вместе с открытым ключом для подключения к нашей облачной виртуальной машине.

ssh-keygen
# press enter to accept all default settings

5. Скопируйте открытый ключ SSH на потом. Это понадобится нам при настройке нашей виртуальной машины в облаке.

/home/pi/.ssh/id_rsa.pub
# Copy the results

6. Посетите облачную консоль Google и перейдите на страницу Экземпляры ВМ.

7. Нажмите «Создать экземпляр», чтобы создать новую виртуальную машину..

(Изображение предоставлено Tom’s Hardware)

8. Выберите запоминающееся имя для вашего экземпляра. Я называю свой «домашний обратный прокси».

9. Выберите желаемый регион и зону. Это не имеет большого значения, но хорошо выбрать что-то близкое к вам для низкой задержки.

(Изображение предоставлено Tom’s Hardware)

10. В конфигурации машины выберите «N1» для серии и f1-micro для типа машины. Это даст нам самую низкую ежемесячную стоимость, около 5 долларов США в месяц.

(Изображение предоставлено Tom’s Hardware)

11. Прокрутите вниз до раздела «Загрузочный диск». и слизнуть кнопку изменения. Установите операционную систему на Ubuntu и версию на «Ubuntu 20.04 LTS», оставьте все остальное без изменений и нажмите «Выбрать».

(Изображение предоставлено Tom’s Hardware)

12. Прокрутите вниз до «Брандмауэр» и установите флажки «Разрешить HTTP-трафик» и «Разрешить HTTPS-трафик».

(Изображение предоставлено Tom’s Hardware)

13. Прокрутите вниз экземпляра и нажмите «Создать».

14. Как только машина заработает, щелкните раскрывающийся список рядом с SSH, чтобы получить команду SSH. Я рекомендую использовать «Просмотр команды gcloud». Вставьте эту команду в свой терминал, чтобы подключиться по SSH к вашей облачной виртуальной машине..

(Изображение предоставлено Tom’s Hardware)

15. После подключения к виртуальной машине установите nginx с помощью следующих команд.

sudo apt-get update
sudo apt-get install -y nginx

16. Проверьте, работает ли nginx. выполнив следующую команду. Вы также можете посетить внешний IP-адрес в своем браузере, указанный рядом с вашей виртуальной машиной в консоли Google Cloud. При посещении вы должны увидеть страницу приветствия nginx.

sudo service nginx status
# Ctrl + C then enter to exit
# It should show “active (running)” in green if all is well

(Изображение предоставлено Tom’s Hardware)

17. Обновите конфигурацию по умолчанию с помощью пользовательской конфигурации обратного прокси-сервера.. Это говорит nginx перенаправлять весь трафик, который он получает, на порт на вашем компьютере.

cd /etc/nginx/sites-enabled
sudo rm default
sudo touch default
sudo nano default
# copy in the code below

Эта скорость кода ограничивает количество запросов до 5 в секунду, чтобы не перегружать pi во время интерактивных проектов. Если вы хотите принять больше, просто увеличьте число или удалите все строки, начинающиеся с limit_req, из файла без ограничений.

limit_req_zone $binary_remote_addr zone=basic:10m rate=5r/s;


server {
  listen 80;

  location / {
    limit_req zone=basic;
    proxy_pass  http://0.0.0.0:5000;
  }

}

18. Перезапустите службу nginx. и снова посетите внешний IP-адрес виртуальной машины. Вам должна быть представлена ​​страница «502 Bad Gateway», если все идет правильно.

sudo service nginx restart

(Изображение предоставлено Tom’s Hardware)

19. Используя следующую команду, создать пользователя для пи к SSH на виртуальной машине.

sudo useradd -m -p raspberry -s /bin/bash piconnect

20. Создайте каталог SSH и авторизованные файлы ключей и скопируйте открытый ключ, который вы скопировали с вашего Raspberry Pi.

sudo mkdir /home/piconnect/.ssh/
sudo touch /home/piconnect/.ssh/authorized_keys
sudo nano /home/piconnect/.ssh/authorized_keys
# copy in the public key you copied from your raspberry pi

21. Вернемся к Raspberry Pi. отредактируйте файл install_remote_connection.sh чтобы включить IP-адрес вашего удаленного сервера.

cd ~/pi_home_reverse_proxy
sudo nano scripts/establish_remote_connection.sh
# change REMOTE_HOST=your_remote_ip_address to the external IP you got from the Google Cloud Platform console

22. Запустите команду make connect чтобы установить SSH-соединение между вашим Raspberry Pi и вашим виртуальным сервером.

make connect

23. Посетите IP-адрес вашей виртуальной машины чтобы увидеть контент, работающий на Raspberry Pi, который обслуживается удаленно, а не на вашем домашнем IP-адресе.

(Изображение предоставлено Tom’s Hardware)

И вот оно! Вы передаете контент с вашего Raspberry Pi с IP-адреса Google Cloud через туннель SSH. Я использую эту настройку только время от времени, но для более постоянной настройки я бы рекомендовал подключить домен и защитить его с помощью LetsEncrypt на стороне виртуальной машины.

[ad_2]

Оцените статью
( Пока оценок нет )
Добавить комментарий

Top.Mail.Ru
اجمل جسم بنت hardpornx.net سكس تمريض
free punjabi xxx video porno-trash.net video 9.com
hot namitha indianhottube.com odia sxy
sonagachi girls rate pornucho.mobi nayanthara home
babhi porn yourporn.name dpsbokaro
xxxstepmom freepakistaniporn.com xnxxx sex videos
tamil sex videos twitter ganstagirls.info hindi x picture
www. kamukta.com mom2fuck.mobi xxx pourn
سكس الابن وامة freepornhunter.net سكس نيك موت
جنس كلاسيك bibshe.com فنانات عرب عاريات
warangal sex videos mojoporn.net english sex with
سكس امهات مصرى porn2you.org مدرسة شبرا الشرموطة
indian sexuniversity indiansexmms.me hyd x videos
shiro bara no kishi loriana hentaisin.com bricola 5
futanari club hentai hentai.name floatzel hentai