零成本个人公网网站搭建全流程(服务器搭建+内网穿透+绑定域名)
导言:
一个基础的网站由三部分构成:
1、公网域名
2、网页内容(html前端)
3、网站服务器(处理访问请求,返回数据的后端的运行环境)
例如百度网站
可以直观看到的是域名www.baidu.com,和网页内容(heml)
看不到的是后端运行的百度网站服务器
我们要实现自己的网站,能让他人任意访问,就需要具备相同的构成。
当然,不用公网域名也可以,那样就是局域网内的网站,实际作用就很受限了
域名获取
付费方案:在阿里云万网购买喜欢的域名
免费方案:注册NATPP网站,获取免费域名(域名三天到期,可免费再次申领三天,可无限续杯)
根据需求选择web协议
保存authtoken和域名
至此,我们获得了可以分享给他人访问的域名
内网穿透
修改内网穿透配置文件
使用本地配置文件config.ini - NATAPP-内网穿透 基于ngrok的国内高速内网映射工具
运行内网穿透软件natapp.exe
上图是成功运行界面
搭建网站服务器
1. Python Web 服务器示例(Flask)
假设 Natapp 映射的是 5000 端口,你可以写 server.py:- from flask import Flask, render_template
- app = Flask(__name__)
- @app.route("/")
- def home():
- # Flask 会去 templates/index.html 找文件并返回
- return render_template("index.html")
- if __name__ == "__main__":
- # 用 0.0.0.0 监听所有地址,端口 80(Natapp 转发用)
- app.run(host="0.0.0.0", port=80)
复制代码 安装 Flask:运行:此时本地的 80端口上已经有网站了。显示的是本地index.html网页文件
网页内容html前端:
在此我就只是展示几段文字,一个图片,一个跳转按钮。由于图片是本地图片,使用预览并不能显示
图片
运行效果
web服务器内网穿透软件
电脑访问效果手机访问效果4. 注意事项
- Natapp 免费版域名会变,如果你想固定一个域名,需要升级到付费版。
- 你的 Flask 程序必须一直运行,Natapp 客户端也要一直运行,否则外部无法访问。
杂谈
目前使用Windows PC个人电脑运行网站部署,但是个人电脑耗电较高,可以使用性能较高,稳定的做法,租个云服务器来跑网站。
但我有卡片电脑——泰山派(类似树莓派),运行linux系统,搭建方法基本一致,搭建运行python web服务器,运行Natapp内网穿透(linux版本)
也可以手机下载Termux,配置Ubuntu环境,运行python服务器和Natapp内网穿透(linux版本)
非常的自由哈哈
预想中linux卡片电脑弄个网页挂载个数据库,绘制ui界面,配合MQTT或者WebSocket,加个esp32s3+lvgl+检测传感器数据上传到网站显示,做个物联网云平台,来当毕设,感觉会挺有意思
如果各位大佬觉得该文章对您有帮助,有意思,恳请点点左下角的推荐该文,不胜感激!
基础代码
服务器
python server
- # from flask import Flask# app = Flask(__name__)# @app.route("/")# def home():# return "[size=6]Hello! 这是pyc的 服务器[/size]
- "# if __name__ == "__main__":# # 修改端口为 80,与 Natapp 配置匹配# app.run(host="0.0.0.0", port=80)from flask import Flask, render_template
- app = Flask(__name__)
- @app.route("/")
- def home():
- # Flask 会去 templates/index.html 找文件并返回
- return render_template("index.html")
- if __name__ == "__main__":
- # 用 0.0.0.0 监听所有地址,端口 80(Natapp 转发用)
- app.run(host="0.0.0.0", port=80)
复制代码 网页html
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="utf-8" />
- <title>我的 Flask 网页</title>
- </head>
- <body>
- <h1>Hello! 这是 xxx的服务器 Web 页面</h1>
- </body>
- </html>
复制代码 Natapp 配置文件config.ini
- #将本文件放置于natapp同级目录 程序将读取 [default] 段
- #在命令行参数模式如 natapp -authtoken=xxx 等相同参数将会覆盖掉此配置
- #命令行参数 -config= 可以指定任意config.ini文件
- [default]
- authtoken= #对应一条隧道的authtoken
- clienttoken= #对应客户端的clienttoken,将会忽略authtoken,若无请留空,
- log=none #log 日志文件,可指定本地文件, none=不做记录,stdout=直接屏幕输出 ,默认为none
- loglevel=ERROR #日志等级 DEBUG, INFO, WARNING, ERROR 默认为 DEBUG
- http_proxy= #代理设置 如 http://10.123.10.10:3128 非代理上网用户请务必留空
复制代码 来源:豆瓜网用户自行投稿发布,如果侵权,请联系站长删除 |