前言

  1. 对于没有公网 IP 的内网用户来说,远程管理或在外网访问内网机器上的服务是一个问题。
  2. 今天给大家介绍一款好用内网穿透工具 FRP,FRP 全名:Fast Reverse Proxy。FRP 是一个使用 Go 语言开发的高性能的反向代理应用,可以帮助您轻松地进行内网穿透,对外网提供服务。FRP 支持 TCP、UDP、HTTP、HTTPS等协议类型,并且支持 Web 服务根据域名进行路由转发。

FRP 的作用

  1. 利用处于内网或防火墙后的机器,对外网环境提供 HTTP 或 HTTPS 服务。
  2. 对于 HTTP, HTTPS 服务支持基于域名的虚拟主机,支持自定义域名绑定,使多个域名可以共用一个 80 端口。
  3. 利用处于内网或防火墙后的机器,对外网环境提供 TCP 和 UDP 服务,例如在家里通过 SSH 访问处于公司内网环境内的主机。

  

FRP 安装

  FRP 采用 Go 语言开发,支持 Windows、Linux、MacOS、ARM等多平台部署。FRP 安装非常容易,只需下载对应系统平台的软件包,并解压就可用。
  这里以 Linux 为例,为了方便管理我们把解压后的目录重命名为 frp :
  $ wget https://github.com/fatedier/frp/releases/download/v0.30.0/frp_0.30.0_linux_amd64.tar.gz
  $ tar xzvf  frp_0.30.0_linux_amd64.tar.gz
  $ mv frp_0.30.0_linux_amd64  frp
 

FRP 服务端配置

配置 FRP 服务端的前提条件是需要一台具有**公网 IP **的设备,得益于 FRP 是 Go 语言开发的,具有良好的跨平台特性。你可以在 Windows、Linux、MacOS、ARM等几乎任何可联网设备上部署。
FRP 默认给出两个客户端配置文件,一个是简版的 frpc.ini,另一个是完整版本 frpc_full.ini。
[common]
# frps的ip地址
server_addr = xxx.xxx.xxx.xxx
# frps的端口
server_port =
# 认证token
token = xxx
# 日志
log_file = ./frpc.log
log_level = info
log_max_days =

#远程桌面配置
[dangkou]
type = tcp
local_ip = 127.0.0.1
local_port =
remote_port =
use_encryption = true

#http配置
[web-xinhu]
type = http
# 本地http服务地址
local_ip = 127.0.0.1
# 本地http服务端口
local_port =
# 使用压缩
use_compression = true
# 分配自定义域名访问穿透服务 假如没有域名,则此处请填为frps服务端的服务器(IP)
custom_domains = xxx.xxx.xxx
# 设置认证的用户名
#http_user = abc
# 设置认证的密码
#http_pwd = abc
# 重定向到本地域名
host_header_rewrite = xinhu.test #[ssh]
#type = tcp
#local_port =
#local_ip = 127.0.0.1
# 在服务端注册端口 服务端将监听 ssh root@118.118.118.118 -p 即可代理到本机 ssh 登录
#remote_port =

执行命令 $ ./frpc -c frpc.ini

http/https 服务是在服务端定义的端口,客户端指定协议后会自动关联,ssh 等使用 tcp 的则是在客户端定义好,服务端注意防火墙开放此端口即可。

FRP 默认给出两个服务端配置文件,一个是简版的 frps.ini,另一个是完整版本 frps_full.ini。

[common]
#监听地址
bind_addr = 0.0.0.0
#服务端口
bind_port =
#认证token
token = xxx
#面板界面
dashboard_addr = 0.0.0.0
dashboard_port =
dashboard_user = xxx
dashboard_pwd = xxx
#http服务端口
vhost_http_port =
#https服务端口
vhost_https_port = 7443

 #日志
  log_file = ./frps.log
  log_level = info
  log_max_days = 3

#Web 服务增加自定义二级域名

  subdomain_host = ***.com  #其次在 FRP 客户端配置文件配置 subdomain 参数 通过 subdomain.subdomain_host 就可以访问到内网的 Web 服务

 

放到后台运行:

方式一(终端退出后会被清除):jobs

执行命令 $ ./frps -c frps.ini &

查看后台工作

jobs

将后台暂停的工作恢复到前台执行

fg %工作号

把后台暂停的工作恢复到后台执行

bg %工作号

方式二:screen

$ screen -S frp    #创建一个窗口

$ ./frps -c frps.ini     #启动

ctrl + a + d    #推出当前窗口

$ screen -ls    #查看窗口

$ screen  -X -S frp quit    #删除窗口

https://man.linuxde.net/screen

客户端和服务器起来后第三方通过 访问 xxx.xxx.xxx:7080 就可以访问到内网的 xinhu.test。

推荐

windows下注册服务软件 snnm https://blog.csdn.net/mc_linfen/article/details/82115439

linux下注册服务软件 supervisor

另一款穿墙软件 zeroTier

参考:

https://www.jianshu.com/p/00c79df1aaf0

http://www.chuantou.org/47.html

https://github.com/fatedier/frp/blob/master/README_zh.md

https://www.vediotalk.com/archives/505

frp 配置的更多相关文章

  1. frp 配置多个 web 项目,无需购买域名 (访问内网可视化界面,jupyter noterbook, visdom, tensorboard)

    frp 配置多个 web 项目,无需购买域名 简单配置,参考 前言: 网上也有很多教程包括官方文档,都需要购买域名,并且把 frpc.ini 中 [web]节配置的  custom_domains 的 ...

  2. 使用FRP配置Windows远程控制

    一款很好用的内网穿透工具--FRP 前言 使用内网穿透工具--FRP,以及一台云服务器当做服务端,进行简单配置后即可远程访问 配置 FRP 服务端的前提条件是需要一台具有公网 IP 的设备,得益于 F ...

  3. frp配置

    frps配置 --------------------------------------------------------------------------------------------- ...

  4. 【小技巧解决大问题】使用 frp 突破阿里云主机无弹性公网 IP 不能用作 Web 服务器的限制

    背景 今年 8 月份左右,打折价买了一个阿里云主机,比平常便宜了 2000 多块.买了之后,本想作为一个博客网站的,毕竟国内的服务器访问肯定快一些.满心欢喜的下单之后,却发现 http 服务,外网怎么 ...

  5. 通过 frp 实现群晖的 drive 远端同步

    通过 frp 实现 drive 同步 其实其他的也类似, 只是指定 tcp 的端口不一致就可以. frp 实现的外网端口映射"肥肠"方便. 也推广下 frp 的地址 frp-git ...

  6. 浅析web网站反向代理的配置

    一.背景 最近在部署项目到web服务器上时,该项目有一个打开视频监控的功能,视频的服务器是一台内网的服务器,不允许设置外网端口访问,网站服务器和视频服务器在同一个局域网内,可以相互联通.网络拓扑图如下 ...

  7. frp内网穿透学习

    前言 因为自己在内网,但是目标站在外网,这时候可以通过内网穿透工具,将接收到的请求转发到内网,实现在内网的msf可以控制外网的靶机. 也看了一些Ngrok,花生壳的,发现Ngrok.cc这个看文章说有 ...

  8. 内网穿透—使用 frp 实现内外网互通

    前言 什么是内网穿透? 内网穿透,又叫 NET 穿透,是计算机用语.用通俗的说法就是你家里的个人电脑,可以直接被外网的人访问.例如你在公司,不通过远程工具,直接也可以访问到家里的电脑(本文章特指 we ...

  9. 【网络】内网穿透方案&FRP内网穿透实战(基础版)

    目录 前言 方案 方案1:公网 方案2:第三方内网穿透软件 花生壳 cpolar 方案3:云服务器做反向代理 FRP简介 FRP资源 FRP原理 FRP配置教程之SSH 前期准备 服务器配置 下载FR ...

随机推荐

  1. Sunday算法浅谈

    一.Sunday算法简介 Sunday算法在我看来比起Kmp和bm都更加容易理解,代码实现也更加简洁.Sunday算法由Daniel M.Sunday在1990年提出,它的思想跟BM算法很相似只不过S ...

  2. 新手指引,php什么是常量、变量、数组、类和对象及方法?

    众所周知,常量.变量.数组.类和对象及方法共同构成了PHP的基石.那么什么是常量?什么是变量?什么是数组?什么是类和对象及方法?我在此谈谈个人浅见,新手指引,高手勿喷. PHP 常量 定义:常量是单个 ...

  3. input file multiple 配合springmvc实现多文件上传

    .前端页面的样子 <input id="file" name="file" type="file" multiple="mu ...

  4. Vue ElementUI Tree组件 回显问题(设置选择父级时会全选所有的子级,有此业务场景是不适合的)

    业务场景下有这样的问题 业务需求需要保存前端 半选节点 解决方案 let checked = this.$refs.menuTree.getCheckedKeys(); //此方法获取半选节点 let ...

  5. Java日志介绍(1)-java.util.logging.Logger

    java.util.logging.Logger是JDK自带的日志工具,其简单实现了日志的功能,不是很完善,所以在实际应用中使用的比较少.本文直接用代码演示其使用方法,文中所使用到的软件版本:Java ...

  6. 2019牛客暑期多校训练营(第七场)A String (字符串的最小表示)

    思路 这题思路如果是递归的话,应该是比较正确的.但是实际上只用切割两次就可以了. 先把原串从后向前切割一次,再把每一部分切割一次. 切两次的思路实际上是有漏洞的. 递归的思路,终点是,如果串长为1,或 ...

  7. 与英特尔分道扬镳,苹果的5G业务掉队了吗?

    5G概念已经大热,越来越多的厂商推出相关产品,中国骄傲之华为不仅在5G通信标准制定方面参与感非常强,也先于竞争对手推出5G智能终端,连同三星/Vivo等也纷纷推出5G终端,而作为智能手机市场绝对的利润 ...

  8. 关于 UIDatePicker 在iOS9 系统上的一个坑

    在使用 UIDatePicker时,在iOS9系统上上遇到一个很奇怪的问题,在其他系统版本中没发现,设置年月日格式显示的视图,在iOS9设备上出现中间月份无法显示的问题: 检查代码没问题,这个视图是使 ...

  9. [原]SVN代码管理

    1.SVN工程结构 branches zhangsan lisi wangwu tags project-release trunk project-trunk branches:下为trunk的分支 ...

  10. 关于python 3.x import matplotlib as plt ImportError: DLL load failed: 找不到指定的模块

    windows 10下使用conda update --all更新过后,就出现这样的问题了,各种包不能用了,然后在stackoverflow上搜到有人也遇到相同的问题,并通过其中的回答找到了原因,这里 ...