我们自己开发的一个SpringBoot项目,在本地启动后,最常见的是使用http://localhost:8080/xxx来进行本地访问,或者通过http://局域网ip地址:8080/xxx来进行访问。上面这两种形式可以在本地或者局域网内访问,但并不能在公网上访问。如果我们需要在答辩上演示,或者只是将项目给朋友使用一下(比如使用内网穿透将数据库放在公网上,然后可以远程访问数据库),租用一个服务器有点贵,也比较麻烦,那我们可以使用一些内网穿透的小工具实现项目在公网上访问。
目录
2.关闭黑色框框,或者在黑色框框那里Ctrl+C停止服务,用完一定要关服务,否则别人可以访问,不安全。
1.启动本地项目
我这里启动了SpringBoot(其他的如flask也行,反正最后要操作的是端口号),本地访问的地址是http://127.0.0.1:8080/upload.html,这个8080端口是要提供给公网访问的。
2.ngrok安装和内网穿透的搭建
为什么使用ngrok:我感觉这个操作比较简单,适合入门,免费使用(需求少的话就不需要购买它的付费服务)
访问ngrok的官网:ngrok | API Gateway, Kubernetes Networking + Secure Tunnels
登录ngrok官网
可以使用Github或者Google账号进行登录(qq邮箱这些应该是不行的,其他博客有提到过)
登录成功后进入下面这个页面
下载ngrok的安装包
进入这个页面后,选择“SetUp&Installation”,以Windows为例,选择Windows的安装包,点击“Downloaded”,选择64位的安装包(目前电脑一般都是64位,可以在设置-->系统-->系统信息中查看,如果显示的是32位那就下载32位吧)
将下载好的Zip解压
点开文件夹,找到ngrok.exe,双击打开
呈现出类似这样的页面
内网穿透
回到官网的“SetUp&Installation”界面
找到类似"ngrok config add-authtoken xxxxx"这段命令行,复制它,粘贴到之前启动的黑色框框中
出现“Authtoken saved to configuration xxxx”,说明成功添加当前用户的身份验证令牌,你的账号信息已经保存到本地的ngrok的配置文件中了
继续回到官网中
复制上面的这段命令,ngrok http http://localhost:8080,当然了,其实输入ngrok http 8080也是可以的,端口号要改成自己实际启动的端口号,我SpringBoot的项目改成占用8088端口,那就要改成ngrok http 8088了
还可以指定区域的服务器:ngrok http 8080 --region=jp
us:美国(默认区域)
eu:欧洲
ap:亚太地区
au:澳大利亚
sa:南美洲
jp:日本
in:印度
有时候要自己指定一下区域,因为有时候可能会报Session Status reconnecting (failed to send authentication request: EOF),自己指定一下区域就可以正常启动内网穿透服务了,如果还是不行,网上搜索看看,一般会有解决方案
内网穿透成功,分配给了我们一个可以供公网访问的URL,而且还是https呢,复制这个URL,去到浏览器输入https://31fb-240e-47e-3258-1722-49b6-48be-dcfa-e5bd.ngrok-free.app/upload.html ,点击Visit Site就可以进入页面了
同样,不是局域网内的手机也可以访问,说明确实可以提供给公网访问,内网穿透有效。
使用内网穿透访问数据库
本来想使用ngrok用tcp来连接数据库,但发现有这样的限制
You must add a credit or debit card before you can use TCP endpoints on a free account. We require a valid card as a way to combat abuse and keep the internet a safe place. This card will NOT be charged
您必须先添加信用卡或借记卡,然后才能在免费账户上使用 TCP 终端节点。我们需要一张有效的卡,以打击滥用行为并保持互联网的安全。此卡不会被扣款
既然这样,那我只好使用coplar来进行数据库连接了,coplar的命令跟ngrok差不多,并且coplar还提供了webui,操作更简单。
启动webui,webui占用了本地的9200端口
创建好隧道后,点击在线隧道列表
打开需要连接数据库的应用
接下来就可以操作数据库了 ,用完一定要把这个隧道关闭或者删除
注意事项
1.不要泄露Authtoken,若泄露请及时清除和更换
2.关闭黑色框框,或者在黑色框框那里Ctrl+C停止服务,用完一定要关服务,否则别人可以访问,不安全。
3.ngrok静态固定域名的配置
每次启动服务,这个域名是随机分配的,不利于我们持续访问,因此需要进行静态域名的配置
点击Domains,选择Create Domain,免费的服务就只能创建一个固定域名了
网站会分配给我们一个静态域名,复制那行命令,粘贴到黑色框框中就好了
ngrok http --url=squirrel-intimate-lion.ngrok-free.app 8080
ngrok http --url=squirrel-intimate-lion.ngrok-free.app 8080 --regin=eu
同样这种方式下也是可以指定区域的,如果eu这个区域不行就换另一个区域,jp,us,in这些都换着试一试
还有其他很多可以进行内网穿透的小工具,比如开源的FRP(Fast Reverse Proxy),花生壳等,大家可以去网上找找。