frp内网穿透实战
什么是frp
frp是一个使用非常简单的开源内网穿透软件,代码地址:https://github.com/fatedier/frp ,使用条前提你需要有一台公网服务器,大致原理是:公网服务器监听某个端口等待内网服务器连接,内网服务器连接成功后用户访问公网的某一个端口,访问的所有内容都会转发到内网服务器,也就是所有的请求都会经过公网服务器转发一次,还不是真正的完全内网穿透。
准备工作
- 准备一台公网服务器,内网服务器可以直接用本地电脑模拟;
- 本地电脑准备一个可访问的 http://127.0.0.1:8080 地址供测试;
- 2端各下载好对应平台软件,下载地址:https://github.com/fatedier/frp/releases

配置&启动
公网服务器
tar -zxvf frp_0.43.0_linux_amd64.tar.gz
mv frp_0.43.0_linux_amd64 frps
cd frps
# 删除客户端相关无用文件
rm -rf frpc*
vim frps.ini
frps.ini配置:
[common]
# 等待内网服务器连接的端口
bind_port = 7000
# 最终用户访问的端口(http)
vhost_http_port = 7080
# 最终用户访问的端口(https)
vhost_https_port = 7081
# 密钥,最好设置,避免你的服务器被他人冒用
token = 123456
启动:./frps -c ./frps.ini,不出意外的话就启动成功了:

内网服务器
也就是你本机,假设以Mac为例:
tar -zxvf frp_0.43.0_darwin_arm64.tar.gz
mv frp_0.43.0_darwin_arm64 frpc
cd frpc
# 删除服务端相关文件
rm -rf frps*
vim frpc.ini
frpc.ini配置:
[common]
# 你的公网IP
server_addr = 112.*.*.*
# 前面设置的连接端口
server_port = 7000
# 前面设置的密钥
token = 123456
# 这个名字可以随便取web1、web2等,但是需要保证所有客户端唯一
[web1]
type = http
# 需要转发的内网端口
local_port = 8080
# 自定义域名,如果没有域名直接填写公网服务器的IP
custom_domains = 112.*.*.*
然后启动:./frpc -c ./frpc.ini,不出意外的话已经内网穿透成功了:

访问 http://公网IP:7080 返回的应该是 http://127.0.0.1:8080 的内容。
进阶
自定义域名
直接使用IP最多只能允许一台内网服务器访问连接,自定义域名可以解决此问题。内网服务器将custom_domains修改为一个能指向公网服务器的域名,例如:
custom_domains = testfrp.haoji.me
然后访问:http://testfrp.haoji.me:7080 即可看到 http://127.0.0.1:8080 的内容。
只使用一个端口
公网服务器的vhost_port其实可以和bind_port保持一致,这样可以更好理解:
[common]
bind_port = 7000
vhost_http_port = 7000
vhost_https_port = 7000
token = 123456
然后访问:http://testfrp.haoji.me:7000 即可看到 http://127.0.0.1:8080 的内容。
隐藏访问端口
用户访问的时候还需要带一个端口,访问不太方便,可以利用nginx再转发一层:
server {
listen 80;
server_name testfrp.haoji.me;
location / {
proxy_pass http://testfrp.haoji.me:7000;
}
}
然后访问:http://testfrp.haoji.me 即可看到 http://127.0.0.1:8080 的内容,实现了最完美的内网穿透。
frp内网穿透实战的更多相关文章
- 【网络】内网穿透方案&FRP内网穿透实战(基础版)
目录 前言 方案 方案1:公网 方案2:第三方内网穿透软件 花生壳 cpolar 方案3:云服务器做反向代理 FRP简介 FRP资源 FRP原理 FRP配置教程之SSH 前期准备 服务器配置 下载FR ...
- frp内网 穿透映射使内网svn可外网访问
起因 公司svn目前部署在内网服务器上,现在想在家中也可以使用,因此需要外网访问内网的工具 经过 使用过几个产品: utools,一个小巧的windows下的工具,内网映射只是它的一个小功能,支持tc ...
- 树莓派FRP内网穿透及自启动
内网穿透的步骤和文件存档 实验室在远方部署了电脑主机来采集数据和图片,每次去调试会很麻烦,因而使用FRP内网穿透使得我们可以在实验室访问主机. 主要功能 实现远程可访问和开机自启FRP程序服务 安装和 ...
- Frp内网穿透搭建,家庭主机对外提供接口,支持ssh访问
Frp内网穿透搭建,家庭主机对外提供接口,支持ssh访问 1.使用场景: 需求1.家中服务器 ubuntu 主机,跑接口服务,需要对外暴漏, 需求2.同时需要在外网ssh远程 关键词: frp内网 ...
- frp 内网穿透访问内网Web服务
ps:最近想要通过域名(公网)访问或者测试在本地搭建的 web 服务(不想在公网IP服务器上再部署个服务,也不想通过teamview等工具远程卡到爆!), 由于本地机器没有公网 IP,无法将域名解析到 ...
- frp内网穿透学习
前言 因为自己在内网,但是目标站在外网,这时候可以通过内网穿透工具,将接收到的请求转发到内网,实现在内网的msf可以控制外网的靶机. 也看了一些Ngrok,花生壳的,发现Ngrok.cc这个看文章说有 ...
- [svc]frp内网穿透
什么是穿透 可以任意暴漏内网任何服务,加入你在你的办公网络有台pc,可以上网就可以了, 你可以在你电脑上安装各类服务器, 暴漏如80 22等端口, 注意 这可以暴漏到公网哦, 在出口不做任何nat情况 ...
- frp内网穿透
原理 frp(fast reverse proxy)分为Server端和Client端,Server端安装在带有公网IP的服务器上,Client安装在内网环境但能上网的普通PC中. 流程: Serve ...
- 五、frp内网穿透客户端frpc.ini各配置参数详解
[必须]标识头[common]是不可或缺的部分 [必须]frps服务端IPserver_addr = 0.0.0.00.0.0.0为FRP服务端IP,客户端要填写为服务端已配置的对应的IP,或者是服务 ...
随机推荐
- HashMap存储自定义类型键值和LinkedHashMap集合
HashMap存储自定义类型键值 1.当给HashMap中存放自定义对象时,如果自定义对象是键存在,保证键唯一,必须复写对象的hashCode和equals方法. 2.如果要保证map中存放的key和 ...
- 记一道经典树上Nim游戏
这道题首先是 Hanriver 提出来的,但是大家都不会做,今天看到了一道一模一样的题目 AT2667 题目大意是,每个人删掉一个不是整棵树的原树的子树,给定一个树问游戏状态. 首先,这是需要用到多个 ...
- Proxmox6.2简单配置
刻录: 使用rufus+GPT+DD方式写入U盘 一.更换国内源: 1)删除企业源 mv /etc/apt/sources.list.d/pve-enterprise.list /etc/apt/so ...
- atcoder ABC 232 B~E题解
B 模拟,水题 #include<bits/stdc++.h> using namespace std; char s1[100005],s2[100005]; int a1[100005 ...
- gotoscan:CMS指纹识别工具
gotoscan 前言 项目地址 https://github.com/newbe3three/gotoscan 结合自己学习到的Go相关知识,通过实现这个简易的CMS指纹识别工具来锻炼一下自己写代码 ...
- 不同云服务器下,ubuntu下开k3s集群
首先先感谢老哥的文章:h构建多云环境下的K3S集群,但是我尝试在centos 8.2上面前面一直执行报错 并且安装glibc 2.17时还会报错make版本太低,所以直接放弃centos,投入ubun ...
- Java异步记录日志-2022新项目
一.业务场景 web项目开发中,经常会有的一个操作是记录请求日志,比如记录请求的IP地址,记录请求的路径,记录请求的参数等等. 每个系统都会根据自己的需要来记录一些请求相关的日志.一般会将记录的日志信 ...
- python面向对象的特征及反射
目录 派生类实操 面向对象特征之封装 property伪装属性(python内置装饰器) 面向对象特征之多态 面向对象之反射 派生类实操 1.将时间字典序列化成json格式,由于序列化数据类型的要求, ...
- C# 虚方法、抽象方法
一.虚方法(virtual) 作用:当有一个定义在类中的函数需要在继承类中实现时,可以使用虚方法. 示例: class Person { public virtual void XXX() { Con ...
- Javaweb03-servlet&filter
1.什么是servlet 第一个servlet应用程序,实现servlet接口 定义:凡是实现了servlet api接口(或者继承servlet api接口的实现类)的类就是servlet应用程序: ...