1、服务端配置

服务端即在公网环境下的服务器,需配置frps服务

1.1 下载frp

  1. 下载地址是https://github.com/fatedier/frp/releases,要注意下载的版本,由你的服务器机型决定,我下载的是frp_0.34.3_linux_arm64.tar.gz。

  2. 下载完成后将其放在服务器上,然后使用如下命令解压

tar -zxvf frp_0.34.3_linux_arm64.tar.gz
  1. 进入解压目录,这里主要关注4个文件,分别是frpc、frpc.ini和frps、frps.ini,前者两个文件是客户端所关注文件,后者两个文件是服务端所关注两个文件。服务端可以将frpc、frpc.ini删掉。配置过程只需要修改frps.ini即可

1.2 配置frp

下面是我自己的服务端配置frps.ini,有注释供参考

[common]
bind_port = 7000 # 必用:frp的默认监听端口# 选用:frp监测后台配置,三个选项结合使用
dashboard_port = 7001 # 监测frp状态的端口
dashboard_user = *** # 登录frp监测网页的用户名
dashboard_pwd = ******* # 登录frp监测网页的密码# 选用: frp日志配置
log_file = /var/logs/frps.log # 日志文件保存位置,要提前创建文件夹
log_level = info # 日志级别
log_max_days = 3 # 日志保存时长

1.3 设置和启动frp服务

需在frp解压目录下运行,提前创建文件夹/usr/lib/systemd/system

sudo mkdir -p /etc/frp
sudo cp frps.ini /etc/frp
sudo cp frps /usr/bin
sudo cp systemd/frps.service /usr/lib/systemd/system/
sudo systemctl enable frps
sudo systemctl start frps

其他frps服务可能需要用到的命令

# 设置开机自启动
sudo systemctl enable frps
# 启动
sudo systemctl start frps
# 关闭
sudo systemctl stop frps
# 重启
sudo systemctl restart frps
# 查看状态
sudo systemctl status frps

1.4 防火墙开放端口

服务端需要开放的端口有7000(监听端口)、7001(后台端口)、4822(进行内网穿透的端口1)、4880(进行内网穿透的端口2)。其中进行内网穿透的端口由客户端配置决定,可查看2.2。开放端口的命令如下,详细可参考Linux端口开放。

firewall-cmd --zone=public --add-port=7000/tcp --permanent

1.5 验证服务端是否启动成功

访问:http://服务器IP:后台管理端口,输入用户名和密码可以查看连接状态,用户名和密码分别对应frps.ini文件中的dashboard_user和dashboard_pwd

可看到上面的界面说明服务端配置成功

2、客户端配置

客户端即在内网环境中的服务器,需配置frpc服务,主要处理frpc.ini文件

2.1 下载frp

参考1.1,注意版本、机器型号,所需下载文件不一定和服务端相同,下载格式尽量采用tar.gz。下载完毕后解压,删除frps、frps.ini,配置过程只需要修改frpc.ini即可

2.2 配置frp

下面为我自己的客户端配置frpc.ini,有注释可供参考

[common]
# frp路由配置
server_addr = *.*.*.* # 服务端机器的ip
server_port = 7000 # 服务端frp监听端口
# frp日志配置,排错很有用
log_file = /var/logs/frpc.log # 日志文件保存位置,要提前创建文件夹
log_level = info # 日志级别
log_max_days = 3 # 日志保存时长
# 使用tls加密,说明见3.1
tls_enable = true[ssh48] # 穿透标签
type = tcp # 连接类型
local_ip = 127.0.0.1 # 客服端ip
local_port = 22 # 客户端端口
remote_port = 4822 # 服务端端口[http48]
type = tcp
local_ip = 127.0.0.1
local_port = 8080
remote_port = 4880

我共配置了两个穿透服务ssh和http,当有多个穿透服务时要使用不用的标签区分,特别是不同内网机器使用同一台公网机器穿透时,要保证不同内网机器上所有标签都不一样。此外,服务端端口也不能相同。也就是说,对于一台服务端机器来说,它所负责的穿透服务不能有相同的远程端口和标签

2.3 设置和启动frp服务

需在frp解压目录下运行,提前创建文件夹/usr/lib/systemd/system。注意此处与1.3并不相同,是在不同机器上,并且客户端是frpc,服务端是frps,不要搞混了

sudo mkdir -p /etc/frp
sudo cp frpc.ini /etc/frp
sudo cp frpc /usr/bin
sudo cp systemd/frpc.service /usr/lib/systemd/system/
sudo systemctl enable frpc
sudo systemctl start frpc

2.4 防火墙开放端口

客户端需要开放的端口有22(进行内网穿透的端口1)、8080(进行内网穿透的端口2),开放端口的命令参考1.4

3、疑难问题解决

3.1 报错frpc login to server failed: i/o deadline reached

可以在客户端的配置文件frpc.ini中加入一条配置tls_enable = true,tls是一种加密协议,可以避免信息被过滤掉

3.2 其他问题

可以运行以下命令分别查看服务端和客户端frp运行状态,查看其中是否有错误日志。如果不够详细,可以在配置的日志路径中查看日志,将错误信息复制粘贴到百度进行检索。

# 查看frpc状态
sudo systemctl status frpc
# 查看frps状态
sudo systemctl status frps

4、参考文献

  • 使用frp配置内网访问(穿透)教程(超详细,简单)
  • 十分钟教你配置frp实现内网穿透
  • Linux下开机自动启动FRP
  • Frpc login to server failed: i/o deadline reached的一种可能原因

使用frp配置内网穿透相关推荐

  1. orangepi+腾讯云服务器+frp配置内网穿透

    一.准备 orangepi zero2 腾讯云轻量应用服务器 frp压缩包 二.frp配置 2.1 下载frp 地址: Release v0.44.0 · fatedier/frp (github.c ...

  2. 局域网使用树莓派配置内网穿透

    使用frp配置内网穿透 硬件设施:centos 主机 树莓派4b 下载对应的frp 下载地址 https://github.com/fatedier/frp/releases 我下载的分别是 对应的压 ...

  3. 使用frp配置内网访问(穿透)教程(超详细,简单)

    1 Frp介绍 frp 是一个开源.简洁易用.高性能的内网穿透和反向代理软件,支持 tcp, udp, http, https等协议.frp 项目官网是 https://github.com/fate ...

  4. 内网渗透-frp 用于内网穿透的基本配置和使用

    frp 用于内网穿透的基本配置和使用 文章目录 frp 用于内网穿透的基本配置和使用 前言 frps frpc 后记 参考 前言 frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP.UD ...

  5. 十分钟教你配置frp实现内网穿透

    十分钟教你配置frp实现内网穿透 一.frp的作用 利用处于内网或防火墙后的机器,对外网环境提供 http 或 https 服务. 对于 http, https 服务支持基于域名的虚拟主机,支持自定义 ...

  6. 疫情之下,使用FRP实现内网穿透,远程连接公司电脑进行办公

    当前情况下,经常会有需要到公司电脑进行一些操作,比如连接内网OA,数据库或者提交文档.为了减少外出,将使用frp进行内网穿透的方法进行一个说明. 前提条件 1. 一台拥有公网 IP 的设备(如果没有, ...

  7. 使用frp进行内网穿透的实例

    目录 为什么需要内网穿透功能 frp是什么 工具下载地址 下载的软件可参考 准备工作 VPS相关 VPS上添加入站规则 服务端设置 服务端后台运行 客户端设置 自定义规则 客户端后台运行及开机自启 为 ...

  8. 【win11远程桌面访问--基于云端服务器(腾讯云为例)frp的内网穿透实现】

    win11远程桌面访问--基于云端服务器(腾讯云为例)&frp的内网穿透实现 frp介绍 服务器账号配置 服务器安装ubuntu系统 服务器 ubuntu系统内配置frps开机自启动 下载服务 ...

  9. 【内网穿透服务器】利用云服务器+FRP实现内网穿透并远程连接服务器

    应用目的:远程管理或在外网访问内网机器上的服务 这里我们是使用云服务器+FRP实现内网穿透,达到远程连接服务器的目的 准备工作 云服务器 这里我们租用的是腾讯云的服务器,类似于下图的这种,配置选择可以 ...

最新文章

  1. 旋转矩阵、欧拉角、四元数、轴/角之间的转换
  2. 《Tuning I/O Performance》读后笔记
  3. dede linux下oss上传问题
  4. 28句话让你的人际关系更上一层楼
  5. 概率论与数理统计-ch8-假设检验
  6. 利用CSS、JavaScript及Ajax实现图片预加载的三大方法及优缺点分析
  7. 作者:项连城(1992-),女,中国科学院自动化研究所硕士生
  8. 今天我们谈一下HTML标签中的map标签的用法和使用场景
  9. 广工十四届校赛 count 矩阵快速幂
  10. 关于Mysql5.5在关键字方面的变化
  11. fragment定义Android,Android-Jetpack笔记-Navigation之Fragment支持复用
  12. Oracle函数--合并,替换,拼接,截取,查找
  13. MATLAB2016a+eeglab安装
  14. 华为网络设备——单臂路由的配置示例
  15. 明日之后服务器维护到几点,明日之后维护最新资讯
  16. 5G通讯的认知与见解
  17. 动态规划——计算二项式系数问题
  18. 2018web前端不好找工作之web前端面试简历补救篇
  19. php base64保存为图片
  20. ReacNative:报错Cannot add a child that doesn’t have a YogaNode to a parent without a measure function!

热门文章

  1. ios布局 分为左右两块_iOS 13 隐秘的细节④:系统组件·下
  2. 拉勾前端高薪就业课程笔记第十一弹(模块4-1)
  3. NICO dataset
  4. 无线网卡(RTL8188EU)驱动编译、使用DHCP配置无线网络(1
  5. 创新商用沟通协作方式,科天云发布协作云开放平台
  6. python爬虫实例网易云-Python3爬虫实例之网易云音乐爬虫
  7. SpringBoot JPA 批量插入实现,使用原生sql解决SaveAll插入慢的问题
  8. python数组计算cos_NumPy 基础:数组和矢量计算
  9. 我在北京找工作(六):备战阿里巴巴java笔试2:前人的阿里总结
  10. abaqus python_ABAQUS-Python 批处理