穿透工具
之前用过几个内网穿透工具,类似于花生壳
,飞鸽
,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 ssh
与systemctl 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下即可。