利用树莓派搭建简易服务器

2023-11-14

读研以来笔者一直负责实验室的网络维护,可以说是实验室名副其实的首席大网管。整个实验室是从学校网络中心购买了一个教育网的公网IP地址和带宽,公网IP绑定了实验室的主路由器,而主路由器就在笔者卡位的旁边。有一天笔者突发奇想,拿了手头的树莓派3结合主路由器搭建了一个稳定的服务器,效果还不错,把搭建方法和过程和大家分享一下。
笔者利用树莓派搭建的服务器目前只同时具有3个功能:

  • 第一个功能是作为git服务器,托管本组的project代码,这样也在github上面省了一个私有仓库;
  • 第二个功能是作为一个远程视频监控的服务器,利用之前文章里面介绍的关于mjpg-streamer的用法,在树莓派3上安装了一个USB的webcam,做远程视频监控;
  • 第三个功能是作为一个网页游戏的服务器,笔者在研一上学期多媒体技术的课程中做了一个以母校中山大学为背景的网页小游戏,这一次直接把游戏挂在服务器上面,可以让其他人也玩玩看啦。

1. 用到设备

  • 树莓派3以及配套风扇;
  • 任意一款USB webcam网络摄像头,插在树莓派上面免驱使用;

树莓派3烧录pi专用的raspbian系统,之后风扇按照电路图(如下图所示),接5V和GND,这样树莓派通电开机风扇开始工作。
这里写图片描述

2. git服务器的配置

树莓派上面git服务器端执行:

sudo apt-get install wget git-core
sudo apt-get install ssh
sudo mkdir git #创建一个文件夹存放git服务器的文件
cd /home/git
mkdir test.git #仓库名字
cd test.git
git --bare init #初始化仓库

这里写图片描述

自己电脑的客户端git bash

git add .
git commit -m "test"

#xxx.xxx.xxx.xxx是树莓派服务器的IP地址,服务器应当是有端口号的,git用的是22号,这里我们稍后需要在主路由器里面做端口映射
git push ssh://xxx.xxx.xxx.xxx/~/test.git
git clone ssh://xxx.xxx.xxx.xxx/~/test.git

3. 远程视频监控服务器的配置

配置细节可以参考本博客的《树莓派安装MJPG-streamer过程》,这里不过多重复讲解,因为本文用到的是Webcam所以省去很多麻烦。配置好之后,我们使用树莓派的8888端口作为该视频服务器的端口号。
所以如果搭配成功,并且成功启动,在同一网段下,浏览器输入xxx.xxx.xxx.xxx:8888应该就可以看到监控画面。
这里写图片描述

4. 网页服务器的配置

本文使用的网页服务器解决方案是:树莓派上搭建LNMPWeb服务器。修改Ngnix配置文件(/etc/nginx/sites-available/default),使得可解析PHP文件。

sudo apt-get update  && sudo apt-get upgrade
sudo apt-get install nginx
sudo /etc/init.d/nginx restart

接着把要运行的网页游戏放在ngnix的目录下,首先需要修改ngnix的配置:

sudo vi /etc/nginx/sites-available/default

这里写图片描述
画黄线的是该服务器占用的树莓派端口号和文件存放路径,将文件存放至该路径下。开启服务器之后,在同一网段浏览器输入:XXX.XXX.XXX.XXX:8080就可以看到游戏界面。
这里写图片描述

5. 主路由器配置

笔者实验室的是Netgear路由器,连接上该路由器之后(无线或者有线均可),输入管理员用户名和密码即可进入管理界面(最好修改默认的用户名和密码,安全起见)之前实验室不知道是谁恶作剧修改了管理员密码,导致笔者不得不重新配置路由器。
进入之后选择端口映射的功能,并找到树莓派的IP地址,将其固定为192.168.1.15(大家根据自己路由器实际情况设定即可),然后做端口映射,尽量选择一些不常用的端口。

  • 将192.168.1.15的22端口映射为路由器的6666端口,给git服务器用;
  • 将192.168.1.15的8888端口映射为路由器的7000端口,给远程监控服务器用;
  • 将192.168.1.15的8080端口映射为路由器的9400端口,给网页服务器用;

启用之后,假设路由器IP为XXX.XXX.XXX.XXX,那么在外网环境下在浏览器输入:

  • XXX.XXX.XXX.XXXX.7000即可访问远程监控服务器;
  • XXX.XXX.XXX.XXXX.9400即可访问游戏网页服务器;

使用putty输入XXX.XXX.XXX.XXXX:6666即可ssh到树莓派里面;

使用git bash输入:
- git push ssh://XXX.XXX.XXX.XXXX:6666/~/test.git
- git clone ssh://XXX.XXX.XXX.XXXX:6666/~/test.git

当然别忘了服务器别断网断电,使用之前,开启所有服务器功能:

sudo /etc/init.d/nginx restart &
sudo ./mjpg_streamer -i "./input_uvc.so -d /dev/video0 -n -y -f 25" -o "./output_http.so -w ./www -p 8888" &

6.参考文献

1.用树莓派搭建GIt私有服务器

2.树莓派安装MJPG-streamer过程

3.树莓派搭建Web服务器(LMNP)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

利用树莓派搭建简易服务器 的相关文章

随机推荐

  • Linux上的虚拟化技术

    虚拟化技术的方法 架构和实现概览 2006年12月29日 虚拟化技术的应用十分广泛 当前虚拟化技术主要关注于服务器的虚拟化 或在单个主机上寄存多个独立的操作系统 本文首先介绍虚拟化技术的原理 然后讨论多个虚拟化技术的实现方法 另外介绍了一些
  • 铱(Iridium)系统的通信体制

    铱系统已经是很老的系统了 但对于我们深刻了解低轨卫星通信系统还是很有帮助的 窥一斑而知全豹 铱系统是世界上第一个LEO全球卫星移动通信系统 1995年1月获得美国联邦通信委员会看许可 1997年5月发射第一颗卫星 1998年5月完成星座布置
  • 【React+TS】从零开始搭建react+typescript+router+redux+less+pxToVw自适应+sass+axios反向代理+别名@+Antd-mobile

    一 通过create react app脚手架创建项目 npx create react app testproject template typescript 在vscode中打开项目 可以看到顺利生成了react项目且组件的后缀为tsx
  • 关于parallelStream()引发线程不安全问题

    一 问题代码 public class ParallelStreamTest public static void main String args List
  • 即兴讲话的万能公式(赶过猪)

    即兴讲话就是在没有充分准备的情况下进行的讲话 很多人在即兴演讲的时候会心跳加速 语无伦次 大脑一片空白 甚至手脚发麻 有时候即使经过准备 演讲稿已经写好了 上台前也背诵过了 但是一到台上还是紧张的 稿子都忘记了 其实造成这种情况 很大部分的
  • ping, ping6 (icmp, icmpv6)

    选项 I interface address Set source address to specified interface address Argument may be numeric IP address or name of d
  • Django 从零开始实现简单的restful应用

    安装Django 我是在windows上安装的 之后在linux上试一下再补充上来 可以通过pip直接安装 pip install django 需要使用到mysql 数据库 pip install mysqlclient 新建项目 安装以
  • Node =》 nodemon

    在编写调试Node js的时候 如果修改了项目的代码 则需要频繁的手动close掉 然后再重新启动 非常频繁 现在可通过nodemon这个工具 能够监听项目文件的变动 当代码被修改后 nodemon会帮我们重新启动项目 极大方便了开发和调试
  • 在CSDN学Golang云原生(git)

    一 git的工作流程 Golang的Git工作流程与其他语言的Git工作流程类似 通常包括以下步骤 创建分支 在本地代码库中创建一个新的分支 该分支用于开发新功能或修复错误 编写代码 在创建的分支上进行编码 并将更改提交到本地版本控制库中
  • 【Egg从基础到进阶】一:Egg项目初始化及基础入门

    目录 Egg js 为企业级框架和应用而生 我们希望由 Egg js 孕育出更多上层框架 帮助开发团队和开发人员降低开发和维护成本 使用Egg 脚手架创建一个Egg项目 node gt 14 20 0 app router app cont
  • Java架构师技术进阶路线图详解

    在企业里 一名架构师已经可以算是高端人物了 但架构师也是需要学习的 任何人与事物都需要学习 下面我们就来了解一下Java架构师到底该如何进阶 请看如下 一 阅读源码 深入的Java学习 经典源码阅读不可少 常见的设计模式 编码必备 Spri
  • 如何给elementui中表格的行设置样式

  • 【C++ 存储和读取二进制文件以及类的实例】

    很多时候程序运行时的数据都以类的对象的形式存储 那么如何将这些对象保存使得下一次运行程序的时候可以直接使用呢 Step 1 gt 首先我们需要知道如何读写二进制文件 inline size t readBinaryFile const ch
  • Elasticsearch基础1——搜索引擎发展史和工作流程、es/es-head/kibana的基础安装

    文章目录 一 搜索引擎 1 1 搜索引擎的发展背景 1 2 Lucene和Elasticsearch 1 3 Solr和Elasticsearch对比 1 4 数据搜索方式 1 5 搜索引擎 1 5 1 搜索引擎工作流程 1 5 2 网络爬
  • SVN:This client is too old to work with working copy…解决办法

    svn This client is too old to work with working copy 由于svn工作拷贝目录下都有个 svn目录 里面保存着svn需要的一些版本信息等 当客户端软件升级后 里面的信息也相应增加以支持更多的
  • 如何查看共享服务器文件夹权限设置,如何共享服务器文件夹权限设置

    如何共享服务器文件夹权限设置 内容精选 换一换 Linux操作系统的弹性云服务器默认只能通过root帐号使用mount命令进行挂载文件系统 但可通过赋予其他普通用户root权限 达到使非root的普通用户能够在弹性云服务器上使用mount命
  • 双线macd指标参数最佳设置_15分钟macd参数设置方法 15分钟k线macd指标如何判断买卖点...

    炒股投资过程中 我们通常会借助多种指标来判断股票买卖时机 今天为大家分享判断股票买卖点的组合是15分钟k线与macd指标 那么15分钟macd参数设置方法是什么 15分钟k线macd指标如何判断买卖点 下面小编为大家来详细介绍下15分钟线m
  • 网络穿透代理局域网

    网址 穿透网址 开启通道 开始代理
  • ARM中的---汇编指令

    一 带点的 一般都是ARM GNU伪汇编指令 1 text data bss 依次表示的是 以下是代码段 以下是初始化数据段 以下是未初始化数据段 2 global 定义一个全局符号 通常是为ld使用 比如经常看到的 global star
  • 利用树莓派搭建简易服务器

    读研以来笔者一直负责实验室的网络维护 可以说是实验室名副其实的首席大网管 整个实验室是从学校网络中心购买了一个教育网的公网IP地址和带宽 公网IP绑定了实验室的主路由器 而主路由器就在笔者卡位的旁边 有一天笔者突发奇想 拿了手头的树莓派3结