使用内网云+GitHub Pages免费部署动态网站

这篇具有很好参考价值的文章主要介绍了使用内网云+GitHub Pages免费部署动态网站。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、失败的经历

1.花生壳

2. nat123

3. 网云穿

4. cpolar

5. ngrok

6.金万维快解析

7.神卓互联

8.内网云(neiwangyun.net)

9.localhost.run

10.GitHub Pages(pages.github.com)

11.IPv6

12.IPv6+GitHub Pages

13.FRP

14.nps

二、终极方案:内网云+GitHub Pages


一、失败的经历

相信很多人都想搭建网站吧。但是,搭建网站不光得自己访问,还能让别人也能访问。

但是我们家里的设备一般深处内网,无法实现外网访问。

于是,很多人会在网上找各种各样的“内网穿透”软件,并尝试,但是没有一个能如愿。

我也是一样的,接下来,我给大家分享一下我失败的尝试。

1.花生壳

网上很多人推荐。结果安装了一下,发现几乎所有功能都要收费。直接放弃。

2. nat123

说免费,但是速度贼慢。关键是有一次我配置错了,想改,它告诉我需要什么N币,我搜怎么获取,答:花钱!我才意识到,这个软件说免费,其实是骗人的!果断放弃。

3. 网云穿

我的天啊,账号都注册不了,报错Unknown error (-1),在登录页面无限刷新。放弃。

4. cpolar

说很稳定,想尝试一下。结果它告诉我域名每24小时变一次!这样的网站有什么用!

5. ngrok

跟cpolar一样。

6.金万维快解析

用了一个月,不错!能自定义二级子域名!(喜)结果有一天突然无法访问(详情见这篇问答),然后就放弃了。太不稳定了!

7.神卓互联

跟花生壳一样。

8.内网云(neiwangyun.net)

非常简单,直接SSH就行了。但也是不支持自定义二级子域名。

9.localhost.run

同内网云。

(关于内网云和localhost.run,我发布了一篇问答,感谢大家回答。)

10.GitHub Pages(pages.github.com)

只能部署静态网站。

使用内网云+GitHub Pages免费部署动态网站

 放弃放弃。

11.IPv6

据说移动给咱们都分配了IPv6的公网IP,我高兴得不得了!

可惜,移动分配的IP是动态的。

使用内网云+GitHub Pages免费部署动态网站

 等等!前面不是讲了GitHub Pages吗!!!

12.IPv6+GitHub Pages

我写了个程序,不断把IPv6公网IP给Push到GitHub仓库里,然后对GitHub仓库开通GitHub Pages服务,然后你只要访问了GitHub Pages,就会自动查询IP,然后跳转到这个IP。(具体源码请参阅https://github.com/bjsdfz17ban/webddns)

我检查了一下,我的IPv6 IP是2409开头的,网上告诉我是公网IP。我访问了一下,没问题。

(大喜)

……

直到有一天,我做了一个游戏,给同学们玩。

同学A:你这个网站怎么访问不了啊?

我:?是不是你的问题?

同学B:我也访问不了

我:???你换个浏览器试试

同学A:换浏览器也不行

我:

一脸懵逼

二脸懵逼

五脸懵逼

十脸懵逼

百脸懵逼

万脸懵逼

亿脸懵逼

公网IP居然还访问不了!!!服了!!!

13.FRP

不少人推荐,结果它说要一台公网IP的服务器!!!我服了,我都有公网IP了,还用锤子的内穿透!!!

使用内网云+GitHub Pages免费部署动态网站

 (图片出处:https://zhuanlan.zhihu.com/p/437319496)

14.nps

同FRP。

二、终极方案:内网云+GitHub Pages

我开始仔细回忆失败过的方案……

突然,我想起了那些域名随机变化的内网穿透软件。这不是跟IPv6的动态IP是一样的吗?既然IPv6动态IP能用GitHub Pages解决,那么动态域名也能这么解决啊!!!!

于是,我很快确定了一个大体思路:找到那些很稳定且没有什么限制,但是域名随机变化的内网穿透软件(cpolar、内网云……),然后写程序破解它们的客户端,获取到那个域名,存到文件里,最后把文件push到GitHub上,再部署GitHub Pages。接着,照常用GitHub Pages部署静态网页,表面上看是静态页面,但是一个网页如果要访问后台,只需要查询一下那个文件,就可以获取到后台的域名了。再向后台发送ajax请求,就可以与后台交互了。(看不懂没关系,接下来有更具体的讲解)

最终,我选择了“内网云”作为最终的内网穿透软件。因为“内网云”使用SSH作为客户端,比较容易破解到那个随机变化的域名。

具体的部署过程如下:

  • 1.在GitHub上创建一个仓库。
  • 2.对仓库部署GitHub Pages。
  • 3.启动SSH,连接内网云的服务器,并且将输出结果重定向到文件A(SSH的输出结果包含了那个随机域名)。
  • 4.通过C语言,在文件A里找到随机域名(实现细节略),并输出到另一个文件B。
  • 5.将文件B push到GitHub仓库中。
  • 6.在后台服务器上重复步骤3~5。
  • 7.写一个静态网页(HTML)。
  • 8.这个网页每当需要与后台交互时,就去读取文件B的内容(通过ajax)。
  • 9.获取到后台的域名后,就可以与后台交互了(还是用ajax)。
  • 10.将网页Push到GitHub仓库中。

这样,就可以一分钱不花,免费部署一个动态网站,并实现外网访问。

如果有没理解的内容,欢迎评论区交流!

三、代码实现

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <unistd.h>
char cmd0[4096],cmd1[4096],cmd2[4096];
char tmp0[4096];
int main(int argc,char **argv){
    if (argc != 6){
        printf("Usage: openlpl <http|https|ipport> <port> <file> <remote> <git-branch>\n");
        printf("Example: openlpl https 80 80.txt origin master\n");
        return 0;
    }
    char *mode = argv[1];
    char *port = argv[2];
    char *dir = ".";
    char *file = argv[3];
    char *rem = argv[4];
    char *br = argv[5];
    sprintf(tmp0,"cd %s",dir);
    system(tmp0);
    sprintf(cmd0,"ssh -R 80:localhost:%s sh@sh3.neiwangyun.net > .%s.tmp 2> /dev/null",port,file);
    sprintf(cmd1,"cat .%s.tmp | grep %s | grep -v tunnel | awk '{print $3}' > %s",file,mode,file);
    sprintf(cmd2,"git add . && git commit -m \"changed domain\" && git push %s %s",rem,br);
    while (1){
        if (fork() == 0){
            system(cmd0);
            return 0;
        }
        sleep(5);
        system(cmd1);
        system(cmd2);
        wait(NULL);
    }
    return 0;
}

将这个文件存储为openlpl.c(OpenLPL: Open Local Port Locating,开源的本地端口定位服务)

然后编译:

gcc openlpl.c -o openlpl

运行:

./openlpl <协议类型 http|https|ipport> <端口> <存放域名的文件> <仓库地址> <仓库分支>

例如:

./openlpl https 80 80.txt git@github.com:name/repo.git master

这段代码会将80端口穿透到外网,并不断地把生成的随机地址Push到git@github.com:name/repo.git的master分支。文章来源地址https://www.toymoban.com/news/detail-501327.html

到了这里,关于使用内网云+GitHub Pages免费部署动态网站的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何在Github上免费部署网站

    部署网站需要服务器,但是如果你只是部署静态网站就可以蹭Github上的免费服务器。因为发现现在的过程和目前其它博客上的推文有差别,所以自己更新一篇。 1.点击右上角图像旁边 + 号,选择“新建仓库” 2.输入名称创建即可,如果你想让别人看到,必须选Public。 3.创建成

    2024年02月07日
    浏览(29)
  • 使用 Github Actions 工作流自动部署 Github Pages

    actions顾名思义就是一堆动作,是一个持续集成服务,持续集成包含了拉代码、运行测试、编译代码、登录远程服务器,发布到第三方服务等等的操作,GitHub将这些操作称为actions。 概念:Workflows, Events, Jobs, Actions, Runners Workflows 工作流 一个 Workflow 由多个 Jobs 组成 Events 定义哪

    2024年02月07日
    浏览(55)
  • 利用NAS免费部署动态解析实现内网穿透

    ‍ 想要从外网访问家中的NAS等设备,一般来说我们需要知道家中路由器的公网IP。 现在固定的公网IP基本上很难免费申请到了,但是一般来说运营商可以免费提供一个动态变化的公网IP:当路由设备重启时,运营商会给你重新分配一个新的IP地址。那么问题就来了,当遇到家中

    2024年02月03日
    浏览(32)
  • github使用workflow工作流git push后自动打包部署github pages

    根目录新建.github/workflows/docs.yml .github/workflows/ 目录是用于存放 GitHub Actions 工作流程文件的目录,该目录的文件名必须以 .yml 或 .yaml 为后缀名,否则 GitHub 将无法识别该文件为工作流程文件。这些工作流程文件可用于自动化执行项目中的各种任务,例如构建、测试、部署等。

    2024年02月10日
    浏览(42)
  • Github Pages 访问速度慢,使用vercel部署静态博客提高访问速度

    国内 Github Pages 速度较慢。使用ping工具测试一下发现速度慢道发火。 vercel 速度快且能够自定义域名,能实现和 Github Pages 一样的效果 vercel 官方地址:https://vercel.com/ 这是没有接入vercel之前的ping的速度: 接入之后的速度:   首先注册一个账号,使用github登陆也可以,然后需

    2024年02月06日
    浏览(49)
  • vitepress项目使用github的action自动部署到github-pages中,理论上可以通用所有

    .githubworkflowsdeploy.yml 完整的代码:使用的是 pnpm 进行依赖安装。 这段 YAML 文件定义了一个 GitHub Actions 工作流,用于在推送到 docs 分支时构建和部署 VitePress 项目。 on : 定义触发工作流的事件,这里是在推送到 docs 分支时触发。 jobs : 定义工作流中的任务。 build-and-deploy : 任务

    2024年01月17日
    浏览(41)
  • github pages 用法详解 发布自己的网站

    github pages 基础用法 URL 规则 假设你的 github 帐号为 mygithub,需要发布的仓库名为 myrepo,那么 pages 的 URL 为: https://mygithub.github.io/myrepo 添加内容 用任意编辑器写好(或者生成)标准的网页内容,push 到 myrepo 即可。和大部分 web 服务一样,pages 会到指定目录里面寻找 index.html

    2024年02月13日
    浏览(31)
  • 保姆级教程:从零构建GitHub Pages静态网站

    Github Pages官网:https://pages.github.com/ GitHub Pages 是 GitHub 提供的一个免费的静态网站托管服务,它允许 GitHub 用户创建和托管自己的静态网站,这些网站可以通过特定的 GitHub 仓库进行管理和托管。 GitHub Pages 的主要特点包括 : 免费托管 : GitHub Pages 提供免费的静态网站托管服务

    2024年02月04日
    浏览(45)
  • Github 自动化部署到GitHub Pages

    前言 github仓库示例: automated-deployment 1.准备工作 新建仓库 新建项目 配置 vite.config.ts 部署应用包时的基本URL,例:vue-cli 5.x 配置 publicPath 推送到远程仓库 2.配置 GitHub Token 点击 Settings - Actions - General 找到 Workflow permissions,选中第一项并保存 工作流默认是没有推送代码的权限,

    2024年02月05日
    浏览(51)
  • 如何将 Hexo 部署到 GitHub Pages

    引言 在数字时代,拥有个人博客是展示自己想法、分享知识和技能的绝佳方式。Hexo 是一个基于 Node.js 的静态博客生成器,它结合了简洁性和功能性,让我们可以轻松地建立并维护一个博客。而 GitHub Pages 提供了一个免费的平台来托管这些静态网站,这使得 Hexo 成为了许多开

    2024年02月20日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包