用开源frp高性能反向代理软件实现内网穿透方案

用开源frp高性能反向代理软件实现内网穿透方案


做IT运维网络的小伙伴都知道,要实现对外提供服务必须有公网IP才行。一般局域网访问互联网都是动态IP,要实现对外提供服务需要动态域名解析并在局域网主机做端口转发。

那为什么要做内网穿透呢?其实做内网穿透的应用场景是蛮多的,好处也是蛮多的,特别是对做IT运维的朋友,难免遇到大晚上下班了,公司项目或什么的有点问题需要远程维护。当然有时在外面需要查下家里电脑资料,或想把闲置电脑做个WEB网站应用,甚至可以通过家里监控照看老人、小孩和你家的宠物呢。

有关这方面的软件网上不是没有,随便下载的涉及安全问题敢用吗?就算是商业的软件、关键是花钱,还不是100%放心吧。开源的项目,我们懂技术的小伙伴就不用说了,源码在手在自己服务器上放心、关键是稳定好用不花钱哦!

好,我们能看下frp是怎么实现的吧。Frp可以支持http、https、tcp、udp等协议类型,还能根据域名做路由转发。简单的话,frp其实就是一个反向代理应用,是一个数据传输的中转站,即互联网frp服务器内网设备。 我们来看下frp的架构:


用开源frp高性能反向代理软件实现内网穿透方案


通过上面的介绍,我们知道frp软件有两个端,一个在公网的服务端、一个在内网的客户端。源码和二进制包在github上都可以下载到。作者测试用的是下面的版本:


用开源frp高性能反向代理软件实现内网穿透方案


我们再进去看下二进制包有什么文件:


用开源frp高性能反向代理软件实现内网穿透方案


很简单,分为两部分:frps开头是服务端、frpc开头的是客户端,并包括各自的配置样例文件。另外,systemd是启动关闭服务用的。

首先,我们来配置一下服务端。

1、我们把frpc.ini 复制一份到etc下,cp frpc.ini /etc/frp/frpc.ini 打开编辑配置文件 vim /etc/frp/frpc.ini 加上自己需要的配置(如不清楚,可以参考官网的完整配置示例frpc_full.ini),如下图所示:

用开源frp高性能反向代理软件实现内网穿透方案


官网默认只绑定了一个7000端口提供服务。这里,我配置了管理面板,可以通过web界面访问查看各服务状态的,打马赛克的是密码哈。

2、进入刚上面目录的systemd 把 frps.service 复制到 /usr/lib/systemd/system 此目录,

还有把frps程序复制到 /usr/bin下面。这样就不用手动通过配置文件启动应用了。

我们看下frps.service服务的内容吧。

用开源frp高性能反向代理软件实现内网穿透方案


红色箭头的这行是通过指定配置文件启动应用的。下面一行应用服务中断自动重启的属性设置。好了,我们可以启动服务端了systemctl start frps.service 。再执行systemctl status frps.service 如下服务启动成功,端口处于监听状态,需要开机启动运行systemctl enable frps.service。


用开源frp高性能反向代理软件实现内网穿透方案


记得系统防火墙和云安全策略要放行相应的端口的哦,不然是无法连接的。


刚上面我们是配置了web管理面板的,现在我们登录web界面看下。


用开源frp高性能反向代理软件实现内网穿透方案


这是overview总览图,启用的服务端口各状态都比较清楚。点开proxies再看:

用开源frp高性能反向代理软件实现内网穿透方案


还没有任何数据,我们还没配置客户端嘛。配置好后客户端就会上线的。


服务端配置好了,我们再来配置客户端


刚才上面下载的软件是linux端的,frp支持多平台终端。Windows做客户端当然下windows版本了。

用开源frp高性能反向代理软件实现内网穿透方案


我们把软件解压放到c盘frp目录下:

用开源frp高性能反向代理软件实现内网穿透方案


编辑frpc.ini ,我们来做一个web测试一下。加入如下配置项:


用开源frp高性能反向代理软件实现内网穿透方案


到这一步客户端就可以通过命令行启动了,常驻服务等下介绍哈,我们先启动看一下。


用开源frp高性能反向代理软件实现内网穿透方案

是的,已经启动成功。注意windows防火墙或什么杀毒软件的也要把相应程序和端口放行。

再看管理面板上的服务:

用开源frp高性能反向代理软件实现内网穿透方案


看到了吧,status 也处于online状态了。好了,在本地启动web服务器并新建一个测试站点看看:


用开源frp高性能反向代理软件实现内网穿透方案


本地我用的是phpenv集成环境,监听的是888端口,跟配置的端口一样。服务端的http端口也是888,端口都可以自定义的。

用开源frp高性能反向代理软件实现内网穿透方案


用开源frp高性能反向代理软件实现内网穿透方案


打马赛克的是我的真实域名,访问效果达到了。但这里要看一个cmd命令窗口,我们把frp加到系统服务,并开机启动。这里需要在github下载winsw开源软件注册windows系统服务的。下载好后把winsw.exe放在frp的同级目录并且编写一个xml配置文件,内容如下:

frp frp这里是服务的名称 这里是服务的介绍,随便写 frpc这里是运行的软件名 -c frpc.ini这里是运行的软件配置文件 reset


然后以管理员启动cmd命令窗口,cd到frp目录,执行两条命令winsw install和winsw start就行了。如果要卸载先执行winsw stop再执行winsw uninstall。

这样就大功告成了,出门忘掉带电脑没关系,开心的去浪吧!有事可以远程回家了。


分享到:


相關文章: