FRP工具采用C/S模型,将FRP服务端部署在具有固定公网IP的机器上,FRP客户端部署在内网机器上,通过访问暴露在服务端上的端口,反向代理到位于内网的服务。在此基础上,FRP支持 TCP、UDP、HTTP、HTTPS 等多种协议,提供了加密、压缩、身份认证、代理限速和负载均衡等众多能力。
创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站设计、成都网站制作、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的秀洲网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
FRP开源项目地址:
FRP使用场景:
让互渗野段联网(外部网络)的设备能访问局域网(内部网络)的设备所提供的服务,尤其是在内部网络出口没有固定公网IP的场景中。
测试目标: 将内网Windows 7的远程桌面端口(3389)暴露到服务端,实现在外部网络可以通过远程桌面连接到内网的Windows 7。
关闭CentOS 7.6防火墙:
关闭CentOS 7.6 SELinux:
安装配置FRP服务端:
运行FRP服务端:
腾讯云安全组放行端口:
FRP客户端支持脊洞Windows、Linux、MacOS、ARM、OpenWRT等平台,本例以Windows 7为例,将Windows 7的远程桌面端口(3389)暴露到服务端,实现从公网访问Windows 7的远程桌面。
注:与暴露TCP协议不同,使用FRP暴露HTTP/HTTPS协议时,可采用端口多路复用的方式。即一个外部端口可对应多个内部不同HTTP/HTTPS服务的端口,并通过在客户端配丛誉置文件中配置不同的域名来进行区分访问。
关闭Windows 7的休眠:
打开计划任务程序:
访问FRP服务端的Web界面进行验证:
访问FRP客户端的Web界面进行验证:
在外网使用远程桌面工具进行连接:
远程桌面可成功登录:
腾讯云香港服务器网站打不开的原因包括网络问题,DNS问题,防火绝猜墙问题,服务器问题,网站问题五点具体如下。
1、网络问题,检查自己的网络连接是否正常,尝试切换其他网络。
2、DNS问题,尝试更改DNS服务器地址,或者使用谷谨告歌DNS或阿里DNS等公共并晌型DNS服务器。
3、防火墙问题,检查自己的防火墙设置是否阻止了访问,可以尝试关闭或添加例外。
4、服务器问题,联系腾讯云客服,确认服务器是否正常运行并检查是否存在其他问题。
5、网站问题,确认网站是否正常运行,可以通过其他设备或者网络进行访问测试。
[TOC]
由于没有公网IP,无法远程连接家里的电脑洞卖,搜到了 frp 这个项目,尝试使用后发现效果不错,所以写出安装过程分享。
frp是一个反向代理工具,可以将流量转发到目标主机,包括TCP,UDP,HTTP,HTTPS。其基本原理是目标主机安装客户端连接到代理服务器建立固定连接,客户主机通过代理服务器连接到目标主机进行访问。
市面上有向日葵,TeamViewer也是类似原理,只不过这里变成代理服务器需要我们自己提供,比如从腾讯云或者阿里云购买一台轻量服务器作为代理服务器,有固定的公网IP可以访问。自建服务器的好处是带宽独享,可以有更稳定的连接效果。
而制作镜像是希望能够方便做敏多次部署。
SELinux是关闭状态,不需要处理
防火墙是关闭状态,把防火墙开启
提前开放一段端口范围,用于frp流量转发。
查看docker
docker还没安装,需要自己安装。
添加docker的安装源。
查看docker-ce版本
这里看到提示 versionlock ,由于只是安装frp,所以先把锁删掉。
Docker可以默认安装最新版本,或者指定版本安装,分别指令如下。
这里直接安装最新版本,等待安装完成
安装完后确认docker版本,并启动docker服务
登录代理服务器,创建目录并将frp复制到目录下
将frps.ini备份并编辑frps.ini。
编辑Dockerfile
配置完毕,可以开始构建镜像
构建需要拉取CentOS,根据网速可能需要等待一会儿
查看镜像,可以看到镜像已经制作完成,TAG是v1
基于镜像开启容器
查看监听端口是否开启
查看容器日志
目前看来一切正常。尝试访问监控面板。
之前配置端口 dashboard_port = 20001,假设代理服务器IP是106.13.127.200,那么通过 访问监控面板
正常情况下,会提示输入之前配置的用户和密码,并看到如下页面
代理服务器配置好后,配置目纯颤枝标主机,
关于远程连接的配置这里不做说明,默认已配置好远程连接的参数,只是需要代理服务器中转。
frpc和frps配置类似,编辑frpc.ini
具体配置
运行frpc
查看frpc的日志frpc.log
查看frps的日志
目标主机与代理服务器成功建立TCP和UDP连接
客户主机打开远程桌面连接,输入IP和端口进行连接106.13.127.200:20010
可以看到成功连接,并且已启用UDP
frp也支持P2P模式,即客户主机和目标主机直接建立连接,理论上会有更好的连接效果。但是由于现实中的网络环境,这种模式可能失败。本人尝试过有失败情况,也有成功情况。可以参考frp文档自行尝试。
Windows远程桌面会尝试使用UDP提供更好的效果,所以这里同时配置了TCP和UDP代理。如果希望有更好的效果,可以考虑配置GPU渲染。关于远程桌面的流量和GPU有机会其他文章说明。
总结:
宝塔面板打开默认关闭的UDP
解决方案:
安装宝塔面板后,在服务器上安装frps,并开启KCP,发觉客户端frpc连接不上,始终提示 i/o timeout 。
检查了服务器(腾讯弯仿明云)的防火墙,相关埋告端口的TCP和UDP都已打开(已导入宝塔面板专门为腾讯云出的出大前入站规则,及之前使用AppNode面板的自定义出入站规则)。
各种调试,无解。
折腾了近2天。
忽然再次反映过来,KCP走的是UDP协议,因为安装宝塔面板之前是frps是好用的,所以判定问题出在宝塔面板上,是否是服务端系统(Raspbian)的UDP不通?
遂去宝塔面板论坛查询,发现宝塔面板安装后,默认关闭UDP端口连接。使用上面面的命令,打开防火墙的相关配置。
重启frpc,正常。