有些api的调用或者联调需要公网IP才能进行,这样一来不得不将代码部署到服务器进行访问,这样做是比较繁琐和麻烦的,所以实际开发过程中,一般是购买内网映射工具(比如花生壳),这样花费成本比较高。
如果我们购买了一台带有公网的ip地址,比如阿里云,搭建一个开源的内网穿透工具,将固定的ip映射到转发到本地,是不是可以节省很多成本,而且也方便本地联调。
关于正向代理和反向代理原理一搜一大把,个人建议大家了解之后再读下面的文章,这里我就来直接说明一下怎样实现的。
首先我们需要准备代理服务器:
准备工作下载frp(服务端和客户端)用来大家代理服务器
https://github.com/fatedier/frp/releases
选择对应的版本:
公网的系统由于是centos 64位所以选择下载的版本是(服务端):
客户端选择的是(在本地调试,一般都是windows服务器):
下载完成后:
上传到服务器,解压
cd /opt/servers/frp
tar -zxvf frp_0.27.0_linux_amd64.tar.gz
修改服务端的配置文件:
# 编辑配置文件
# frps.ini
#通用设置
[common]
# frp 监听地址
bind_port = 7000
#访问客户端web服务自定义的端口号
vhost_http_port = 8110
#链接口令
token = 12345678
#frp 控制面板
dashboard_port = 7500
# dashboard 用户名密码可选,默认都为 admin
dashboard_user = admin
dashboard_pwd = admin
运行启动:
cd /opt/servers/frp/frp_0.27.0_linux_amd64
./frps -c frps.ini
可以访问该服务端的远程可视化监控界面:
http://114.215.140.151:7500/
之后开始配置客户端:
解压后:
修改配置文件:
# 通用配置
[common]
# 服务器端地址 也可以填写域名
server_addr = 10.8.0.1
# 服务器端口
server_port = 7000
# 授权token 要与服务器端一致
token = 12345678
#ssh内网穿透将本地端口7888映射到远程端口6000别人就可以访问了
[ssh]
type = tcp
local_ip = 127.0.0.1
#本地端口
local_port = 7888
#远程端口
remote_port = 6000
#内网穿透提供本地数据库给别人访问
[tcp7893]
type = tcp
local_ip = 127.0.0.1
#本地端口
local_port = 3306
#远程端口
remote_port = 7893
[web]
type = http
local_ip = 127.0.0.1
local_port = 8110
#可以不设置域名直接设置ip
custom_domains =10.8.0.1
运行启动命名:
cd C:\Users\mr.liuyi\Desktop\准备软件\frp_0.27.0_windows_amd64
frpc.exe -c frpc.ini
后面就是测试啦:
哈哈哈,彻底完成,顺便提供以上服务器资源共享给大家(* ̄︶ ̄)
将本地数据库提供给别人访问效果:
本地数据库:
本地数据库内容:
服务器可视化界面:可以看到本地数据库端口3306被映射到服务器的远程端口7893上
远程访问:
可以看到监听到了本地数据库,那么别人就可以在本地访问你的数据了
总结:除了数据库,你还可以将你本地的大多数软件的端口映射到服务器上,那么别人就可以本地访问你电脑的相应软件,想想这功能是否特别强大,简直可以为所欲为了。