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

记利用frp配合nginx实现内网透传

frp下载

背景 :

内网有一台服务器A 在NAT背后

无法被其他客户端访问

借助公网服务器B来配置内网透传

即可通过B来访问A

服务端安装frps 启动: ./frps -c frps.ini

配置文件frps.ini如下

[common]
subdomain_host = example.com # 为父域名    
bind_port = 1234 # 为frp使用的端口
vhost_http_port = 8080 # 为外网服务器的端口
token = XXX # frp客户端和服务端token相同才可连接

客户端安装frpc 启动: ./frpc -c frpc.ini

配置文件frps.ini如下

[common]
server_addr = example.com # 为服务器地址
server_port = 1234 # frp端口
token = XXX # frp客户端和服务端token相同才可连接

[web] # 开启web转发服务
type = http # 方式: http
local_port = 88 # 本地服务的端口
subdomain = sub # 子域名
locations = / # 根

配置nginx的转发规则

配置nginxsudo vim /etc/nginx/nginx.conf如下

    underscores_in_headers on;
    server{
        listen 80;
        listen [::]:80;
        server_name sub.example.com; # 这里设置子域名转发规则
        location / {
            #underscores_in_headers on;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://localhost:8080;  # 这里是vhost_http_port 
        }
    }

这样就实现了访问 sub.example.com

转发到本地的localhost:88

这里需要注意的是 nginx对http header中包含下划线的header信息都会过滤掉

所以需要添加 underscores_in_headers on; 才能转发自定义的header信息

转载于:https://www.cnblogs.com/licsber/p/frp.html

相关文章:

  • 一本通1554【例 3】异象石
  • codeforces 140E.New Year Garland
  • 加密_散乱的密文
  • 力扣——二叉搜索树中的搜索
  • visualsvn for vs2017 初始化错误
  • 寒假开学回忆
  • 4算法与数据结构
  • C++虚继承
  • L3-009 长城 (30 分)
  • 股票
  • 如何创建一个Asp .Net Web Api项目
  • RAID LVM ISCSI
  • 在采用vue-cli Post Get
  • Linux的常识
  • P1606 [USACO07FEB]白银莲花池Lilypad Pond
  • 分享的文章《人生如棋》
  • Docker 笔记(2):Dockerfile
  • el-input获取焦点 input输入框为空时高亮 el-input值非法时
  • HashMap ConcurrentHashMap
  • Iterator 和 for...of 循环
  • java小心机(3)| 浅析finalize()
  • nodejs实现webservice问题总结
  • PHP 小技巧
  • Spring思维导图,让Spring不再难懂(mvc篇)
  • 阿里云购买磁盘后挂载
  • 关于List、List?、ListObject的区别
  • 机器学习中为什么要做归一化normalization
  • 力扣(LeetCode)21
  • 前端面试之闭包
  • 试着探索高并发下的系统架构面貌
  • 在 Chrome DevTools 中调试 JavaScript 入门
  • MPAndroidChart 教程:Y轴 YAxis
  • PostgreSQL之连接数修改
  • ​一帧图像的Android之旅 :应用的首个绘制请求
  • ​中南建设2022年半年报“韧”字当头,经营性现金流持续为正​
  • #QT(串口助手-界面)
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • (2)关于RabbitMq 的 Topic Exchange 主题交换机
  • (C#)一个最简单的链表类
  • (env: Windows,mp,1.06.2308310; lib: 3.2.4) uniapp微信小程序
  • (ISPRS,2023)深度语义-视觉对齐用于zero-shot遥感图像场景分类
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (附源码)php投票系统 毕业设计 121500
  • (附源码)springboot 智能停车场系统 毕业设计065415
  • (三)Pytorch快速搭建卷积神经网络模型实现手写数字识别(代码+详细注解)
  • (三)终结任务
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (一)Spring Cloud 直击微服务作用、架构应用、hystrix降级
  • *1 计算机基础和操作系统基础及几大协议
  • ./configure、make、make install 命令
  • .NET Compact Framework 3.5 支持 WCF 的子集
  • 。Net下Windows服务程序开发疑惑
  • @Autowired注解的实现原理
  • @data注解_SpringBoot 使用WebSocket打造在线聊天室(基于注解)