当前位置:   article > 正文

Linux环境搭建frp实现内网穿透_openfrp linux

openfrp linux

内网穿透的概念

内网穿透,即 NAT穿透,网络连接时术语,计算机是局域网内时,外网与内网的计算机节点需要连接通信,有时就会出现不支持内网穿透。——来自百度百科。

简单来说,就是让互联网(外网)的设备能访问局域网(内网)的设备提供的服务,这里的设备通常是电脑。

内网穿透的应用场景

对开发人员来说,一个典型的应用场景就是针对第三方授权(通常是oauth2.0)和支付回调的开发调试。通过内网穿透工具将第三方SDK的回调地址映射到本机开发环境,从而实现实时调式。

其次是节约部署成本(通常是公网服务器费用)。通过将应用部署在本机,再利用内网穿透工具对外提供服务,这样就能,既节约服务器租用费用,又能提升服务器的硬件配置。

本文适用于第一种情况,即低频率开发调式用。

内网穿透的搭建工具

nps-npc ngrok ew frp

ngrok 这是一个国外的穿透工具,1.0版本是开源的,目前2.0以上版本已经闭源,并且提供免费和收费的服务。

frp

这是一个国内的开源工具,目前最新版本为0.26.0,有比较详尽的中文文档,并且一直在维护更新。

由于frp一直开源,并且维护积极、更新频繁,再加上中文文档加持,本文最终选择了frp作为搭建工具。

注:frp自主搭建需要一个有公网ip的服务器。

frp下载和版本选择

frp官网: https://gofrp.org/docs/

下载frp:https://github.com/fatedier/frp (注意: 客户端和服务端版本要一致)

版本选择说明:

  • frp_0.38.0_darwin_amd64.tar.gz —— 适用于Mac OS系统
  • frp_0.38.0_freebsd_386.tar.gz —— 适用于FreeBSD 32位系统
  • frp_0.38.0_freebsd_amd64.tar.gz —— 适用于FreeBSD 64位系统
  • frp_0.38.0_linux_386.tar.gz —— 适用于Linux 32位系统
  • frp_0.38.0_linux_amd64.tar.gz —— 适用于Linux 64位系统
  • frp_0.38.0_linux_arm.tar.gz —— 适用于Linux 32位嵌入式系统
  • frp_0.38.0_linux_arm64.tar.gz —— 适用于Linux 64位嵌入式系统
  • frp_0.38.0_linux_mips.tar.gz
  • frp_0.38.0_linux_mips64.tar.gz
  • frp_0.38.0_linux_mips64le.tar.gz
  • frp_0.38.0_linux_mipsle.tar.gz
  • frp_0.38.0_windows_386.zip —— 适用于Windows 32位系统
  • frp_0.38.0_windows_amd64.zip —— 适用于Windows 64位系统

本文服务器系统为CentOS7 64位,选择了frp_0.38.0_linux_adm64.tar.gz;本机系统为Mac OS X,于是选择了frp_0.38.0_darwin_amd64.tar.gz

下载方式:

1: 直接点击链接

使用浏览器下载到本机,将frp_0.38.0_linux_amd64.tar.gz上传到服务器, 压缩包frp_0.26.0_darwin_amd64.tar.gz直接在本机解压。

2、终端命令方式

2.1、服务器

使用wget下载

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

解压

tar -xzvf frp_0.38.0_linux_amd64.tar.gz
  • 1
2.2、本机

使用curl下载

curl -O https://github.com/fatedier/frp/releases/download/v0.38.0/frp_0.38.0_darwin_amd64.tar.gz
  • 1

解压

tar -xzvf frp_0.38.0_darwin_amd64.tar.gz
  • 1

frp压缩包文件说明

  • 每个压缩包解压后都包含以下文件和一个systemd文件夹:
  • frpc —— 客户端可执行二进制文件
  • frpc_full.ini —— 包含全部配置项的客户端配置文件
  • frpc.ini —— 客户端使用的配置文件,包含最简配置
  • frps —— 服务端可执行二进制文件
  • frps_full.ini —— 包含全部配置项的服务端配置文件
  • frps.ini —— 服务端使用的配置文件,包含最简配置
  • systemd —— 文件夹,用于将frpc和frps添加为服务的配置,linux下使用systemd作为守护程序、mac os使用launchd作为守护程序

注:服务端只需用到frp_0.38.0_linux_amd64目录下的frps相关文件,本机(客户端)只需用到frp_0.38.0_darwin_amd64目录下的frpc相关文件

服务端配置和启动

通过自定义域名访问内网的 Web 服务https://gofrp.org/docs/examples/vhost-http/

1、在服务器上打开frps.ini:
vi frps.ini
  • 1

注:确保当前已进入工作目录/root/frp_0.38.0_linux_amd64/

2、配置frps要监听的端口:按下i进入编辑模式,在末尾增加一行:vhost_http_port = 8080,使frps.ini最终配置如下:
[common]
bind_port = 7000
#http服务端口
vhost_http_port = 8086 
#https服务端口
vhost_https_port = xxx
# dashboard
dashboard_port = 7500
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

注: vhost_http_port监听的端口不能被占用,否则会导致frps不能启动,端口可根据实际需要修改;bind_port端口为frp服务端和客户端连接通信的端口,默认为7000。

frps dashboard 通过浏览器查看 frp 的状态以及代理统计信息展示。

Dashboard 尚未针对大量的 proxy 数据展示做优化,如果出现 Dashboard 访问较慢的情况,请不要启用此功能

在这里插入图片描述

3、保存配置并退出:按下Esc,输入:wq。
4、启动frps程序:

方法一: 启动命令(这种方式不推荐,因为断开与服务器的SSH连接后,frp也就停止运行了

./frps -c ./frps.ini
  • 1

方法二: 建议让frp在后台运行:

nohup ./frps -c frps.ini &  > frp.log
  • 1

这样即使关掉了SSH,frp依然在后台运行中。

注:如遇permission denied错误,表明frps可能没有运行权限,则先赋权:

chmod 700 frps
  • 1

然后再次执行启动命令。

到此,服务端的搭建已经完成。

客户端配置和启动

1、在本机进入frp_0.38.0_darwin_amd64目录,打开frpc.ini文件;

2、以配置访问内网的web服务(常见情形)为例,最终修改frpc.ini如下:

[common]
# frps的ip地址
server_addr = x.x.x.x
# frps的端口
server_port = 7000

[web]
type = http
#本地http服务端口
local_port = 9999
# 绑定域名
custom_domains = xxx
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

3、启动frpc程序:

./frpc -c ./frpc.ini
  • 1

注:此时frpc会通过7000端口尝试与frps建立通信连接,如果一切顺利,则终端会提示连接成功;但实际情况却显示连接失败,请检查:

服务端 7000端口, 和8086端口(根据自己端口变换) 是否已经开放

到此,客户端的搭建已经完成。

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号