我们常常在家里部署个人应用,然后演示给远端的客户或朋友。或者在nas存储个人数据、运行着个人应用,在外出的时候希望正常访问。之前介绍过zerotier、ssh反向映射等方法,都很不错。这一次我们采用通过安全隧道进行内网穿透, 并且使用域名方式访问,无需设置交换机, 链接更加稳定、访问更加友好。因使用安全隧道建立加密连接,数据也将更加安全。
原理是在本地电脑与cloudflared间建立安全隧道,同时通过cloudflare托管域名并进行域名解析,达到内网穿透和域名访问的目的。
本文演示通过本地ubuntu系统,使用宝塔面板 部署wordpress 应用,从内网穿透到cloudflare,并设置域名访问。
一、准备ubuntu系统
ubuntu的系统安装在前面介绍过。可以查看 Linux Mint 22如何安装应用 一文,只不过需要下载的是ubuntu系统,并替换linux Minit系统。 ubuntu下载链接详见文末。
二、在Ubuntu中安装wordpress应用
1.运行sudo -i命令进入超级用户。
2.运行apt update命令更新系统。
3.运行wget命令安装宝塔面板。各版本linux 宝塔安装命令查看地址详见文末,安装9以上稳定版本。
wget -O install.sh https://download.bt.cn/install/install_lts.sh && bash install.sh ed8484becd
输入命令回车,提示是否安装的时候,输入y,如下图。
接着开始安装,并启动面板。
然后按提示在浏览器打开链接地址:
https://192.168.180.133:32582/d6b890ba
在弹出的页面中输入 上图所示 用户名和密码,并与宝塔官网账号密码绑定。如无官网账号,那么注册一个。接着弹出如下页面,由于没有绑定ssl证书,提示链接不安全,暂不用理会。
4、安装wordpress运行环境。
推荐lnmp一键安装wordpress的运行环境,包括niginx,mysql,php。
点击一键安装,等待几分钟,直到安装完成。
完成后,回到宝塔主页。点击“网站--添加站点”。
在域名文本框输入服务器IP地址、申请到的域名(申请详见 免费域名注册和托管详解,零基础一看就会 ),域名托管到cloudflare。
数据库选择mysql。
点击确认,提示添加网站成功。
点击链接,提示站点创建成功。
5.接着安装wordpress。
回到宝塔面板主页,点击“文件”,可以看到网站根目录及文件。
进入网站目录,删除目录下所有文件。
选择所有文件,点击“更多--删除”。
然后上传wordpress安装文件(下载地址详见文末链接)。点击“上传”按钮,选择wordpress安装文件。
成功后回到文件面板。右击wordpress压缩文件,点击解压。
可以看到新增一个wordpress目录。
进入该目录,全选文件,右击选择剪切。
到网站根目录下粘贴。
在浏览器打开网站地址,可以看到安装页面,说明wordpress部署成功。
如果这时候安装wordpress,会将内网地址写入程序,所以我们先暂停这一步。回到Ubuntu服务器,安装 cloudflared客户端。
三、安装cloudflare客户端
Cloudflare Tunnel 的命令行客户端 是一个隧道守护程序,用于将流量从 Cloudflare 网络代理到您的源站(这里是家里的ubuntu服务器)。Cloudflare 接收客户请求并将其发送给本地服务器。通过此守护进程,无需在防火墙上开放额外端口,保障内网安全。
1、下载 cloudflare 客户端
在ubuntu命令行中运行以下命令:
wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
一般需要2-5分钟。
2、安装客户端
运行以下命令进行安装:
dpkg -i cloudflared-linux-amd64.deb
很快完成。可以通过以下命令查看安装是否成功:
cloudflared --version
3、登录cloudflare并授权
运行以下命令登录cloudflare:
cloudflared login
通过浏览器打开提示的链接,登录cloudflare。如果没有账号,请注册一个。
登录成功后。再通过浏览器打开命令行所提示的链接,可以看到弹出提示如下:
点击域名名称,这里为onedaygo.sbs。弹出如下页面,点击授权。
可以看到授权成功。
这样在我们的域名区域中成功创建tunnel,ubuntu的命令行同时提示证书生成成功。
证书存储在/root/.cloudflared目录下。
4.创建cloudflare的tunnel服务
运行以下命令,创新项目的tunnel服务:
cloudflared tunnel create onedaygo-sbs
将onedaygo-sbs换成您的项目名称,推荐使用域名。
这样在.cloudflared目录下面新增了一个json文件。
为了便于记忆,更改名称,前缀为项目名。
5、域名解析
运行以下命令,将onedaygo-sbs以及域名改成你的项目名称和域名。
cloudflared tunnel route dns onedaygo-sbs web.onedaygo.sbscloudflared tunnel route dns onedaygo-sbs www.onedaygo.sbs
提示创建成功。
可以在cloudflare看到对应的DNS记录。其中,名称可以修改,鼠标放到名称上面可以看到完整的域名。
6、配置 ingress 路由
在 /root/.cloudflared下创建文件:config.yml,填入以下内容:
# tunnel 后面为刚才设置的 Tunnel 的项目名字# credentials-file 后面为刚才修改的 json 文件绝对路径# 两个 hostname 后面的域名为你的域名# 其中的 IP 地址为安装宝塔机器的 IP 地址,端口不能丢tunnel: onedaygo-sbscredentials-file: /root/.cloudflared/onedaygo-sbs.jsoningress: - hostname: web.onedaygo.sbs service: http://192.168.180.133:80 - hostname: www.onedaygo.sbs service: http://192.168.180.133:80 - service: http_status:404
通过vi config.yml创建文件,记得在.cloudflared目录下创建。
回车后,按"i",复制粘贴以上内容,并按“esc”、“:”、“x”保存。
7、设置 CloudFlare 启动和自启
运行以下命令安装 cloudflared 服务:
cloudflared service install
设置 cloudflared 开机启动:
systemctl enable cloudflared
cloudflared 重新启动
systemctl restart cloudflared
没有报错即正常。
打开域名,可以看到成功解析。下一步消除不安全提示。
8、启用 HTTPS 强制访问
来到cloudflare,点击 菜单栏的 ssl/tls。往下拉,看到“始终使用https”,点击启用。
回到网站页面,刷新,可以看到不安全提示消失。
9、继续安装wordpress
提示输入数据库连接信息。
到宝塔面板,复制数据库对应信息。看不全则缩小浏览器。
填写完成后,点击提交。
可以看到连接成功。点击运行安装程序。
输入站点标题、用户名、密码和邮箱,点击“安装wordpress”。
可以看到安装成功了。登录后可以看到网站设置页面。
同时可以成功通过域名访问wordpress主页。
评论
发表评论