内网穿透—frp

什么是frp内网穿透

frp 是一个开源项目, 采用 C/S 模式,将服务端部署在具有公网 IP 的机器上,客户端部署在内网或防火墙内的机器上,通过访问暴露在服务器上的端口,反向代理到处于内网的服务。 在此基础上,frp 支持 TCP, UDP, HTTP, HTTPS 等多种协议,提供了加密、压缩,身份认证,代理限速,负载均衡等众多能力。

内网穿透—frp

为什么使用frp

通过在具有公网 IP 的节点上部署 frp 服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能特性,这包括:

客户端服务端通信支持 TCP、KCP 以及 Websocket 等多种协议。

采用 TCP 连接流式复用,在单个连接间承载更多请求,节省连接建立时间。

代理组间的负载均衡。

端口复用,多个服务通过同一个服务端端口暴露。

多个原生支持的客户端插件(静态文件查看,HTTP、SOCK5 代理等),便于独立使用 frp 客户端完成某些工作。

高度扩展性的服务端插件系统,方便结合自身需求进行功能扩展。

服务端和客户端 UI 页面。

下载

下载地址:Github,由于使用环境是VPS,所以只需要找到x86的版本即可。下载完成后进行解压,会得到frps和frpc文件夹,分别对应的服务端和客户端。

服务端搭建和使用

搭建配置

将刚才解压出来的fprs文件夹上传到服务器中,找到服务端的配置文件frps.ini文件,对它进行配置。

 [common]
 bind_port = 7000
 dashboard_port = 7500
 token = 12345678
 dashboard_user = admin
 dashboard_pwd = admin

bind_port :用于客户端和服务端连接的端口

dashboard_port :启用 Dashboard 监听的本地端口,若使用7500端口,在配置完成服务启动后可以通过浏览器访问 x.x.x.x:7500 (其中x.x.x.x为VPS的IP)查看frp服务运行信息。

token :用于客户端和服务端连接的口令,请自行设置并记录

dashboard_user :打开仪表板页面登录的用户名

dashboard_pwd :打开仪表板页面登录的密码

启动程序

./frps -c ./frps.ini

客户端搭建和使用

搭建配置

将解压的frpc文件夹上传到内网机器中,对frpc.ini进行编辑

 [common]
 server_addr = x.x.x.x
 server_port = 7000
 token = 12345678
 ​
 [ssh]
 type = tcp
 local_ip = 127.0.0.1
 local_port = 22
 remote_port = 6000

server_addr :为服务端(VPS)的公网IP

server_port :需与服务端配置一致

token :用于连接服务端的口令,需与服务端配置一致

type :表示连接类型,这里举例为tcp

local_ip :暴露到公网的服务地址,127.0.0.1表示本机

local_port :暴露到公网的服务端口

remote_port :表示在 frp 服务端监听的端口,访问此端口的流量将会被转发到本地服务对应的端口。

启动程序

./frpc -c ./frpc.ini

配置开机自启

Systemd 是 Linux 系统的一种初始化系统实现,它管理的各种服务叫做 Unit,每个服务对应一个 Unit 配置文件

此操作会把 frps 会被注册为一个服务,我们让 Systemd来自动管理 frps,借此实现开机自启和后台运行

**客户端frpc同理

  1. 使用文本编译器,创建并编辑 frps.service 文件 
$ vim /etc/systemd/system/frps.service
  1. 写入内容
 [Unit]
 # 服务名称,可自定义
 Description = frp server
 After = network.target syslog.target
 Wants = network.target
 ​
 [Service]
 Type = simple
 # 启动frps的命令,需修改为您的frps的安装路径
 ExecStart = /path/to/frps -c /path/to/frps.ini
 ​
 [Install]
 WantedBy = multi-user.target
  1. 使用 systemd 命令,管理 frps 
  # 启动frp
 systemctl start frps
 # 停止frp
 systemctl stop frps
 # 重启frp
 systemctl restart frps
 # 查看frp状态
 systemctl status frps
 # 配置 frps 开机自启
 systemctl enable frps

文章来源:https://www.cnaaa.net,转载请注明出处:https://www.cnaaa.net/archives/4097

(0)
郭靖的头像郭靖
上一篇 2022年6月7日 下午9:03
下一篇 2022年6月8日 下午12:18

相关推荐

  • 配置ospf路由实现内网访问外网

    1、网络拓扑图 2、核心命令 [r1-ospf-100]default-route-advertise always  说明:给ospf 进程中添加一条缺省路由 3、具体配置如下

    2024年6月20日
    1.6K00
  • Nginx一网打尽:动静分离、压缩、缓存、黑白名单、跨域、高可用、性能优化…

    引言 早期的业务都是基于单体节点部署,由于前期访问流量不大,因此单体结构也可满足需求,但随着业务增长,流量也越来越大,那么最终单台服务器受到的访问压力也会逐步增高。时间一长,单台服务器性能无法跟上业务增长,就会造成线上频繁宕机的现象发生,最终导致系统瘫痪无法继续处理用户的请求。 ❝ 从上面的描述中,主要存在两个问题:①单体结构的部署方式无法承载日益增长的业务…

    2023年3月16日
    1.7K00
  • 路由表详解

    1、路由表图解 2、路由表参数详解 1)destination/mask:表示此路由的目的网络地址与网络掩码。将目的地址和子网掩码“逻辑与”后可得到目的主机或路由器所在网段的地址。例如:目的地址为1.1.1.1,掩码为255.255.255.0的主机或路由器所在网段的地址为1.1.1.0。 2)Proto(Protocol):该路由的协议类型,也即路由器是通…

    2024年6月21日
    2.4K00
  • 详解DNS BIND配置及原理

    简介 DNS,全称Domain Name System,是一个记录域名和IP地址互相映射的一个系统,可以将用户访问互联网中所使用的域名转换成对应的IP地址。通过域名得到对应的IP地址的过程被称为域名解析。DNS运行于UDP协议之上,使用53端口 DNS 解析过程 首先,客户端先在本地缓存查找是否有缓存域名,比如没有,客户端发送DNS请求IP地址或主机名,DN…

    2023年3月31日
    1.7K00
  • 使用Dockerfile创建镜像,创建容器并运行

    一般情况下并不推荐使用“docker commit”来构建镜像,而应该使用更灵活、更强大的Dockerfile来构建Docker镜像,这里就来说一下使用Dockerfile创建镜像,创建容器并运行的方法。 1 生成镜像1.1 准备Dockerfile文件准备Dockerfile文件内容如下: 由于创建过程用到了java文件,这里要将注意这里要将java文件和…

    2023年8月10日
    1.6K00

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

在线咨询: QQ交谈

邮件:712342017@qq.com

工作时间:周一至周五,8:30-17:30,节假日休息

关注微信