前言

  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. PHP 基础 自动类型转换之比较运算符

    <?php var_dump(' 123fg456'>=122); var_dump('some string' == 0); var_dump(123.0 == '123d456'); ...

  2. 如何使用git和github

    转载:https://www.cnblogs.com/cxscode/p/8325064.html 如何用git将项目代码上传到github 先上常用语句 git add . git commit - ...

  3. sqlmap+burpsuit

    sqlmap可以批量扫描burpsuit导出的requests日志文件,从而进行批量扫描是否存在SQL注入. 首先设置burpsuit记录代理的Requests 把记录的日志文件保存在sqlmap的目 ...

  4. python自动更新升级失败解决方案

    1,使用python -m pip install --upgrade pip升级失败 2,使用python -m pip install -U --force-reinstall pip依然失败 3 ...

  5. BootStrap jQuery 在线cdn

    Bootstrap 3.3.0 js 文件 <script src="http://cdn.bootcss.com/bootstrap/3.3.0/js/bootstrap.min.j ...

  6. js正则验证表达式验证

    /* 合法uri */ export function validateURL(textval) {  const urlregex = /^(?:http(s)?:\/\/)?[\w.-]+(?:\ ...

  7. Numpy Pandas

    数据分析 : 是把隐藏在一些看似杂乱无章的数据背后的信息提炼出来,总结出所研究对象的内在规律. 数据分析三剑客 -  Numpy Pandas Matplotlib # Numpy 基于一维或多维的数 ...

  8. js下false情况

    //为false的情况 false null NaN undefined "" 0

  9. 计算机二级-C语言-程序填空题-190117记录-对文件的处理,复制两个文件,往新文件中写入数据。

    //给定程序的功能是,调用函数fun将指定源文件中的内容赋值到指定目标文件中,复制成功时函数返回1,失败时返回0,把复制的内容输出到终端屏幕.主函数中源文件名放在变量sfname中,目标文件名放在变量 ...

  10. WechatPro_页面创建

    1. 全局三个文件,app.js, app.json, app.wxss(名称不可更改) 2.创建Pages目录文件,用来放置各个页面 3.创建页面(页面命名,创建四个文件) (1)js:页面逻辑实现 ...