写在前面是因为之前的ngrok一直用于内网穿透,最新的ngrok1.x版本1.7.1用的,1.7.1有严重的内存泄露问题,plus1.x不再维护,ngrok2.x不再开源,考虑换成内网渗透工具。1、业务场景配置如下:阿里云服务器一台(WindowsServer2012),公网IP。三台内网服务器,包括两台WindowsServer和一台CentOS。已解析为公网IP的一级域名。需求:通过域名或IP可以访问三个内网部署的http服务,通过域名或IP可以与三个内网的远程桌面或SSH通信。二、为什么选择frp开源和经常维护。支持TCP、UDP、HTTP、HTTPS、STCP等协议。Go语言开发占用内存少,代理稳定。简单方便的配置,自定义插件配置和可开发自己业务需求的插件。提供安全暴露内网服务、加密压缩、底层通信可选kcp协议、端口复用、负载均衡、健康检查、URL路由、范围端口映射、请求头处理等众多功能。在第一次之前,您可以也可以通过浏览器查看frp的状态和代理统计的显示。在代理服务器上,您可以在浏览器中访问每个代理状态的可视化仪表板。内网穿透服务器提供查看穿透状态、动态在线配置、热更新配置等功能。三、服务器配置1、开启云服务器端口登录阿里云服务平台,进入实例安全组,开启穿越代理需要的端口。首先打开端口如下:打开TCP端口,7000到7010端口,7000端口是frp服务客户端代理通信的默认端口,7001到7010端口可以代理内网服务器的TCP应用程序的端口,如果不够用,可以扩展端口。开放TCP端口,7080和7443端口,方便HTTP和HTTPS代理。因为云服务器的80和443端口已经被其他应用占用,名字后缀80和443方便内存维护。打开UDP端口,打开7001端口,如果需要提供点对点的内网穿透可以打开。以上端口的开放是不指定的,可以自定义,灵活配置。2、下载frp,进入frp的githubreleases地址查看最新版本。上面已经提供了各种常见操作系统架构的编译包,下载对应云服务器系统的版本。也可以下载源码,安装GoLang环境,自行编译。3、配置frps下载完成后,解压打开文件夹,找到frps.ini文件配置服务器代理规则,frpc开头的文件不会在代理服务器上使用,但会在内网使用服务器。frps.ini配置的基本内容如下:[common]#设置地址和通信端口bind_addr=0.0.0.0bind_port=7000#设置默认UDP端口bind_udp_port=7001#监听7080和7443端口用于HTTP和HTTPSproxy,HTTP和HTTPS端口可以设置成一样vhost_http_port=7080vhost_https_port=7443#设置查看dashboard服务地址和端口,dashboard_addr不设置,默认和bind_addr一样,如果不设置dashboard_port端口,dashboard_addr=0.0.0.0dashboard_port=7500#设置dashboard服务的登录账号和密码,如果不设置,默认为admin。设置Token,尽量配置复杂一点,配置frpc会用到token=123456789#设置日志文件记录路径log_file=./logs/frps.log#设置日志级别,分别为trace,debug,info,warn,errorlog_level=info#设置日志记录的最大天数log_max_days=14.启动frps启动frps服务非常简单。输入以下命令,代理服务器已经启动。./frps-c./frps.ini5.配置frps为系统服务如果服务器是Windows系统,建议使用winsw工具将frps配置为系统服务。下载WinSW.exe或WinSW.zip,将WinSW.exe改名为frps-service.exe写入frps-service.xml配置文件
