主页
文章
分类
标签
关于
搭建私人服务器
发布于: 2024-1-23   更新于: 2024-1-23   收录于: liunx
文章字数: 1486   阅读时间: 3 分钟   阅读量:

使用自己的笔记本搭建个人服务器

背景:我有一台闲置笔记本,想利用起来做私人服务器。之前购买阿里云,内网穿透到自己的笔记本,(推荐使用 frp 或者 tailscale),发布一些简单的服务,CICD 使用腾讯CODING实现代码提交自动发布(不嫌麻烦的也可以自己搭建服务,推荐使用 drone等轻量化工具)。但是后来过期了,发现自己使用的场景并不多,自己又比较喜欢折腾,那么如果才能白嫖呢,接下来是我的实现方案

宽带申请公网

​ 去营业厅办理开放公网业务,我使用的理由是想搭建一个监控系统,千万不要说自己要搭建网站服务类,国内是不太允许类似操作。为避免后续问题,可找一些理由。办理起来并不麻烦,去了一趟营业厅,就办理好了业务。如果这一步失败了,推荐购买云服务,推荐阿里云 腾讯云(可避免后续操作)

做系统

​ 使用闲置的笔记本搭建系统,我这边搭建是centos,看个人喜好。

购买域名

​ 在国内云服务商购买域名,便宜为主,推荐阿里云 腾讯云

绑定DNS

​ 如果第一步失败了,那么只能采用云服务转发到内网的形式,在购买的云服务器商绑定域名,推荐在同一厂商购买,如果公网申请通过,采用国外的dns解析,推荐cloudflare良心云服务商,DNS解析时需要打开代理(可隐藏真实IP同时可用来指定转发到你的外网端口)。此时有人会问,既然已经开放了公网,为什么不使用国内解析dns。国内宽带一般禁用80和443端口,如果你不介意使用域名+端口访问的话,可以直接使用国内解析dns,特别提醒,国内的服务器都需要备案

配置端口转发

​ 打开宽带管理页面,高级设置端口映射添加映射列表:配置局域网IP,内网端口 和 外网端口,此时你可以使用公网IP+外网端口访问到你的服务。

cloudflare配置规则

​ 打开cloudflare管理页面,在Rules中Origin Rules 中增加 rule ,比如 field :SSL/HTTPS Rewrite to 你配置的外网端口

测试页面

​ 此时你可以通过你的域名 访问到你部署的服务,注意在cloudflare 站点打开SSL 设置为Flexible,免去配置证书的烦恼

动态IP上报

结束了吗?当然没有,国内宽带公网IP并不是固定的,会时时变动,这就是为什么需要购买域名的原因,不仅如此域名还能很好的规避云服务的风险。推荐使用管理工具 1panel ,可以部署DDNS-GO 选择你的DNS服务商,配置Token 即可上报IP地址,我这里选择的是通过接口获取,然后配置Demains地址为你在云服务商配置的域名,推荐使用*.域名,全匹配,通过nginx或者其他服务,采用二级域名转发的形式去实现,可使用1panel安装里面应用 openResty

服务监控

​ 那么没有云监控,如何能监管自己的服务呢。这里推荐给大家kuma,(也可以使用1panel部署),那么怎么才能监控到服务器内存和cpu的使用情况呢,我使用的是kuma的被动监控类型,在1panel中构建计划,你也可以使用liunx的cronlab去实现,原理上是一致的

例如

内存监控脚本:

#!/bin/bash
memory_threshold=80
memory_usage=$(free | awk '/Mem/{printf("%.2f"), $3/$2*100}')
if (( $(echo "$memory_usage <= $memory_threshold" | bc -l) )); then
    url="http://********:3001/api/push/*******?status=up&msg=OK&ping="
    curl -s "$url"
    echo "内存率$memory_usage%<=$memory_threshold%正常"
else
    echo "内存率$memory_usage%>  $memory_threshold%异常"
fi

cpu监控脚本

#!/bin/bash
threshold=80
cpu_usage=$(top -bn1 | grep "Cpu(s)" | awk '{print int($2)}')
if [ "$cpu_usage" -le "$threshold" ]; then
    url="http://*******:3001/api/push/*******?status=up&msg=OK&ping="
    curl -s "$url"
    echo "CPU使用率$cpu_usage%<=$threshold%正常"
else
    echo "CPU使用率$cpu_usage%>  $threshold%异常"
fi

此时你的私人服务器已经部署完毕了,尽情玩耍吧