无需租用云服务器:使用Linux本地搭建web服务并实现内网穿透发布公网访问的详细教程

news/2024/7/24 7:18:36 标签: 服务器, linux, 前端

文章目录

  • 前言
  • 1. 本地搭建web站点
  • 2. 测试局域网访问
  • 3. 公开本地web网站
    • 3.1 安装cpolar内网穿透
    • 3.2 创建http隧道,指向本地80端口
    • 3.3 配置后台服务
  • 4. 配置固定二级子域名
  • 5. 测试使用固定二级子域名访问本地web站点

前言

在web项目中,部署的web站点需要被外部访问,则需要一个媒介,通过把资源放在这个媒介中,再通过所暴露的端口指向这个站点,当外部访问这个媒介所对应的端口时,媒介指向站点,完成访问,像这种类似的媒介,常用的有tomcat容器、Apache等,这边使用Apache来建搭建。

Apache2 是一种流行的 Web 服务器应用程序,也就是通常所说的运行网站的服务器,目前apache在centos已经改名,叫httpd。

1. 本地搭建web站点

安装httpd,输入命令,出现y/N,输入y

yum install httpd

20221228152325

安装完成查看版本信息,出现以下版本信息表示安装成功

httpd -v

20221228153025

启动服务

service httpd start

20221228153034

2. 测试局域网访问

打开浏览器输入http://192.168.XX.XX ,局域网访问,httpd默认是80端口,访问时候无需加端口

20221228153045

注意,如没有出现这个页面,可能是防火墙问题,输入以下命令可以关闭防火墙(centos8)

systemctl stop firewalld.service

3. 公开本地web网站

由于该站点是在本地设备上,局域网之间可以访问,但是公网环境下无法访问,接下来将web站点发布到公网。

这里使用cpolar内网穿透来实现,创建http隧道,将内网80端口映射到公网上,无需公网IP,无需设置路由器,也无需购买云服务器

cpolar官网:https://www.cpolar.com/

3.1 安装cpolar内网穿透

  • cpolar 安装(国内使用)
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
  • 或 cpolar短链接安装方式:(国外使用)
curl -sL https://git.io/cpolar | sudo bash
  • 查看版本号,有正常显示版本号即为安装成功
cpolar version
  • token认证
    登录cpolar官网后台,点击左侧的验证,查看自己的认证token,之后将token贴在命令行里
cpolar authtoken xxxxxxx

在这里插入图片描述

  • 简单穿透测试
cpolar http 8080

按ctrl+c退出

  • 向系统添加服务
sudo systemctl enable cpolar
  • 启动cpolar服务
sudo systemctl start cpolar
  • 查看服务状态
sudo systemctl status cpolar

在这里插入图片描述

3.2 创建http隧道,指向本地80端口

cpolar http 80

如下图所示,有生成相应的公网地址,一个http协议,一个为https协议(免去配置ssl证书的繁琐步骤),将其复制下来

20221228153119

在浏览器输入上面暴露的http公网地址,实现在公网环境访问。出现这个界面表示站点暴露到公网成功。

20221228153132

3.3 配置后台服务

由于以上命令暴露的公网地址在窗口关闭后隧道也将同步关闭无法访问,所以我们需要将参数保存到配置文件中。方便每次开机后,后台自启动运行隧道。

  • 编辑cpolar.yml文件
vi /usr/local/etc/cpolar/cpolar.yml
  • 打开后按i编辑,在文件中添加如下配置
authtoken: xxxxxxxxxxxx #认证token

tunnels:
  webstation:
    proto: http
    addr: "80"
    region: cn_vip

参数介绍:

  • webstation:隧道名称,可以自定义
  • proto: 协议,如tcp或者http
  • region:线路地区:有cn cn_vip cn_top等,可自由选择,具体请参考官网文档——全球基础设施

20221228153150

输入完成后按Esc键退出编辑,然后输入:wq保存(如果您的项目部署在其他端口上,也可以指定其他端口)

  • 启动所有隧道测试,出现以下界面,然后复制webstation隧道的公网地址(指向80端口).
cpolar start-all

20221228153201

  • 打开浏览器输入复制的公网地址访问

20221228153209

4. 配置固定二级子域名

由于使用免费cpolar所生成的公网地址为随机临时地址,24小时内会重复变化。我们可以为其配置固定的二级子域名。

注意,配置固定二级子域名需要将cpolar套餐升级至基础套餐或以上。

进入cpolar官网并登录进入后台界面,点击左侧的预留,找到保留二级子域名,我们来为本地web站点保留一个二级子域名:

  • 地区:选择China VIP
  • 二级域名:可自定义
  • 描述:即备注,可自定义

20221228153216

二级子域名保留成功,将其复制下来

20221228153223

  • 编辑cpolar.yml配置文件
vi /usr/local/etc/cpolar/cpolar.yml

打开后按i编辑

在webstation下添加一行:subdomain: ”myweb1”

20221228153234

编辑完成按Esc键退出编辑,然后输入:wq回车保存。然后执行启动所有隧道,出现地址后复制公网地址

cpolar start-all

20221228153241

5. 测试使用固定二级子域名访问本地web站点

在浏览器访问刚刚所配置成功的二级子域名,出现页面配置成功。

20221228153251

转载自cpolar文章:Linux CentOS本地搭建Web站点,并实现公网访问


http://www.niftyadmin.cn/n/5000252.html

相关文章

Burp插件HaE与Authz用法

HaE与Authz均为BurpSuite插件生态的一员,两者搭配可以避免“越权”、“未授权”两类漏洞的重复测试行为。(适用于业务繁杂,系统模块功能多的场景) 两个插件都可以在store里安装 安装完后,点击Filter Settings勾选Sho…

【2023集创赛】加速科技杯二等奖作品:基于ATE的电源芯片测试设计与性能分析

本文为2023年第七届全国大学生集成电路创新创业大赛(“集创赛”)加速科技杯二等奖作品分享,参加极术社区的【有奖征集】分享你的2023集创赛作品,秀出作品风采,分享2023集创赛作品扩大影响力,更有丰富电子礼…

Dubbo2.0

前置 衡量网站性能指标: 响应时间:一次请求花费时间并发数:同时处理请求数 并发连接数:每秒建立总TCP数量请求数:QPS一秒请求数并发用户数:单位时间用户 吞吐量:单位时间处理请求数 QPS&#…

moment.js——实现日期格式的转换——常用api汇总

之前遇到关于日期的转换问题,我常用的解决方法就是通过new Date()进行时间的处理。 其实很多日期的处理,都可以通过moment来直接进行处理,简单方便。 下面的操作都是在引入moment.js或者npm install moment之后的写法。 标准日期格式转化为…

scoped样式修饰符的使用

在Vue.js中,scoped 是一个用于样式的修饰符,它用于限定样式的作用范围,使得样式只在当前组件的作用域内生效,而不会影响到父组件或子组件的样式。这个特性通常用于解决 CSS 样式污染的问题,确保样式只会影响到当前组件…

垃圾回收 - 复制算法

GC复制算法是Marvin L.Minsky在1963年研究出来的算法。说简单点,就是只把某个空间的活动对象复制到其它空间,把原空间里的所有对象都回收掉。这是一个大胆的想法。在此,我们将复制活动对象的原空间称为From空间,将粘贴活动对象的新…

C# 采用3DES-MAC进行签名 base64解码与编码

** 3DES-MAC ** 3DES-MAC(Triple Data Encryption Standard Message Authentication Code)是一种消息认证码(MAC)算法,用于验证消息的完整性和真实性。3DES-MAC使用了3DES(Triple Data Encryption Standa…

手写Mybatis:第15章-返回Insert操作自增索引值

文章目录 一、目标:Insert自增索引值二、设计:Insert自增索引值三、实现:Insert自增索引值3.1 工程结构3.2 Insert自增索引值类图3.3 修改执行器3.3.1 修改执行器接口3.3.2 抽象执行器基类 3.4 键值生成器3.4.1 键值生成器接口3.4.2 不用键值…