记一次家里工作站做网站穿透遇见的问题

穿透工具

之前用过几个内网穿透工具,类似于花生壳,飞鸽,Ngrok等等,要么免费的速度不够,要么就是性价比不是很高,又或者配置很麻烦。

后面又找到了另一个工具cpolar,虽然它是收费的,但也不是很贵,配置什么的都很方便,付费版本提供了域名子域名随机域名等多种域名形式。

我是使用了cloudflare做了DNS解析,因此直接使用我自己的域名,在cpolar配置页面的预留中直接添加自己的域名或者子域名,将cpolar提供的CNAME添加到DNS解析中,然后再按照教程,将自己的服务,挂载到指定的域名下即可,如下图(第一张图是官网的预留配置页面,第二张是本地启动cpolar后的配置页面):

这样,你就可以将本地的服务,与你的域名绑定在一起了,如果没有域名的话,可以采用随机域名,但是需要注意的是,随机域名并不是永久的,只有效24小时,24小时之后,你需要重新生成,就可以外网直接进行访问了。

将mysql数据库穿透出来

我们的mysql的端口是3306,在本地查询的时候,都没有问题,但是远程访问的时候,查询被拒绝了,这时候,我们需要查看一下,数据库的配置文件,是否是仅支持本地访问,这个可以网上找一下教程,挺多的,这里就不说了。

我们说一下在穿透数据库的时候,遇见的问题吧。我们大多数情况下,数据库都部署在云上,这时候我们都会有一个固定的ip,因此很少使用域名去调取数据库,这里需要注意的是,我们将3306端口穿透出来时候,本地的地址是tcp://127.0.0.1:3306,是的,你没看错,他是一个tcp的链接,而不是http的连接,因此,我们在cpolar上面配置数据库穿透的时候,就需要在cpolar的预留域名地方,选择tcp连接,然后固定一个tcp的域名,再通过隧道进行绑定tcp端口,就可以通过固定的tcp域名访问了。

将ssh穿透出来

我家里电脑安装的是kylin的系统,是直接当作工作站使用了,远程访问的时候ssh的时候,我们需要先安装一个openssh-server工具,设置开机自启,并打开ssh服务,systemctl start sshsystemctl enable ssh,需要注意的是,ssh的连接,也是tcp连接,与mysql的步骤是一样的,这里可以参照上面mysql的步骤进行。

在另一台电脑上远程连接的时候,可以直接通过命令行ssh -p 端口 root@固定的tcp地址,输入密码进行连接了。

将svn穿透出来

因为ssh通过tcp的方式进行连接的,因此我找的几个远程连接工具,都不支持这样的连接,因此我文件上传的时候,就没有办法了,我这里采用的是svn的方式,至于为什么不用ftp,仅仅因为svn简单一些,网上教程很多,这里就不说怎么安装了。svn的路径,也是tcp连接,与mysql的步骤是一样的,这里可以参照上面mysql的步骤进行。

文件上传思路:

  • 服务器创建svn库
  • 在本地拉取svn仓库
  • 将需要上传服务器的文件,提交到svn上面
  • 服务器检出仓库
  • 将检出仓库的文件,复制到需要的目录下面

端口直接绑定穿透

如果说后端java构建后得到的jar包启动的后端接口在9000,启动后可以直接把端口在cpolar中绑定端口到二级域名(因为我的域名用的一个,接口的端口就分配给了二级域名)上,这样就可以通过二级域名直接调取接口了。

可以理解为,只要本地能调通的http或https的连接,都可以直接挂载

nginx代理站点穿透出来

nginx在现在开发过程中用的是比较多的了,这里应该是没有什么难点的,我们只需要在项目中将接口请求的路径,替换成上面的接口路径,就可以正常访问接口了,而前端的dist文件里直接放在html下即可。

相关推荐
roamingcode41 分钟前
Claude Code NPM 包发布命令
前端·npm·node.js·claude·自定义指令·claude code
码哥DFS42 分钟前
NPM模块化总结
前端·javascript
灵感__idea1 小时前
JavaScript高级程序设计(第5版):代码整洁之道
前端·javascript·程序员
唐璜Taro1 小时前
electron进程间通信-IPC通信注册机制
前端·javascript·electron
陪我一起学编程3 小时前
创建Vue项目的不同方式及项目规范化配置
前端·javascript·vue.js·git·elementui·axios·企业规范
LinXunFeng3 小时前
Flutter - 详情页初始锚点与优化
前端·flutter·开源
GISer_Jing3 小时前
Vue Teleport 原理解析与React Portal、 Fragment 组件
前端·vue.js·react.js
Summer不秃4 小时前
uniapp 手写签名组件开发全攻略
前端·javascript·vue.js·微信小程序·小程序·html
毅航4 小时前
从原理到实践,讲透 MyBatis 内部池化思想的核心逻辑
后端·面试·mybatis
coderklaus4 小时前
Base64编码详解
前端·javascript