frp内网穿刺手动安装教程--岁月博客提供

    前篇文章讲了通过脚本安装,但是由于大多人下载脚本困难,这里分享下手动安装配置方法。

    2020年2月2日过年假期太长,实在是憋疯了,重新更新一下这篇文章,手把手教学吧。

Frp简介

    Frp是一款免费、开源、高性能的反向代理工具,项目地址在GitHub:https://github.com/fatedier/frp。

使用Frp可以实现在无公网地址环境下的内网资源发布、端口映射、代理等功能。Frp分为有公网地址的Frps(Frp服务端)和在内网代理发布流量的Frpc(客户端),工作时,Frpc需要通过指定端口向Frps发起注册,通告需要发布的资源IP地址,端口等信息,Frps需要有可访问的固定IP地址或域名。此后,Frps将监听访问流量,然后通过已建立的Frps-Frpc通道,将请求发布到内网Frpc,Frpc代理访问内网资源,再通过Frps-Frpc的通道,将回包交给Frps,最后Frps就可以将数据返回给请求方,如下拓扑:

    image.png

一、准备

    Frps需要部署在有静态公网地址的网络环境中,最方便的方式可以考虑在各大公有云购买一台带有静态地址的VPS或云主机,操作系统选择Linux即可。

    2020年2月2日更新补充,就使用amazon免费一年的服务器了,申请以及登录参考下面的教程,当然你也可以使用腾讯或阿里的服务器,都一样,我这里用的是centeros系统:

        Amazon ec2免费服务器申请教程--岁月博客提供


二、具体步骤

    2.1 登录系统,并下载frps

    登录系统后,输入wget https://github.com/fatedier/frp/releases/download/v0.31.1/frp_0.31.1_linux_386.tar.gz

    下载frp_0.31.1的i386版本,具体版本根据你当前系统去下载

    参考文档:如何查看linux系统的体系结构

    下载完成后,输入:tar zxf frp_0.31.1_linux_386.tar.gz 解压,解压完成后如下图所示:

    image.png

    进入frp的目录,可以看到frpc frpc.ini frpc_full.ini frps frps.ini frps_full.ini这几个文件,frpc开头的都是与客户端相关的文件,frps都是和服务端相关的文件,因此在这里我们完全可以删除和服务器无关的文件,删除后如下图

    image.png

    frps是主程序,frps_full.ini是可供参考的全部配置信息,frps.ini是实际的配置文件。

    编辑frps.ini配置文件,输入:vi frps.ini

    image.png

    bind_addr是frps的监听地址,0.0.0.0表示监听本地全部地址

    bind_port是frps监听frpc的通信端口,默认为7000

    dashboard_port是frps的Web监控页面的端口,下面两个是监控页面的登录用户名以及密码,可以根据需要更改

    token是密钥,只有客户端配置了相同的token值,才允许接入frps。

    编辑完成后,按 Esc 输入:wq 保存退出。

    使用./frps -c frps.ini启动frps服务端,-c参数可以指定启动时采用的配置文件。

    注意:端口要在防火墙以及安全组放行。

    2.2 设置自启动

        使用./frps -c frps.ini启动frps服务端后,不能关闭,关闭就会服务停止,为了方便就把FRP服务注册成为系统服务,以后使用起来也更加方便,这里我采用较为简单的systemctl来控制(客户端和服务端都可以使用如下配置)

        vim /lib/systemd/system/frps.service

        在frps.service里写入以下内容vim

        [Unit]

        Description=frapc service

        After=network.target syslog.target

        Wants=network.target

        [Service]

        Type=simple

        #启动服务的命令(此处写你的frps的实际安装目录,我的目录在/home/ec2-user/frp_0.31.1_linux_386)

        ExecStart=/home/ec2-user/frp_0.31.1_linux_386/frps -c /home/ec2-user/frp_0.31.1_linux_386/frps.ini

        [Install]

        WantedBy=multi-user.target

        

        保存并退出

        然后就启动frps

        sudo systemctl start frps

        再打开自启动

        sudo systemctl enable frps

        

        如果要重启应用,可以这样,sudo systemctl restart frps

        如果要停止应用,可以输入,sudo systemctl stop frps

        如果要查看应用的日志,可以输入,sudo systemctl status frps


    之后尝试打开frps监控页面,正常显示表示frps配置成功

    image.png

    2.3部署Frpc

    frpc的安装和frps完全一致,只是启动的程序不同。不再赘述,注意windows上用,就下载对应版本的windows端去修改

    frpc的配置与frps类似,这里直接介绍frps.ini

    8.png

    完整的配置文件同样可以参考frpc_full.ini或官方文档,这里仅介绍部分配置

    server_addr是服务端的公网地址

    server_port是frps的监听端口,这里也就是上文的7000

    token字段需要和服务端的token字段一致

    下面的内容,每个字段头代表一个需要发布的独立服务名,如SSL VPN。

    type表示服务类型,因为这里仅仅需要将SSL VPN的443端口映射即可,因此选择tcp

    local_ip为服务的内网地址,如192.168.xxx.xxx

    local_port为服务的真实端口,对于SSL VPN就是443

    remote_port为发布到公网的端口,即用户访问时所使用的端口,自定义即可,只要不冲突

    配置完成后使用./frpc -c frpc.ini启动客户端

    然后同样地,需要在frpc和frps的本地防火墙放通相关端口,然后VPS防火墙也要放通相关端口



四、实现与验证

    以上全部配置完成后,前往frps监控页面,即可看到如下发布的资源:

    9.png


    

五、TIPS

    1、本方案理论上可使用frp在任何NAT网络环境中实现SSL VPN的接入

    2、对于SSL VPN其他高级功能,并未验证可行性,需要后续进一步验证。

    3、SSL VPN发布资源时,B/S应用资源建议采用“TCP资源”或“L3VPN”发布,使用HTTP资源发布时,测试环境下跨三层的资源无法访问

    4、Frp的功能远不止这些,其他玩法可以参考官方文档,并且Frp的开发还在进行,后续功能可持续关注

    5、Frp是一个前台程序,意味着一旦关闭终端,ssh或者ctrl+c,程序将终止,因此在生产环境中,建议使用Supervisor等守护程序控制frp的启动与终止,当然这部分超过了本文讨论的内容

    

六、方案价值与建议

    目前运营商专线的价格依然远高于家庭宽带,一些小型企业,尤其对移动办公有需求的小型企业,对SSL VPN依然有需求,采用这种家庭宽带+VPS 部署的方案,成本依然远低于运营商专线,每月平均多花100到300元,就能获得与专线一样的SSL VPN使用体验。

    同时,如果深信服考虑后续版本中将Frpc模块内置到SSL VPN中,内网穿透能力将大大增强,则理论上SSL VPN产品将适用于所有网络环境中



本文转载自:使用Frp实现无公网地址(家庭宽带)环境下的SSL VPN部署


岁月博客(www.sycmd.com),致力于网络优秀资源的分享和交流!

本博客所有文章如无特别注明均为原创。作者:小莫复制或转载请以超链接形式注明转自 岁月博客
原文地址《frp内网穿刺手动安装教程--岁月博客提供
分享到:更多

相关推荐

发表评论

路人甲 表情
Ctrl+Enter快速提交

网友评论(0)