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实现内网穿透的更多相关文章

  1. 疫情之下,使用FRP实现内网穿透,远程连接公司电脑进行办公

    当前情况下,经常会有需要到公司电脑进行一些操作,比如连接内网OA,数据库或者提交文档.为了减少外出,将使用frp进行内网穿透的方法进行一个说明. 前提条件 1. 一台拥有公网 IP 的设备(如果没有, ...

  2. 基于frp的内网穿透实例4-为本地的web服务实现HTTPS访问

    原文地址:https://wuter.cn/1932.html/ 一.想要实现的功能 目前已经实现将本地的web服务暴露到公网,现想要实现https访问.(前提:已经有相应的证书文件,如果没有就去申请 ...

  3. frp+nginx内网穿透

    frp+nginx内网穿透 背景:自己有台内网Linux主机,希望被外网访问(ssh.http.https): 准备工作 内网Linux主机-c,可以访问c主机和外网的主机-s(windows/lin ...

  4. 使用frp进行内网穿透,实现ssh远程访问Linux服务器

    搭建一个完整的frp服务链需要: VPS一台(也可以是具有公网IP的实体机) 访问目标设备(就是你最终要访问的设备) 简单的Linux基础(如果基于Linux配置的话) 我这里使用了腾讯云服务器作为服 ...

  5. frp 用于内网穿透的基本配置和使用

    frp 用于内网穿透的基本配置和使用 今天是端午节,先祝端午安康! frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP.UDP.HTTP.HTTPS 等多种协议.可以将内网服务以安全.便 ...

  6. 分享下超实用的用skura frp做内网穿透的经验

    操作目的: 使无公网ip的主机能被外网访问,实现ssh对服务器的远程管理 硬件准备: 1.服务端:skura frp主机(skura frp 免费提供,有待创建) 2.客户端:接在无线路由器(内网)上 ...

  7. 使用FRP做内网穿透

    Github地址:https://github.com/fatedier/frp 什么是FRP? frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp 协议,为 http 和 h ...

  8. 如何使用 frp 实现内网穿透

    这有一个专注Gopher技术成长的开源项目「go home」 背景 作为一名程序员,家里多多少少会有一些落了灰的电脑,如果把闲置的电脑变成服务器,不仅有良好的配置,还能用来做各种测试,那就再好不过了. ...

  9. 基于frp的内网穿透实例1-通过SSH访问内网机器

    原文地址:https://wuter.cn/1804.html/ 老母鸡终于到了,作为一个能运行linux系统的四核1G硬件,它还是比较小巧的. FRP 全名:Fast Reverse Proxy.F ...

随机推荐

  1. JavaScript 词法 All In One

    JavaScript 词法 All In One JavaScript 词法 这部分描述了JavaScript 的词法(lexical grammar). ECMAScript 源码文本会被从左到右扫 ...

  2. ES6 Map All In One

    ES6 Map All In One Map 字典/地图 Set 集合 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Referenc ...

  3. W3C & 弹幕

    W3C & 弹幕 弹幕用例规范 Draft Community Group Report 21 August 2020 refs https://w3c.github.io/danmaku/u ...

  4. javascript change array length methods

    javascript change array length methods Array 改变数组长度的方法 push, pop shift, unshift, splice, fill, 不改变数组 ...

  5. historyReverser & array reverse

    historyReverser & array reverse\ "use strict"; /** * * @author xgqfrms * @license MIT ...

  6. 算法型稳定币USDN有哪些使用功能

    众所周知,稳定币是基于区块链的支付工具,旨在实现最终用户要求的价格稳定性.有些稳定币利用法定货币作为抵押资产.其他则使用一系列其他非法定类型的抵押资产.还有一些尝试使用算法来实现价格稳定性而根本没有抵 ...

  7. django学习-27.admin管理后台里:对列表展示页面的数据展示进行相关优化

    目录结构 1.前言 2.完整的操作步骤 2.1.第一步:查看ModelAdmin类和BaseModelAdmin类的源码 2.2.第二步:查看表animal对应的列表展示页面默认的数据展示 2.3.第 ...

  8. javascript 十大经典排序

    首先生成一个数字数组: let arr = Array.from({length:20},x=>{return Math.ceil(Math.random()*10**2)}) console. ...

  9. 卧槽,好强大的魔法,竟能让Python支持方法重载

    1. 你真的了解方法重载吗? 方法重载是面向对象中一个非常重要的概念,在类中包含了成员方法和构造方法.如果类中存在多个同名,且参数(个数和类型)不同的成员方法或构造方法,那么这些成员方法或构造方法就被 ...

  10. 基于docker部署skywalking实现全链路监控

    一.概述 简介 skywalking是一个开放源码的,用于收集.分析,聚合,可视化来自于不同服务和本地基础服务的数据的可观察的平台,skywalking提供了一个简单的方法来让你对你的分布式系统甚至是 ...