热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

frp记录

frp入门使用记录简介:frp是一个专注于内网穿透的高性能的反向代理应用,支持TCP、UDP、HTTP、HTTPS等多种协议。可以将内网服务以安全、便

frp入门使用记录

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

目前是因为没有公网ip 所以使用服务器的公网去映射


1. 安装


  • 下载

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

  • 解压

tar -xvf frp_0.38.0_linux_amd64.tar.gz

  • 移动至 /usr/local

mkdir /usr/local/frp
mv frp_0.38.0_linux_amd64/* /usr/local/frp/

  • 文件说明

frps.ini: 服务端配置文件
frps: 服务端软件
frpc.ini: 客户端配置文件
frpc: 客户端软件

2. 配置systemctl来控制,服务端运行


  • vim新建文件并写入配置内容

vim /usr/lib/systemd/system/frp.service

  • 写入以下内容,注意上文移动放置的路径和此处有关。这里是启动的服务端

[Unit]
Description=The nginx HTTP and reverse proxy server
After=network.target remote-fs.target nss-lookup.target[Service]
Type=simple
ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.ini
KillSignal=SIGQUIT
TimeoutStopSec=5
KillMode=process
PrivateTmp=true
StandardOutput=syslog
StandardError=inherit[Install]
WantedBy=multi-user.target

  • 重新加载服务的配置文件

systemctl daemon-reload

  • 现在就可以用 systemctl 套装来控制 frp 了。
  • 启动/停止/重启,查看状态,设置开机自启/关闭开机自启

systemctl start frp
systemctl stop frp
systemctl restart frp
systemctl status frp
systemctl enable frp
systemctl disable frp

3. 配置和使用


3.1 服务端

frps.ini

[common] #必须设置
bind_port = 7000 #是自己设定的frp服务端端口
vhost_http_port = 80 #是自己设定的http访问端口
token = 123 #核实身份用,加了更安全[ssh] #ssh反向代理(不是必须设置)
listen_port = 6000 是自己设定的ssh访问端口[web] #http反向代理[]里的内容可以自己设定,但是客户端和服务端必须要对应(如[aaa],[bbb]);
type = http #为服务类型,可以设为http,https
custom_domains = test1.a.com #为要映射的域名,记得域名的A记录要解析到外网主机的IP。[web2] #同上(可设置多个)

示例

[common]
bind_port = 700
vhost_http_port = 9080[ssh]
listen_port = 6000[web]
type = http
custom_domains = onlylmf.cn

  • 启动

./frps -c ./frps.ini# 后台启动
nohup ./frps -c ./frps.ini &# 因为我设置的端口是700 如果想关闭服务
netstat -auntp|grep 700
# 然后结束掉该进程 xxx是该pid
kill -9 xxxx

image-20220830142501385

至此服务端就已经启动成功了!


3.2 客户端

因为我使用的是win10

所以直接下载 cmd运行了


  • 下载

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

选择自己操作系统对应的版本进行下载

image-20220902164451593

解压后 得到该目录

image-20220902164445625


frpc.ini


[common]
server_addr = 远程frp服务器ip
server_port = 远程frp服务器端口
token = 远程frp服务器token[http]
type = http
local_ip = 127.0.0.1
local_port = 本地端口号
remote_port = 远程frp服务器的http服务端口号
custom_domains = 自定义配置的域名
subdomain = 匹配服务端配置的subdomain_host

示例

[common]
server_addr = 121.41.12.64
#绑定端口要和服务端配置的一样
server_port = 700 [web]
type = http
local_ip = 192.168.3.46
local_port = 80
custom_domains = szy.frp.onlylmf.cn
#subdomain = zxy[web2]
type = http
local_ip = 192.168.0.166
local_port = 11180
custom_domains = tf.frp.onlylmf.cn[lapis]
type = http
local_ip = 127.0.0.1
local_port = 11180
custom_domains = lapios.frp.onlylmf.cn

启动


./frpc -c ./frpc.ini# 后台启动
nohup ./frpc -c ./frpc.ini &

image-20220902164438544


4. Nginx 配置


  • 在域名网站 解析自定义域名后申请免费是ssl证书 下载crt和key放在服务器中

  • 配置nginx配置

    # 将访问80端口的网址 跳转到443
    server{listen 80;server_name 需要跳转的网址;add_header cettt $http_host; # 这里是自定义头rewrite ^(.*)$ https://$http_host$1 permanent;}server {listen 443 ssl;server_name 需要转发的域名;ssl_certificate 对应的ssl证书的crt.crt;ssl_certificate_key 对应的ssl证书的key.key;ssl_session_timeout 30m;ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;ssl_protocols TLSv1 TLSv1.1 TLSv1.2;ssl_prefer_server_ciphers on;add_header ffff $http_host; # 这里是自定义头location / {proxy_redirect off;proxy_set_header Host $http_host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_pass http://127.0.0.1:8090/;}}


5. 配置连接家里的路由器

纯属是我自己的需要而已

因为我租的房子网络没有公网ip 用不了DDNS 所以使用frp进行内网穿透

因为买的一个阿里云的服务器没怎么用 就把服务端放在服务器上 使用服务器的公网ip


  1. 先在服务器上安装frps

步骤如前面的步骤

下载安装后 配置frps.ini

image-20220902164354435

我这边定义的 [web] 是我另外的穿透 现在使用的是 [Myrouter]

然后后台启动 服务端


  1. 在家里路由器上安装客户端

: 因为我刷了openwrt的固件 所以下载frpc客户端 以及luci可视化的管理页面

​ 可以在 软件包里搜索下载 frpc 、luci-app-frpc 、 语言包 luci-i18n0-frpc-zh-cn

​ 如果搜索不到 就先下载到本地 然后在通过文件传输到 路由上

image-20220902164348675


  • 装好后 如果服务里没有显示 Frp内网穿透 那么可能是缓存引起的

    登录路由器的ssh 把luci的缓存清空后 重启

    rm /tmp/luci-indexcachereboot

  • image-20220902164338759

    在如果 都安装完成了 但一直frp显示未启动 那么可能是被禁止了 去系统的启动项去 找到frp 启动

    image-20220902164334159

    然后不出意外的话应该就好了


  1. 进行全局和服务列表的配置

image-20220902164327921

保存后 配置服务列表

点击添加后

image-20220902175052975

至此就配置完成了


  1. 验证 在本地访问服务端的可视化界面查看

image-20220902164306837

当时在frps.ini中配置了 dashboard_port 就是访问端口 还要记得在服务器的防火墙将设置的端口开放

image-20220902164255269


  1. 设置 ssl 配置nginx 转发


  • 前提是申请 对应的自定义域名的证书 下载crt和key 放入服务器中

  • 配置nginx

    server {listen 443 ssl;server_name 需要跳转的域名;ssl_certificate 申请的ssl的crt路径.crt;ssl_certificate_key 申请的ssl的key路径.key;ssl_session_timeout 30m;ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;ssl_protocols TLSv1 TLSv1.1 TLSv1.2;ssl_prefer_server_ciphers on;add_header ffff $http_host; # 这里是自定义头location / {proxy_redirect off;proxy_set_header Host $http_host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_pass http://127.0.0.1:9080/;}}

    然后 访问自定义域名 则成功访问到转发网址


推荐阅读
  • 深入解析Linux下的I/O多路转接epoll技术
    本文深入解析了Linux下的I/O多路转接epoll技术,介绍了select和poll函数的问题,以及epoll函数的设计和优点。同时讲解了epoll函数的使用方法,包括epoll_create和epoll_ctl两个系统调用。 ... [详细]
  • svnWebUI:一款现代化的svn服务端管理软件
    svnWebUI是一款图形化管理服务端Subversion的配置工具,适用于非程序员使用。它解决了svn用户和权限配置繁琐且不便的问题,提供了现代化的web界面,让svn服务端管理变得轻松。演示地址:http://svn.nginxwebui.cn:6060。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • Ubuntu 9.04中安装谷歌Chromium浏览器及使用体验[图文]
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
author-avatar
怪物-pp_912
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有