个人博客主页: xzajyjs.cn


frp是什么

简单地说,frp就是一个反向代理软件,它体积轻量但功能很强大,可以使处于内网或防火墙后的设备对外界提供服务,它支持HTTP、TCP、UDP等众多协议。


实验环境

  • 一台拥有公网IP的VPS(Linux)
  • 需要进行内网穿透的实验机Windows(暂不支持macOS)

三种服务样例

1. ssh服务

在Linux上和Win上分别下载对应的最新Release版本(点我跳转)

tar -zxv frp_0.38.0_linux_amd64.tar.gz
cd frp_0.38.0_linux_amd64

在我们的公网服务器 Server A上配置 frps.ini设置通信端口

# frps.ini
[common]
bind_port = 7000

启动服务

./frps -c frps.ini

接着配置我们Windows端的 frpc.ini (这次我们实验使用默认的ssh类型即可)

# frpc.ini
[common]
server_addr = x.x.x.x
server_port = 7000 [ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 7890

server_addr 填入我们的公网IP

server_port 刚刚的通信端口

local_ip 需要进行内网穿透的主机ip

local_port 是需要进行映射的端口

remote_port 是映射至公网服务器的端口

配置好后开启服务连接

.\frpc.exe -c frpc.ini

此时就可以通过公网IP+端口(7890)连接我们windows的22端口了


2. http服务

配置vps的frps.ini

# frps.ini
[common]
bind_port = 7000
vhost_http_port = 8080

配置win的frpc.ini

# frpc.ini
[common]
server_addr = x.x.x.x
server_port = 7000 [web]
type = http
local_port = 80
custom_domains = www.example.com

此时通过访问公网IP+8080端口访问到我们部署在win上80端口的web服务


3. dns服务

配置frps.ini

# frps.ini
[common]
bind_port = 7000

配置frpc.ini

# frpc.ini
[common]
server_addr = x.x.x.x
server_port = 7000 [dns]
type = udp
local_ip = 8.8.8.8
local_port = 53
remote_port = 6000

使用dig进行测试

dig @[公网IP] -p 6000 www.bing.com

其他

frp支持远远不止这些服务,当然也可以自定义服务。具体可阅读手册

frp实现基于反向代理的内网穿透的更多相关文章

  1. 借助FRP反向代理实现内网穿透

    一.frp 是什么? frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP.UDP.HTTP.HTTPS 等多种协议.可以将内网服务以安全.便捷的方式通过具有公网 IP 节点的中转暴露到公 ...

  2. ssh后门反向代理实现内网穿透

    如图所示,内网主机ginger 无公网IP地址,防火墙只允许ginger连接blackbox.example.com主机 假如你是ginger的管理员root,你想要用tech主机连接ginger主机 ...

  3. Nginx反向代理访问内网服务器

    Nginx反向代理访问内网服务器 问题描述 ​ 公司给配的台式机太垃圾了,不能访问外部网络就算了,还没有maven私服.近期项目不光得使用maven还得使用内网中的数据库之类,台式机太卡只能用自己的笔 ...

  4. 【代理】内网穿透工具 frp&frps

    frp 是一个高性能的反向代理应用,可以帮助您轻松地进行内网穿透,对外网提供服务,支持 tcp, http, https 等协议类型,并且 web 服务支持根据域名进行路由转发. ### frp 的作 ...

  5. 基于Yarp的http内网穿透库HttpMouse

    简介 前几天发表了<基于Yarp实现内网http穿透>,当时刚刚从原理图变成了粗糙的代码实现,项目连名字都还没有,也没有开放源代码.在之后几天的时间,我不断地重构,朝着"可集成. ...

  6. ECS上nginx搭建反向代理通过内网访问阿里云OSS服务

    对于付不起钱的小伙计,为了给公司省钱,想尽一切招数.今天就来分享一个使用阿里云OSS存储搭配CDN使用的网站服务器部署方法. 简介 阿里云OSS 阿里云提供的一种文件存储方案,和我们以前接触的百度云B ...

  7. 搭建Nginx反向代理做内网域名转发

    由于公司内网有多台服务器的 http 服务要映射到公司外网静态 IP,如果用路由的端口映射来做,就只能一台内网服务器的 80 端口映射到外网 80 端口,其他服务器的 80 端口只能映射到外网的非 8 ...

  8. AUTOSSH设置ssh隧道,实现反向代理访问内网主机

    内网主机上配置: autossh -M -CNR :localhost: ubuntu@123.207.121.121 可以实现将访问主机123.207.121.121的1234端口的数据,通过隧道转 ...

  9. nodejs内网穿透

    说明 本地服务注册,基于子域名->端口映射.公网测试请开启二级或三级域名泛解析 无心跳保活.无多线程并发处理 服务器端 请求ID基于全局变量,不支持PM2多进程开服务端.(多开请修改uid函数, ...

随机推荐

  1. SeleniumLibrary 主要关键字 基于python3

    关键字的解释 https://blog.csdn.net/ak739105231/article/details/88926995 click element 都是元素点击事件:不赘述 click l ...

  2. 菜鸡的Java笔记 第五 - java 程序逻辑控制

    程序主要分为三种逻辑:顺序,分支,循环. if 分支语句 if分支语句是最为基础的分支操作,但是其有三种使用形式: if语句 if.....else   语句 if....else...if...el ...

  3. nginx安装与配置1-nginx安装

    反向代理: 客户端不需要配置就可以访问,将请求发送到反向代理服务器, 由反向代理服务器选择目标服务器获取数据,再返回客户端,对外暴露代理服务器地址,隐藏真实ip 负载均衡: 客户端请求nginx等服务 ...

  4. flutter第一课

    网上搜到有一个8小时体验flutter的教程,感觉可以尝试一个hello world出来:https://www.jianshu.com/p/9aaabc60d8af 官网下载很慢,可以使用镜像下载, ...

  5. JAVA特点及安装卸载

    C语言特点 1972 贴近硬件,运行速度快,效率高 操作系统,数据库,网络系统,编译器 指针和内存管理 C++语言特点 1982 面向对象 兼容C 图形领域,游戏等 Java语言特点 简单性 面向对象 ...

  6. Codeforces 566C - Logistical Questions(点分治)

    Codeforces 题目传送门 & 洛谷题目传送门 神仙题 %%% 首先考虑对这个奇奇怪怪的 \(t^{3/2}\) 进行一番观察.考虑构造函数 \(f(x)=ax^{3/2}+b(d-x) ...

  7. Python使用print打印时,展示内容不换行

    原理 Python的print()函数中参数end='' 默认为\n,所以会自动换行; 默认的print()函数: print(end='\n') 方案 Python 2: 在print语句的末尾加上 ...

  8. 半天做完的数据报表,YonBuilder只要十几分钟,0代码开发

    进入数字化时代,拍脑袋的决策方式显然不靠谱,一切要靠数据说话.与信息化时代相比,数字化时代的企业对数据的应用更广泛.更深入.为了应对激烈的市场竞争,企业经营决策者们对数据的依赖度越来越高,企业各个业务 ...

  9. hive向mysql导入数据sqoop命令出错

    报错信息: java.lang.Exception: java.io.IOException: java.lang.ClassNotFoundException: info at org.apache ...

  10. 巩固javaweb的第二十四天

    巩固内容: 提示用户信息 在验证失败之后通常需要提示用户错误信息,可以通过下面的代码完成: alert("地址长度大于 50 位!"); 当使用 alert 提示错误信息时,参数是 ...