使用frp搭建自己的内网穿透

本文介绍了如何使用frp搭建内网穿透服务,以解决在微信开发等场景下本地无公网IP的问题。frp相比花生壳更安全,但需要一个域名和公网服务器。详细步骤包括软件下载、配置文件设定、服务端和客户端启动,以及通过nginx实现80端口转发。此外,还提供了frp和nginx的配置示例。
摘要由CSDN通过智能技术生成

背景

微信开发等场景需要使用公网地址,但开发者本地通常没有公网IP,需要搭建内网穿透来方便调试。通常可以使用花生壳Ngrokfrp等。花生壳需要实名认证, 需要6块钱,且使用别人服务器有一定的安全隐患。这里我们使用frp搭建自己的内网穿透服务。

需要准备材料

  1. 软件安装包
    GitHub发行版地址
    下载地址截图
  • 值得注意的是 客户端和服务端版本需要保持一致。
  • 根据自己的操作系统, 通常下载上图标记的版本
  1. 需要一个域名和一台公网服务器,如果没有这两样可以劝退了,frp的基本原理就是先访问指定的公网服务器, 然后通过在服务器上frp服务端和内网机器的客户端之间通讯,完成数据转发的。其它内网穿透思路类似。

安装

无论是windows还是linux 解压之后,即可启动运行,frps是服务端,frpc是客户端,需要通过配置文件置指定客户端和服务端的通讯端口以及各种协议转发配置。

  • linux
wget https://github.com/fatedier/frp/releases/download/v0.36.2/frp_0.36.2_linux_amd64.tar.gz
tar -zxvf frp_0.36.2_linux_amd64.tar.gz
  • windows
    下载解压即可

配置文件(web)

这里只说明映射web服务器的配置方法。

  1. 客户端配置frpc.ini
[common]
# 服务器公网地址
server_addr = 8.8.8.221
# 服务器监听端口, 即客户端与服务端通讯端口
server_port = 7000

[web]
# 转发协议
type = http
# 本地应用地址
local_port = 8080
# 域名, 此域名应是正常可进行公网解析的域名
custom_domains = www.XXXX.com
  1. 服务端配置frps.ini
[common]
# 服务器监听端口, 即客户端与服务端通讯端口, 与客户端对应
bind_port = 7000
# 本地应用映射端口, 此端口会被占用, 我们访问时实际上访问的就是此端口, 然后通过客户端转发到本地服务
vhost_http_port = 8080

配置文件各操作系统通用

启动

# 服务端
./frps -c ./frps.ini
# 客户端
./frpc -c ./frpc.ini

windows启动时必须使用cmd窗口启动

拓展

实际开发中我们通常想通过80端口来访问服务器,然后转发到本地调试,但服务器的80端口通常被nginx占用,此时可以通过nginx转发的方法实现不改变其他应用, 同时使用80/443端口进行调试,即我们访问时, 先访问服务器的nginx,然后到frp server,然后到本地应用。配合以上frp配置,nginx转发配置如下:

	server {
		listen 80;
		server_name www.XXXX.com;

		location / {
			proxy_redirect          off;
			proxy_set_header Host $host:$server_port;
			proxy_set_header X-Forwarded-For $remote_addr;
			client_max_body_size      20m;
			client_body_buffer_size 128k;
			proxy_connect_timeout   600;
			proxy_send_timeout      600;
			proxy_read_timeout      900;
			proxy_buffer_size       4k;
			proxy_buffers           4 32k;
			proxy_busy_buffers_size 64k;
			proxy_temp_file_write_size 64k;
			proxy_pass http://127.0.0.1:8080/;
		}
	}

官方文档

frp官方文档

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值