frp实现内网穿透
frp实现内网穿透
目标
通过外网访问内网设备,本文中实现通过手机的移动流量,可以访问到树莓派设备
设备准备
需要被访问的设备(本文中使用Raspberry Pi`)、公网IP设备(本文中使用阿里云 轻量应用服务器)
软件准备
frp
开源地址 https://github.com/fatedier/frp
部署
选择版本
首先下载frp,进入Release 根据系统及cpu指令集选择所需的版本,
例如我的Raspberry Pi CPU为博通 arm架构 操作系统为Linux发行版(Raspberry Pi 32bit)
所以我选择的是 frp_x.xx.x_linux_arm.tar.gz Linux系统arm版本
然后使用lscpu查看阿里云服务器的cpu信息,这里我查询到的是Intel(R) Xeon 英特尔的至强处理器,操作系统为Linux发行版(Ubuntu 18.04)
所以服务器选择的软件版本是 frp_x.xx.x_linux_386.tar.gz Linux系统i386版本
然后将软件包放到对应的设备中
可以将软件包下载下来传到服务器 或者 Raspberry Pi 中
也可以直接在github上的软件包直接右键复制下载地址
通过wget 文件地址 的命令下载到对应系统上,
解压
在家目录创建frp目录
mkdir ~/frp
然后解压软件包
tar -zxvf 包名
例如我的是
tar -zxvf frp_0.34.1_linux_amd64.tar.gz
然后查看目录
ls
此时应该会看到一个与压缩包同名的目录
然后进入目录
cd 目录
再次查看目录
ls
目录中会有frps frps.ini frpc frpc.ini等多个文件,我们要用的的只有frps frps.ini frpc frpc.ini这四个文件
frp
|── frps 服务端可执行程序
└── frps.ini 服务端配置文件
└── frpc 客户端可执行程序
└── frpc.ini 客户端配置文件
└── ***等
然后根据设备来选择保留文件,
服务器需要选择frps和frps.ini两个文件
执行
移动当前目录下的frps文件到~下的frp目录中
mv ./frps ~/frp/
移动当前目录下的frps.ini文件到~下的frp目录中
mv ./frps.ini ~/frp/
内网设备上也是同样的步骤先创建一个frp目录
mkdir ~/frp
然后解压软件包
tar -zxvf 包名
然后进入解压目录
cd 目录名
此时内网设备需要选择客户端程序 也就是 frpc 和 frpc.ini
同样将两个文件移动到frp目录中
mv ./frpc ~/frp/
mv ./frpc.ini ~/frp/
服务端配置(公网设备端)
使用vim/vi编辑器打开配置文件(此处可查询vim 使用命令 常用如 i 开启插入模式 Esc进入指令模式 指令模式下 ZZ 保存并退出 )
vim ~/frp/frps.ini
此时修改7000使用其它端口 也可以使用默认7000端口
此处修改端口为7001
修改后为下
[common]
bind_port = 7001 #此处为服务端需要开放给客户端的端口
客户端配置(内网设备端)
vim ~/frp/frpc.ini
[common]
server_addr = x.x.x.x #此处为服务器ip地址 也就是公网ip
server_port = 7001 #此处为服务端 设置的端口 由于上面我们改为了7001
[ssh]
type = tcp
local_ip = 127.0.0.1 #设置为127.0.0.1即可
local_port = 22
remote_port = 6000 #此处为访问时所需要的端口 需要记住 当前就使用默认了
运行服务
启动服务端
在服务器执行以下命令
~/frp/frps -c ~/frp/frps.ini
启动客户端
在内网设备执行以下命令
~/frp/frpc -c ~/frp/frpc.ini
测试
打开其它外网设备,进行连接测试 此处我使用安卓手机开启流量测试ssh连接
ssh -p (remote_port设置的值也就是6000) 内网设备用户名@公网ip
回车后输入的密码是内网设备密码
例如我的就是
ssh -p 6000 pi@xxx.xxx.xxx
设置后台运行
此时如果已经连接成功,说明配置没有问题了,但是会发现如果终端关掉了,服务就停止了,
所以要设置后台运行
服务端执行 nohup ~/frp/frps -c ~/frp/frps.ini &
客户端执行nohup ~/frp/frpc -c ~/frp/frpc.ini &
然后使用 exit退出终端就可以使用了
frp实现内网穿透的更多相关文章
- 疫情之下,使用FRP实现内网穿透,远程连接公司电脑进行办公
当前情况下,经常会有需要到公司电脑进行一些操作,比如连接内网OA,数据库或者提交文档.为了减少外出,将使用frp进行内网穿透的方法进行一个说明. 前提条件 1. 一台拥有公网 IP 的设备(如果没有, ...
- 基于frp的内网穿透实例4-为本地的web服务实现HTTPS访问
原文地址:https://wuter.cn/1932.html/ 一.想要实现的功能 目前已经实现将本地的web服务暴露到公网,现想要实现https访问.(前提:已经有相应的证书文件,如果没有就去申请 ...
- frp+nginx内网穿透
frp+nginx内网穿透 背景:自己有台内网Linux主机,希望被外网访问(ssh.http.https): 准备工作 内网Linux主机-c,可以访问c主机和外网的主机-s(windows/lin ...
- 使用frp进行内网穿透,实现ssh远程访问Linux服务器
搭建一个完整的frp服务链需要: VPS一台(也可以是具有公网IP的实体机) 访问目标设备(就是你最终要访问的设备) 简单的Linux基础(如果基于Linux配置的话) 我这里使用了腾讯云服务器作为服 ...
- frp 用于内网穿透的基本配置和使用
frp 用于内网穿透的基本配置和使用 今天是端午节,先祝端午安康! frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP.UDP.HTTP.HTTPS 等多种协议.可以将内网服务以安全.便 ...
- 分享下超实用的用skura frp做内网穿透的经验
操作目的: 使无公网ip的主机能被外网访问,实现ssh对服务器的远程管理 硬件准备: 1.服务端:skura frp主机(skura frp 免费提供,有待创建) 2.客户端:接在无线路由器(内网)上 ...
- 使用FRP做内网穿透
Github地址:https://github.com/fatedier/frp 什么是FRP? frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp 协议,为 http 和 h ...
- 如何使用 frp 实现内网穿透
这有一个专注Gopher技术成长的开源项目「go home」 背景 作为一名程序员,家里多多少少会有一些落了灰的电脑,如果把闲置的电脑变成服务器,不仅有良好的配置,还能用来做各种测试,那就再好不过了. ...
- 基于frp的内网穿透实例1-通过SSH访问内网机器
原文地址:https://wuter.cn/1804.html/ 老母鸡终于到了,作为一个能运行linux系统的四核1G硬件,它还是比较小巧的. FRP 全名:Fast Reverse Proxy.F ...
随机推荐
- 读写 LED 作业 台灯的 频闪研究1
读写 LED 作业 台灯的 频闪研究: 核心提示: 随着科技的持续发展,目前已经商业化的照明产品从第一代的白炽灯: 第二代的荧光灯.卤灯: 第三代的高强度气体放电灯; 以及当下主流的, 第四代的发光二 ...
- URL parser All In One
URL parser All In One const url = new URL(`https://admin:1234567890@cdn.xgqfrms.xyz:8080/logo/icon.p ...
- css3 units & 1 turn
css3 units & 1 turn One full circle is 1turn, 180deg === 0.5turn degrees, gradians, radians, tur ...
- Flutter: 监听App显示,隐藏
关键代码 class _MyAppState extends State<MyApp> with WidgetsBindingObserver { @override void initS ...
- NGK的内存为何如此的火爆?
要说最近最受关注的公链,当属NGK了.NGK代币在迎来43倍暴涨之后似乎进入了一个平板期,这让很多投资者的热情冷却了一半,就在大家以为对NGK放弃信心时,NGK又突然爆出了一个新的炒作点:NGK内存( ...
- MySQL命名、设计及使用规范
本文转载自MySQL命名.设计及使用规范 导语 最近在看MySQL相关的内容,整理如下规范,作为一名刚刚学习MySQL的菜鸟,整理的内容非常的基础,中间可能涉及到有错误的地方,欢迎批评指正,看到有错误 ...
- 刚学会 C++ 的小白用这个开源框架,做个 RPC 服务要多久?
本文适合有 C++ 基础的朋友 本文作者:HelloGitHub-Anthony HelloGitHub 推出的<讲解开源项目>系列,本期介绍基于 C++ 的 RPC 开源框架--rest ...
- python进阶(1)Lambda表达式
Lambda表达式 lambda表示的是匿名函数,不需要用def来声明,一句话就可以声明出一个函数 语法 函数名 = lambda 参数:返回值 注意点 1.函数的参数可以有多个,多个参数之间用逗号隔 ...
- PythonPEP8 风格规范指南
PEP是Python Enhancement Proposal的缩写,通常翻译为"Python增强提案".每个PEP都是一份为Python社区提供的指导Python往更好的方向发展 ...
- eclipse修改默认的代码注释
在使用Eclipse编写Java代码时,自动生成的注释信息都是默认是使用的当前登录系统用户名,实际上是可以修改的. 选择Window → Preference → Java → Code Style ...