侧边栏壁纸
博主头像
gale-blog博主等级

少年一贯快马扬帆,道阻且长不转弯,要盛大,要绚烂,要哗然,要用理想的泰坦尼克号去撞现实冰川,要当烧赤壁的风,而非借箭草船,要为了一片海,就肯翻万山

  • 累计撰写 39 篇文章
  • 累计创建 5 个标签
  • 累计收到 5 条评论

目 录CONTENT

文章目录

内网穿透-FRP

二月在这里
2024-02-02 / 0 评论 / 0 点赞 / 58 阅读 / 4693 字

1.什么是frp

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

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

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

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

  • 代理组间的负载均衡。

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

  • 支持 P2P 通信,流量不经过服务器中转,充分利用带宽资源。

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

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

  • 服务端和客户端 UI 页面。

2.下载frp版本包

https://github.com/fatedier/frp/releases

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

下载好后,进入到下载文件的目录解压文件

tar -zxvf  frp_0.54.0_linux_amd64.tar.gz

mv frp_0.54.0_linux_amd64 frp
mv ./frp /etc/frp
#进入解压目录文件夹
cd /etc/frp

# 修改配置文件
vi frps.toml

bindPort = 9000
vhostHTTPPort = 9001
vhostHTTPSPort = 9002
transport.tcpMux = true

#身份验证

auth.method = "token"
auth.token = "admin"

#frp服务仪表板配置

webServer.port = 9003
webServer.addr = "172.16.133.146" #需要使用内网ip阿里云,不然绑定不了端口
webServer.user = "admin"
webServer.password = "admin"

关于参数的介绍可以去看

https://gofrp.org/zh-cn/docs/reference/common/#webserverconfig

启动frp服务端

#前台运行(关闭ssh后服务端也会关闭)
./frps -c frps.ini
#后台运行(关闭ssh服务端不会关闭)
nohup ./frps -c frps.ini & 

或者是使用systemd

安装systemd

yum install systemd

创建frps的服务

vi /etc/systemd/system/frps.service

[Unit]
Description=frps
StartLimitIntervalSec=0

[Service]
Type=simple
Restart=always
RestartSec=1
User=root
WorkingDirectory=/etc/frp
ExecStart=/usr/bin/env ./frps -c ./frps.toml

[Install]
WantedBy=multi-user.target

创建好服务后启动

systemctl start frps

systemctl status frps


systemctl daemon-reload

#设置自启动

systemctl enable frps

接下来我们还需要配置frpc客户端, 当我们运行frpc服务时将和公网上的frps建立一个长连接, 当我们访问公网不存在的服务时会转发到frpc, 然后frpc再做一个二次转发

1、release下载带Windows_amd64字样压缩包并解压

2、编辑 frpc.toml 文件配置以下参数

# frpc.toml

serverAddr = "1.2.3.4"   #[必选]服务器ip地址/域名
serverPort = 7000        # [必选] 要连接的 frps 端口
transport.protocol = "kcp"  #传输协议选择(除tcp以外的协议要填)
auth.token = "password"   #与服务端校验的令牌(需一致)
transport.tcpMux = true   #tcp流多路复用(优化传输,需一致)

示例
[[proxies]]                      
name = "web"                     # 代理名称(随便填)
type = "tcp"                     # 代理类型
localIP = "192.168.0.105"        # 代理地址, 要转发到哪个地址
localPort = 5500                 # 代理端口, 要转发到哪个端口
remotePort = 7001                # 远程端口(和远程 frps 哪个端口绑定在一起, 访问对应端口将使用该

0

评论区