天天看点

内网穿透-frp前言一、frp是什么?二、为什么使用 frp?二、使用步骤总结最后

文章目录

  • 前言
  • 一、frp是什么?
  • 二、为什么使用 frp?
  • 二、使用步骤
    • 1.下载压缩包
    • 2. 解压
    • 3. 编辑服务器配置文件
    • 4. 启动服务器
    • 5. 编辑客户端配置文件
    • 6. 启动客户端
    • 7. 访问
  • 总结
  • 最后

前言

  1. 内网穿透之frp篇,本文介绍了frp一些使用实例
  2. 官方文档:https://gofrp.org/docs/
  3. Github:https://github.com/fatedier/frp
  4. 博主服务器:阿里云 CentOS 7.2 64
  5. 要求:

    5.1 拥有公网IP的服务器

一、frp是什么?

frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。

二、为什么使用 frp?

官方文档是这么说的:

通过在具有公网 IP 的节点上部署 frp 服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能特性,这包括:
  • 客户端服务端通信支持 TCP、KCP 以及 Websocket 等多种协议。
  • 采用 TCP 连接流式复用,在单个连接间承载更多请求,节省连接建立时间。
  • 代理组间的负载均衡。
  • 端口复用,多个服务通过同一个服务端端口暴露。
  • 多个原生支持的客户端插件(静态文件查看,HTTP、SOCK5 代理等),便于独立使用 frp 客户端完成某些工作。
  • 高度扩展性的服务端插件系统,方便结合自身需求进行功能扩展。
  • 服务端和客户端 UI 页面。

通俗点说就是通过一台拥有公网IP的服务器访问处在内网的服务器。

二、使用步骤

传送门:https://github.com/fatedier/frp/releases

目前我写教程时的版本为0.33.0,那么就以0.33.0开始

话不多说直接开始:

1.下载压缩包

可以看到作者提供了多种压缩包给我们 这里我的服务器是CentOS 64位 我选择了 frp_.0.33.0_linux_amd64.tar.gz,这里俩个选择,一种直接下载到本地再通过winScp上传到服务器,二是直接在服务器中进行下载

wget https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_linux_amd64.tar.gz

内网穿透-frp前言一、frp是什么?二、为什么使用 frp?二、使用步骤总结最后

2. 解压

cd /usr/local
mkdir frp
我把压缩包放在了这里面
tar -xzvf frp_0.33.0_linux_amd64.tar.gz
           

3. 编辑服务器配置文件

cd frp_0.33.0_linux_amd64
ls
           
frpc frpc_full.ini frpc.ini frps frps_full.ini frps.ini LICENSE systemd

这里我们可以看到 压缩包内共8个文件

frpc frpc.ini frpc_full.ini 为客户端软件及配置

frps frps.ini frps_full.ini 为服务器软件及配置

在这里我们需要用到的是服务器配置 也就是frps.ini

vi frps.ini
           

这是我服务器配置参数:

[common]
#frp服务器监听地址,如果是IPV6地址必须用中括号包围
bind_addr = 0.0.0.0
#frp服务器监听端口
bind_port = 7000

#如果要使用vitual host,就必须设置
vhost_http_port = 80
#vhost_https_port = 443

#Web后台监听端口
dashboard_port = 7500

#Web后台的用户名和密码
dashboard_user = admin
dashboard_pwd = admin

#Web后台的静态资源目录,调试用的,一般不设
#assets_dir = ./static

#日志输出,可以设置为具体的日志文件或者console
log_file = /usr/local/frp/frps.log

#日志记录等级,有trace, debug, info, warn, error
log_level = info
#日志保留时间
log_max_days = 3
           

4. 启动服务器

./frps -c ./frps.ini
           

如果想后台启动

查看启动状态

cat nohup.out
           
内网穿透-frp前言一、frp是什么?二、为什么使用 frp?二、使用步骤总结最后

至此服务器启动成功。

注:需要注意的地方 7000、80、7500端口都是要开放的!

再注:阿里云的端口在系统开放后 需要到控制台安全组开启端口!!!

CentOS7 几条防火墙命令

#开启防火墙
systemctl start firewalld
#关闭防火墙
systemctl stop firewalld
#开放指定端口 permanent-永久生效 例80 
firewall-cmd --zone=public --add-port=80/tcp --permanent
#开放指定范围端口 例8080-8090
firewall-cmd --zone=public --add-port=8080-8090/tcp --permanent
#查看指定端口状态
firewall-cmd --zone=public --query-port=80/tcp
#查看已开放端口列表
firewall-cmd --list-ports
#关闭指定开放端口
firewall-cmd --zone=public --remove-port=8080-8090/tcp --permanent
#添加/关闭端口后都要重启防火墙 
firewall-cmd --reload
           

开放端口后,假设服务器的公网IP为1.2.3.4,那么访问1.2.3.4:7500 输入上面设置的后台帐号密码 即可进去Web后台。

内网穿透-frp前言一、frp是什么?二、为什么使用 frp?二、使用步骤总结最后

5. 编辑客户端配置文件

客户端这边我选择了Windows下的CentOS7 虚拟机

与服务器解压等相同操作,这次编辑的frpc.ini文件

vi frpc.ini
           
[common]
#服务器公网IP
server_addr =1.2.3.4
#服务器端口
server_port = 7000

[ssh]
#SSH连接
type = tcp
#本地内网IP
local_ip = 192.168.159.129
#本地内网端口
local_port = 22
#服务器监听端口
remote_port = 6000

[web]
#Http请求
type = http
#本地IP
local_ip = 192.168.159.129
#本地端口
local_port = 8080
#可为域名 与 服务器IP
custom_domains = www.test.com
           

6. 启动客户端

./frpc -c ./frpc.ini
           

如果想后台启动

查看启动状态

cat nohup.out
           
内网穿透-frp前言一、frp是什么?二、为什么使用 frp?二、使用步骤总结最后

至此客户端启动成功。

7. 访问

#访问1.2.3.4:6000 即可连接内网的服务器
1.2.3.4:6000
#访问1.2.3.4:80即可转到Web服务
1.2.3.4:80
           

总结

必须想法设法搞到公网IP哈哈哈哈哈

最后

我是卢生

生有热烈 藏于俗常

继续阅读