0x01 简介

为什么需要内网穿透?

很多时候从公网访问自己内网的设备是困难的,毕竟自己没有一个独立的IP地址。

Frp 服务器进行内网穿透,速度快还十分简单。可以实现很多功能,包括不限于远程桌面,文件共享等。

什么是内网穿透

使内网的服务器,或者防火墙内的机器,对外提供服务。

原理图,来自参考文章

0x02 环境及安装

centos7 (本地) 192.168.30.100

kali 服务器端(自己的vps)192.168.30.128

本机 ubuntu 18.10

2.0 下载

下载程序
arch 如果输出是x86_64 则下载linux_amd64那个压缩包
本文是x86_64(绝大多数人都是这个)。
mkdir frp &cd frp
wget https://github.com/fatedier/frp/releases/download/v0.29.0/frp_0.29.0_linux_amd64.tar.gz
tar -zxvf frp_0.29.0_linux_amd64.tar.gz
# 更改下文件名
mv frp_0.29.0_linux_amd64 frp
cd frp
# 确保frp具有可执行权限
chmod +x frps
运行 ./frps --help
没问题即可开始配置服务端
若提示-bash: ./frps: cannot execute binary file: Exec format error就说明下错版本了

2.1 服务端设置

参考官方配置文档写frps.ini

# 表示配置的开始
[common]
#frp服务端端口
bind_port =
# 仪表盘端口
dashboard_port =
# frp服务端密码
token = frptoken1
# 仪表盘默认账号密码
dashboard_user = admin
dashboard_pwd = admin

启动frps

# 使用 -c 参数指定配置文件
./frps -c frps.ini

没有报错出现success。

服务端后台运行

直接使用启动命令,关闭ssh会话,就会停止运行,因此要使用nohup 使其后台运行。

nohup ./frps -c frps.ini &
# 所有的输出日志写入nohup.out文件中

访问仪表盘7500是可以看见frp的状态的

2.2 客户端设置

可以参考frps_full.ini说明,下面是转发ssh为例:

frpc.ini

[common]
server_addr = 192.168.30.128
server_port =
# 与vps保持一致
token = frptoken1
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port =
remote_port =
use_encryption = true
use_compression = true
# [web]
# type = http
# local_port =
# subdomian = web
# use_encryption = true
# use_compression = true

2.3 frp客户端执行

./frpc -c frpc.ini

出现success即可

现在可以在我本机 ubuntu18 上ssh

ssh -oPort= root@vpsip 

对于Windows客户端一样的可以参考后面文章

参考

frp进行内网穿透

官网

frp 使用基础笔记的更多相关文章

  1. Java基础笔记 – Annotation注解的介绍和使用 自定义注解

    Java基础笔记 – Annotation注解的介绍和使用 自定义注解 本文由arthinking发表于5年前 | Java基础 | 评论数 7 |  被围观 25,969 views+ 1.Anno ...

  2. php代码审计基础笔记

    出处: 九零SEC连接:http://forum.90sec.org/forum.php?mod=viewthread&tid=8059 --------------------------- ...

  3. MYSQL基础笔记(六)- 数据类型一

    数据类型(列类型) 所谓数据烈性,就是对数据进行统一的分类.从系统角度出发时为了能够使用统一的方式进行管理,更好的利用有限的空间. SQL中讲数据类型分成三大类:1.数值类型,2.字符串类型和时间日期 ...

  4. MYSQL基础笔记(五)- 练习作业:站点统计练习

    作业:站点统计 1.将用户的访问信息记录到文件中,独占一行,记录IP地址 <?php //站点统计 header('Content-type:text/html;charset=utf-8'); ...

  5. MYSQL基础笔记(四)-数据基本操作

    数据操作 新增数据:两种方案. 1.方案一,给全表字段插入数据,不需要指定字段列表,要求数据的值出现的顺序必须与表中设计的字段出现的顺序一致.凡是非数值数据,到需要使用引号(建议使用单引号)包裹. i ...

  6. MYSQL基础笔记(三)-表操作基础

    数据表的操作 表与字段是密不可分的. 新增数据表 Create table [if not exists] 表名( 字段名 数据类型, 字段名 数据类型, 字段n 数据类型 --最后一行不需要加逗号 ...

  7. MYSQL基础笔记(二)-SQL基本操作

    SQL基本操作 基本操作:CRUD,增删改查 将SQL的基本操作根据操作对象进行分类: 1.库操作 2.表操作 3.数据操作 库操作: 对数据库的增删改查 新增数据库: 基本语法: Create da ...

  8. MYSQL基础笔记(一)

    关系型数据库概念: 1.什么是关系型数据库? 关系型数据库:是一种建立在关系模型(数学模型)上的数据库 关系模型:一种所谓建立在关系上的模型. 关系模型包含三个方面: 1.数据结构:数据存储的问题,二 ...

  9. JavaScript基础笔记二

    一.函数返回值1.什么是函数返回值    函数的执行结果2. 可以没有return // 没有return或者return后面为空则会返回undefined3.一个函数应该只返回一种类型的值 二.可变 ...

随机推荐

  1. Markdown上手使用

    前言 学习Markdown主要是为了更好的编辑博客(捂脸),顺便学一学Markdown语法,毕竟MarkdownPad 2放着吃灰好久了(雾) MarkdownPad2 下载 链接:https://p ...

  2. ORA-00917: missing comma

    问题描述 ORA-00917: missing comma 问题原因 逗号,引号什么的多了或者少了,或者换行引起的

  3. Android 验证APK签名对比

    最近OTT制定产品,其中有一条需求是只能安装自己公司签名的APK,所以在网上找了相关资料,最后总结功能实现如下: 1.签名错误码frameworks/base/core/java/android/co ...

  4. vue.js + element中el-select实现拼音匹配,分词、缩写、多音字匹配能力

    1.既然要用到拼音搜索,我们就需要一个拼音库,在这里我推荐一个第三方包:https://github.com/xmflswood/pinyin-match,在这里首先对这个包的开发者表示万分的感谢. ...

  5. android 获取颜色 getColor 方法 deprecated 过期

    可以使用下面代码代替: ContextCompat.getColor(getContext(), R.color.post_list_content_color) 需要引入: compile 'com ...

  6. slice 实现原理

    package main /* #include <stdlib.h> */ import "C" import ( "unsafe" " ...

  7. vga显示原理即相关计算

    行扫描周期:完成一行扫描所需时间: 行时序时间(a,b,c,d,e):完成一个像素点显示得时间 场扫描周期:完成所有行(一帧扫描所需时间) 场时序时间(o,p,q,r,s):完成一行显示得时间,一个完 ...

  8. cookie不支持中文,必须转码后存储,否则会乱码

    cookie不支持中文,必须转码后存储,否则会乱码 Cookie ck = new Cookie("username", URLEncoder.encode(name, " ...

  9. CSP2019第一轮游记

    Day -1 发现还有\(2\)天就初赛了\((?)\) 赶紧复习\(ing\) 然后基础知识基本上都不知道 后面的大题--全靠蒙 感觉第一轮就要\(\mathrm{AFO}\)啊\(QwQ\) Da ...

  10. Django_第三方

    1. 验证码 2. 绘制过程 加一个随机数用于更新验证码 不加,图片的src不会更新,图片也不会更新 加了,url也能匹配上,去执行视图函数 3. 富文本 就是带着样式的文本 3.1 使用