当前位置: 首页 > news >正文

frp搭建内网穿透

内网穿透工具 FRPFRP 全名:Fast Reverse ProxyFRP 是一个使用 Go 语言开发的高性能的反向代理应用,可以帮助您轻松地进行内网穿透,对外网提供服务。FRP 支持 TCPUDPHTTPHTTPS等协议类型,并且支持 Web 服务根据域名进行路由转发。
FRP 项目地址: https://github.com/fatedier/frp

笔者环境:

  1. 服务端:centos 7.9
  2. 客户端:win10 64位

FRP 的作用

  • 利用处于内网或防火墙后的机器,对外网环境提供 HTTP 或 HTTPS 服务。
  • 对于 HTTP, HTTPS 服务支持基于域名的虚拟主机,支持自定义域名绑定,使多个域名可以共用一个 80 端口。
  • 利用处于内网或防火墙后的机器,对外网环境提供 TCP 和 UDP 服务,例如在家里通过 SSH 访问处于公司内网环境内的主机。

FRP 架构

FRP 架构

RP 安装

  1. FRP 采用 Go 语言开发,支持 Windows、Linux、MacOS、ARM等多平台部署。FRP 安装非常容易,只需下载对应系统平台的软件包,并解压就可用了。
# 创还能目录(可自定义)
mkdir -p /home/frp
# 进入目录
cd /home/frp
# 下载资源包(可使用FTP离线上传)
wget  https://github.com/fatedier/frp/releases/download/v0.61.0/frp_0.61.0_linux_amd64.tar.gz
# 解压
tar zxf frp_0.61.0_linux_amd64.tar.gz
# 进入解压的FRP资源目录
cd frp_0.61.0_linux_amd64
  1. 当前解压目录后的目录
  2. 编辑服务端配置文件
vi frps.toml
  1. 写入服务端配置信息
bindPort = 7000[common]
# frpc Client客户端连接Frps服务端时的token 为了安全 建议添加
token = QWE001
dashboard_port = 7500
# 指定 Dashboard 的监听的端口
dashboard_port = 7500
# 指定访问 Dashboard 的用户名
dashboard_user = admin
# 指定访问 Dashboard 的密码
dashboard_pwd = admin

注意:
1)命令可使用驼峰或者下划线,与版本无关哈。
2)默认配置中监听的是 7000 端口(如有防火墙需要开通服务器本级防火墙和边界防火墙7000/TCP端口),可根据自己实际情况修改。
5. 启动FRP

./frps -c ./frps.toml


5.1 配置dashboard_port 信息后可以访问Dashboard 界面,用户名密码默认都为 admin

6. 配置守护进程
以下为frps(服务端)的守护进程配置方式,客户端的守护进程配置方式与之相似。

要使用systemd来控制frps,需要先安装 systemd,然后在 /etc/systemd/system 目录下创建一个 frps.service 文件。

1) 如Linux服务端上没有安装 systemd,可以使用 yum apt 等命令安装 systemd

# yum
yum install systemd
# apt
apt install systemd
  1. 使用文本编辑器,如 vi 创建并编辑 frps.service 文件。
vim /etc/systemd/system/frps.service

写入内容

[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.toml[Install]
WantedBy = multi-user.target

注意:/path/to为实际解压路径,笔者使用/home/frp/frp_0.61.0_linux_amd64
3)使用 systemd 命令,管理 frps。

# 启动frp
systemctl start frps
# 停止frp
systemctl stop frps
# 重启frp
systemctl restart frps
# 查看frp状态
systemctl status frps

4) 配置 frps 开机自启。

systemctl enable frps

FRP 客户端配置

  1. 下载Windows版本的FRP客户端:https://github.com/fatedier/frp/releases/download/v0.61.0/frp_0.61.0_windows_amd64.zip
2. 编辑frpc.toml
[common]
server_addr = 0.0.0.1
server_port = 7000
# frpc Client客户端连接Frps服务端时的token 为了安全 建议添加
token = QWE001[event-tcp]
name = "event-tcp"
type = tcp
local_ip = 192.168.101.104
local_port = 10012
remote_port = 20012
  1. CMD运行(关闭窗口后停止运行),可使用服务的方式运行,作者可自行研究方法
  2. 当前目录下执行
frpc.exe -c frpc.toml


5. 代理的web服务可通过
http://0.0.0.1:20012
0.0.0.1服务端IP
20012远程端口,服务端只需要开通私网和公网20012的端口3

windows将frp或其他应用配置为service服务并开机自启

  1. 下载WinSW安装包
    github下载地址:WinSW https://github.com/kohsuke/winsw/releases

    可以将下载的文件改名为winsw.exe,方便后续操作

  2. 编写一个配置文件
    winsw.exe的同级创建一个和winsw同名的xml配置文件,exexml可以修改文件名称,保持同名即可。最好创建一个logs文件夹,看大家是否需要。

此处以frp客户端为例
注意:要配置服务的应用,如frpc最好是放在D盘下,因为C盘下可能会出现权限问题而无法正常运行

<service><!-- 该服务的唯一标识 --><id>frpc_0.57.0-windows-amd64</id><!-- 该服务的名称 --><name>frpc_0.57.0-windows-amd64</name><!-- 该服务的描述 --><description>frp内网穿透-客户端</description><!-- 要运行的程序路径 --><executable>D:\APPEXE\frp\frp_0.57.0_windows_amd64\frpc.exe</executable><!-- 携带的参数 --><arguments>-c D:\APPEXE\frp\frp_0.57.0_windows_amd64\frpc.toml</arguments><!-- 第一次启动失败 60秒重启 --><onfailure action="restart" delay="60 sec"/><!-- 第二次启动失败 120秒后重启 --><onfailure action="restart" delay="120 sec"/><!-- 日志模式 --><logmode>append</logmode><!-- 指定日志文件目录(相对于executable配置的路径) --><logpath>logs</logpath>
</service>
  1. 启动服务

【方式一】:打开终端,用winsw命令启动

    1. 右击选择在终端打开,开启命令行
    1. 输入命令.\winsw.exe install

【方式二】:打开服务,找到frpc自行启动

    1. Win键 + R,然后输入services.msc
    1. 找到frpc_0.43.0-windows-amd64服务,右键,然后选择启动
  1. WinSW常用操作命令
# 注册服务
.\winsw.exe install
# 卸载服务
.\winsw.exe uninstall
# 启动服务
.\winsw.exe start
# 停止服务
.\winsw.exe stop
# 重启服务
.\winsw.exe restart
# 查看状态
.\winsw.exe status

centos开放防火墙指定端口

在开启防火墙指定端口时需要保持防火墙开启

  1. 查看防火墙状态
systemctl status firewalld  
  1. 如果是关闭则开启防火墙
systemctl start firewalld
  1. 开启之后就可以开启放指定端口了
firewall-cmd --zone=public --add-port=这里是需要开启的端口号/tcp --permanent

要加–permanent 这是永久生效,不然关机后就要重新开始配置
4. 重新加载防火墙,重新加载后配置生效

firewall-cmd --reload
  1. 查看开放的端口
firewall-cmd --list-port 

http://www.mrgr.cn/news/72340.html

相关文章:

  • 第三十三篇——用变化的眼光看最大值和最小值
  • 【FreeRL】MAPPO的简单复现
  • 内网安全-代理技术-socket协议
  • golang分布式缓存项目 Day2 单机并发缓存
  • Java——异常处理
  • Request和Response
  • PMC部门如何精准把控生产计划和生产进度?关键要点全解析
  • 【miniMax开放平台-注册安全分析报告-无验证方式导致安全隐患】
  • day31-二叉树的最大深度
  • Git服务部署教程
  • Linux中扫描网络的“nmap”工具使用方法
  • Conda安装软件错误(Pycharm)
  • 【更新中】《硬件架构的艺术》笔记(二):时钟与复位
  • 使用Flask部署自己的pytorch模型(猫品种分类模型)
  • 举例说明自然语言处理(NLP)技术。
  • 丹摩征文活动|CogVideoX-2b:从0到1,轻松完成安装与部署!
  • 功能性材料立式粉碎机、立式破碎机、立式超细磨、立式磨粉机
  • vxe-table 实现全部单元格都能编辑的方法
  • GPS L1信号捕获跟踪MATLAB仿真(终极版)
  • ubuntu20.04_从零LOD-3DGS的复现
  • 服务器数据恢复——Ext4文件系统使用fsck后mount不上的数据恢复案例
  • netmap.js:基于浏览器的网络发现工具
  • PET-文件包含-FINISHED
  • ManageOne_SC里业务员账号user01发布ECS
  • LeetCode【0024】两两交换链表中的节点
  • (11)(2.1.7) FETtec OneWire ESCs(二)