IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> frp记录 -> 正文阅读

[系统运维]frp记录

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-indexcache
    
    reboot
    
  • 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/;
          }
      }
    

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

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-09-04 01:48:04  更:2022-09-04 01:50:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 9:25:59-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码