内网穿透服务器搭建入门
我的这个小网站在一两年前就已经搭建了出来
但是当时买到的服务器的配置过低,只有1H1G,因为运行内存太低,所以经常导致nginx崩溃
虽然当时想提升配置,但是其他云服务器要么价格太高,要么需要备案
↓
中间找了很长时间,服务器也宕机了很长时间
最终搞了个natapp的内网穿透,搭配自己买的开发板,总算是稳定了下来
↓
以下是关于在orangepi上面搭建halo、配合natapp内网穿透,以及阿里云免费ssl证书申请及安装的整体流程
orange pi
如果只是做网站的话,建议直接选择orangepi 4或者orangepi 5的4G版本,价格在200-400元之间
系统盘的话,我选择了一个64G的SD卡来作系统盘
当然,orangepi也支持nvme的固态硬盘,如果你有需要的话,也可以使用
刷写系统
刷写系统的操作流程很简单,而且orangepi官方提供了相关的刷写工具——SDCardFormatter、win32diskimager
具体流程如下↓
将SD卡连接电脑,通过SDCardFormatter将SD卡格式化为标准的系统卡
然后通过win32diskimager将选择好的系统刷写进去(镜像文件在www.orangepi.cn)
↓
另外需要注意的是:orangepi使用的芯片为arm架构,非平常的amd架构
而arm架构在使用时相较于平常会有一定的限制,例如↓
需要选择arm的镜像,并且使用相关的镜像源,否则无法运行(ubuntu的arm镜像源为ubuntu-ports)
部分第三方软件并没有支持arm架构,或者并没有支持orangepi的官方arm镜像(todesk、docker中的halo等等)
当然这只是一些小问题,在安装或设置的时候稍微注意点就好
↓
在选择安装镜像的时候,我比较推荐直接使用官方提供的ubuntu-server镜像
因为官方的镜像里设置了自动获取ip地址,并且配置好了华为云的镜像源
在刚开始安装的时候,只需要连接路由器,然后通过内网地址直接xshell连接就行
如果你没有散热器的话,使用server镜像对于开发板的散热也有帮助
↓
修改镜像源:vim /etc/apt/sources.list
ubuntu-ports镜像源推荐:
中科大:https://mirrors.ustc.edu.cn/
阿里云:https://developer.aliyun.com/mirror/
华为云:https://mirrors.huaweicloud.com/home
清华:https://mirrors.tuna.tsinghua.edu.cn/
南京大学:https://mirrors.nju.edu.cn/
halo
因为arm架构的原因,docker中的halo并不能直接的在orangepi上面安装使用
所以建议直接使用docker compose的安装方式来安装
↓
另外需要注意:
在v2版本中,docker compose的命令从之前的docker-compose更改为了docker compose
在运行命令时注意修改
docker compose安装
以下为具体安装步骤:
1、卸载系统内老版docker或其他冲突包:
for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done2、安装必要的系统工具:
sudo apt-get update
#以上镜像可以选择其中一个,也可以都写
#上面的账号密码等信息可自行选择,不要使用默认
3、启动halo服务
docker-compose up -d以上即安装好halo,可以通过http://内网ip/8090,或http://内网ip/8090/console访问自己的网站了
网络设置
因为这一次的网站,我是搭建在自己的orangepi开发板,并且连的是没有公网ip的家庭宽带
所以在网络设置上面,我选择了natapp的内网穿透,搭配上阿里云申请到的免费ssl证书,实现https访问
是的,骑着单车去酒吧,该省省该花花
↓
ssl证书自行去阿里云申请(当然也可以去淘宝找找),并放在orangepi中任意位置,这里不再赘述
nginx反代
因为我们这一次的安装是基于内网,而且后面要添加ssl证书实现443端口访问
所以此处的nginx反代和halo官方的设置并不相同
↓
1、安装nginx
sudo apt-get update
sudo apt-get install nginx -y2、配置nginx反代
编辑nginx配置文件:
sudo vim /etc/nginx/sites-available/default将server块修改为如下内容:
server {
listen 80;
server_name yourdomain.com;
location / {
proxy_pass http://127.0.0.1:8090;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
3、测试并重启nginx
sudo nginx -t
sudo systemctl restart nginxnatapp内网穿透
1、前往natapp官网注册账号,购买隧道(免费隧道也可以,但域名随机且不稳定)
2、下载natapp客户端,放到orangepi中
chmod +x natapp
./natapp -authtoken=你的authtoken3、将natapp设置为开机自启,可以使用systemd服务
sudo vim /etc/systemd/system/natapp.service写入以下内容:
[Unit]
Description=natapp
After=network.target
[Service]
Type=simple
ExecStart=/path/to/natapp -authtoken=你的authtoken
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
启用服务:
sudo systemctl enable natapp
sudo systemctl start natappSSL证书配置
1、将阿里云申请的SSL证书(.pem和.key文件)放到orangepi中,例如放在 /etc/nginx/ssl/ 目录下
2、修改nginx配置,添加443端口监听:
server {
listen 443 ssl;
server_name yourdomain.com;
ssl_certificate /etc/nginx/ssl/yourdomain.pem;
ssl_certificate_key /etc/nginx/ssl/yourdomain.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
location / {
proxy_pass http://127.0.0.1:8090;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
server {
listen 80;
server_name yourdomain.com;
return 301 https://$host$request_uri;
}
3、测试并重启nginx
sudo nginx -t
sudo systemctl restart nginx总结
以上就是一套完整的基于Orange Pi + Halo + natapp + nginx + SSL的内网穿透建站方案
整体成本极低,适合个人博客、测试站点等场景
当然,如果网站流量较大或者对稳定性要求较高,还是建议购买正规的云服务器