【内网映射】在Jetson Nano上搭建Web服务器
温馨提示:这篇文章已超过630天没有更新,请注意相关的内容是否还可用!
先来看看成果吧,UP只是简单学了两句html,写了个简单的网页,在Jetson Nano上搭建Web服务器后将网页放在服务器根目录下就可以了。
(以后这个页面就作为UP的主页了)
也可扫码进入网页
(由于宿舍23:00——6:00断电,所以这个时间段网页进不去哦!)
网页二维码
一、设置静态IP
首先需要为Jetson Nano设置静态IP,可以在路由器IP与MAC页面将设备与IP绑定,以后Jetson Nano每次开机的IP就固定了
设置静态IP
二、搭建apache2服务器(搭建web服务器)
1.执行更新命令:
(1) sudo apt-get update
(2) sudo apt-get upgrade
2.安装apache2:sudo apt-get install apache2
3.测试:apache2的默认根目录是/var/www/html/,可以在局域网中的设备浏览器中输入【设备IP】,如果没问题的话会出现以下画面,apache2安装配置成功!!
这个页面显示了根目录和相关配置文件的位置等信息,赶快写个简单的网页放到默认目录中输入【设备内网IP】+【文件名】试试吧!!!
三、natapp账号注册及设置
以前一直在用花生壳,因为花生壳提供了树莓派的客户端,但花生壳没有提供支持Jetson Nano的客户端,所以这里改用natapp来进行映射
1.登录natapp官网
2.注册账号并登录
3.最好实名一下,否则可能影响使用
4.购买隧道:这里需要注意,因为我们要用Jetson Nano做web服务器,无论是免费隧道还是付费隧道,必须支持Web协议和https才能搭建Web服务器
(1)免费隧道
natapp提供的免费隧道支持web,但它的域名是随机分配的动态域名,很不方便,如果想使用免费的,可像下图一样设置,【隧道协议:Web】&&【本地端口:80】(apache2默认80端口,若从未更改过就填80)
然后点击免费购买,可在我的隧道中见到刚免费购买的隧道
(2)付费隧道
你也可以购买付费隧道,【记住一定得看清是不是支持https和适用】,这里我买的是VIP_2(因为我觉得比较划算)
5.购买二级域名:在购买的时候需要买一个二级域名,不买的话不能登录web,便宜的也就三块钱/年(超便宜)
买的时候注意,买不需要实名等条件的域名【当然如果你不嫌麻烦也可以买】
6.隧道配置:购买后在我的隧道中可进行配置【这里的authtoken是客户端登陆的凭证,复制它,后面要用】
点开相应隧道的配置,如下图进行设置,端口默认80,Jstson Nano的本地地址必须是静态的
四、natapp客户端下载、安装及开启
1、隧道设置好了,接下来需要在Jetson Nano上安装natapp了,在natapp首页点击立即下载,进入下载页面
2、因为Jetson Nano 是arm64位的,所以下载相应客户端软件,下载好后,将它传至Jetson Nano的特定位置,我将它放在了~/NVIDIA/目录下
3.测试执行:在natapp的目录下,执行./natapp token=【authtoken】,这里的authtoken是刚才我的隧道页面的authtoken码,将它复制过来回车,如果运行后出现以下页面,证明运行正常,此时你可以写一个简单的网页放到/var/www/html/下,然后在浏览器中输入:【二级域名】+【网页名称】,如我的域名是【】,网页名称是【index.html】,所以我输入
成功了!!!!
4.购买流量:现在,服务器是apache2,它在Jetson Nano上运行;买了隧道,买了域名,还需要买流量啊!!!如果你账户里没有余额,流量会扣费,扣到-0.01元时会停止服务,登录客户端会弹出错误信息
去流量包那里点击【购买流量】
此时一定要注意不要买错,要买你的隧道相应的流量包类型,我买的是VIP_2型(价格也不贵)
四、开机自启动接下来就需要开执行开机启动了,说来也奇怪apache搭建web服务器,Jetson Nano把ubuntu的/etc/rc.local给取消了,这可让我一头雾水apache搭建web服务器,最后我在网上找到了解决办法,原来是把rc.local服务化了
Jetson Nano没有rc.local的解决办法
首先创建systemd的服务脚本
sudo vim /etc/systemd/system/rc-local.service
输入以下信息:
[Unit]
Description=/etc/rc.local Compatibility
ConditionPathExists=/etc/rc.local
[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
编辑完成,保存并退出
执行命令:sudo systemctl enable rc-local.service
然后就按以前的格式编辑/etc/rc.local就好了。
最后记得chmod +x /etc/rc.local
cd 【natapp的目录】
然后需要创建一个开机要执行的shell文件,我给起名natappstart.sh
touch natappstart.sh
sudo chmod a+x natappstart.sh
sudo vim natappstart.sh
然后在natappstart中填入一下内容:
#!/bin/bash
cd 【natapp的绝对路径】
./natapp-authtoken=【authtoken码】
然后在rc.local中启动它就行了,输入命令:
sudo vim /etc/rc.local
在rc.local中加入:
#!/bin/bash
bash 【natappstart.sh的绝对路径】&
先保存,退出去
执行命令:bash /etc/rc.local
如果出现以下界面,就表明映射成功
F
看外网能不能访问到网页,或者看一下natapp网页上的在线状态【注意要刷新网页】
也可以用命令:ps -aux|grep natapp
来查看一下它是否在后台执行
若成功在后台运行,sudo reboot重启后看看它是否开机自启了,如果开机自起,这篇文章也就接近尾声了
写文章不易,UP写了好长时间,希望能帮到大家,感谢三连哦!!!