内网穿透之FRP-开发者利器

假设一个场景:假设我开发了一套了博客系统,在我本地电脑里运行着,假设运行的端口是8080,那么我自己在本地浏览器访问http:localhost:8080 就可以访问自己的博客系统。但是假设我想外界访问我自己的系统,他们是无法访问到我电脑的应用,这是因为我电脑主机不是公网ip,DNS是无法解析到我的电脑上来,想必大家也清楚这一点。一般做法是,买一台云服务器,假设是买了一台阿里云的服务器,并且自己买了个域名,假设云服务器的公网ip是123.123.123.123 ,域名是www.myblog.com, 那么我们在域名解析那里将域名解析到公网ip上,然后将自己的应用打个包上传到阿里云服务器中运行,然后部署相关的运行环境,比如数据库,缓存等,然后运行在80端口,然后我们外界就可以访问www.myblog.com就可以访问到博客系统。这样做起来似乎没啥问题,但是其中需要做的部署工作量也是不小的,假设我只是将我系统演示给别人看,或者改点小功能或者部分代码,又要重新打包部署到服务器上,这样子看起比较麻烦。FRP就很方便简化这种常见,它能让我们无需将应用部署到云服务器中,让外界一样访问到我们本地应用,那样子对于开发者而言,在自己的IDE开发工具上,边修改代码,在本地运行后,外界访问同本地是一样的,那样子是不是很爽。

那什么是frp?frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp 协议,为 http 和 https 应用协议提供了额外的能力,且尝试性支持了点对点穿透

frp的github网址:https://github.com/fatedier/frp

使用示例

假设以上述的博客系统为例(访问http://www.myblog.com就能访问本地电脑的博客网站)。

 我们还是要准备一台能供外界访问的云服务器。

frp的版本信息:https://github.com/fatedier/frp/releases/ ,建议去该网站看看,目前更新到v0.30.0。假设云服务器的环境是linux-centos7环境:

 一、登录到自己的云服务器,下载frp:

##下载最新版的frp_0.30.0_linux_amd64.tar.gz
wget --no-check-certificate https://github.com/fatedier/frp/releases/download/v0.30.0/frp_0.30.0_linux_amd64.tar.gz
##解压
tar -zxvf https://github.com/fatedier/frp/releases/download/v0.30.0/frp_0.30.0_linux_amd64.tar.gz

由于官网下载比较慢,如果是国内服务器访问下载会非常慢,如果快点,需要资源包,我可以帮你下,下好发给你。

解压之后,目录结构如下:

frp分为服务端和客户端,能被外网访问的云服务器需要安装frps,而我们本地电脑需要安装frpc

结构介绍:

frpc  -- 是客户端的命令工具

frpc_full.ini -- 是客户端的详细配置文件

frpc.ini -- 客户端简单配置文件

frps -- 服务端的命令工具

frps_full.ini -- 是服务端的详细配置文件

frps.ini -- 服务端简单配置文件

LICENSE 版权协议信息,frp是开源的,遵守apache2.0开源协议

systemd 其实我们下载解压frp之后,就是一个可执行二进制程序,那么如需要开机自动启动或重启服务十分不方便,那么就可以借助systemd

于是了解以上信息,我们在云服务器上只需要配置frps端就可以,后面在自己本地电脑配置frpc端。

修改frps.ini文件

# /root/conf/frps.ini
[common]
#frps运行的端口
bind_port=7700
#自己随意设置,但服务端与客户端需要设置一致,相当于通信的口令,如果不设置token,其他客户端都可以连到#服务端,不安全
token=qadbjadjhjB213132

# 使用http协议 运行到80端口
vhost_http_port=80

#图形化监控工具,可以不设置
dashboard_port=7500
dashboard_user=admin
dashboard_pwd=ujfan19941103

然后执行 frps -c frps.ini 进行启动服务端

二、在自己本地下载frp,配置客户端

假设我们本地是window系统,那么在https://github.com/fatedier/frp/releases/ 找到window版本的frp,同样我们下载

然后解压后可以看到:

目录结构和linux一样的,在客户端我们只需要配置frpc.ini即可

# frpc.ini
[common]
# 你自己的云服务器的ip
server_addr = 123.123.123.123
# frps运行的端口,就是上面你设置的端口
server_port = 7700
# token口令,需要和上面设置的一致
token=qadbjadjhjB213132

[ssh]
# 使用http协议
type = http
# 默认即可
local_ip = 127.0.0.1
# 本地项目运行的端口
local_port = 80
# 域名
custom_domains = www.myblog.com

然后在cmd窗口执行:frpc.exe  -c  frpc.ini 进行启动,然后大功告成了,在浏览器访问www.myblog.com就可以访问到自己本地的博客系统。

frp的功能不仅如此,更多详细配置请参考官网文档:https://github.com/fatedier/frp/blob/master/README_zh.md

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值