前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux环境搭建frp实现内网穿透

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

作者头像
小吕
发布2022-06-16 19:08:40
7.7K0
发布2022-06-16 19:08:40
举报
文章被收录于专栏:小吕小吕

内网穿透的概念

内网穿透,即 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下载

代码语言:javascript
复制
wget https://github.com/fatedier/frp/releases/download/v0.38.0/frp_0.38.0_linux_amd64.tar.gz

解压

代码语言:javascript
复制
tar -xzvf frp_0.38.0_linux_amd64.tar.gz
2.2、本机

使用curl下载

代码语言:javascript
复制
curl -O https://github.com/fatedier/frp/releases/download/v0.38.0/frp_0.38.0_darwin_amd64.tar.gz

解压

代码语言:javascript
复制
tar -xzvf frp_0.38.0_darwin_amd64.tar.gz

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:
代码语言:javascript
复制
vi frps.ini

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

2、配置frps要监听的端口:按下i进入编辑模式,在末尾增加一行:vhost_http_port = 8080,使frps.ini最终配置如下:
代码语言:javascript
复制
[common]
bind_port = 7000
#http服务端口
vhost_http_port = 8086 
#https服务端口
vhost_https_port = xxx
# dashboard
dashboard_port = 7500

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

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

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

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

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

代码语言:javascript
复制
./frps -c ./frps.ini

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

代码语言:javascript
复制
nohup ./frps -c frps.ini &  > frp.log

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

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

代码语言:javascript
复制
chmod 700 frps

然后再次执行启动命令。

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

客户端配置和启动

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

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

代码语言:javascript
复制
[common]
# frps的ip地址
server_addr = x.x.x.x
# frps的端口
server_port = 7000

[web]
type = http
#本地http服务端口
local_port = 9999
# 绑定域名
custom_domains = xxx

3、启动frpc程序:

代码语言:javascript
复制
./frpc -c ./frpc.ini

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

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

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 内网穿透的概念
  • 内网穿透的应用场景
  • 内网穿透的搭建工具
  • frp下载和版本选择
    • 版本选择说明:
      • 下载方式:
        • 1: 直接点击链接
        • 2、终端命令方式
      • frp压缩包文件说明
        • 服务端配置和启动
          • 客户端配置和启动
            • 1、在本机进入frp_0.38.0_darwin_amd64目录,打开frpc.ini文件;
            • 2、以配置访问内网的web服务(常见情形)为例,最终修改frpc.ini如下:
            • 3、启动frpc程序:
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档