内网穿透入门使用(frp和natapp)

内网穿透入门使用

    • 简单介绍
    • 穿透工具推荐
    • Frp
      • Frp下载安装
      • 服务端配置
      • 启动服务端
      • 配置客户端
      • 启动客户端
      • 效果查看
    • NATApp
      • NATApp下载安装
      • NATApp配置
      • 启动NATApp
    • 使用途径

我的博客:Lichg,欢迎大家访问留言。

简单介绍

  • 什么是内网穿透:

    首先我们对内网和外网这两个名词做个解释:

    1、内网:是内部建立的局域网络或办公网络;

    2、外网:是通过一个网关或网桥与其他网络系统连接,相对于自己的内网来说,其他网络系统称为外网。

    内网穿透简单来说就是将内网外网通过隧道打通,让内网的数据让外网可以获取。比如常用的办公室软件等,一般在办公室应用,通过拨号上网,没有公网IP,这样办公软件只有在办公室本地的局域网之内才能访问,用了内网穿透方案后,这些基于内网访问的办公室软件就可以在外网家里访问了。

  • 如果不了解内网,公网这些概念的话,我感觉这篇文章也是看不懂,可以看看别人的文章先:内网、网关、公网IP的关系, 一文读懂内网、公网和NAT。

穿透工具推荐

这里推荐两款我自己用的:frpnatapp

frp:

使用本款软件的话你需要本身有一台拥有公网ip的服务器才可以使用,因为这个软件要借助你自己的公网ip打通隧道将你内网的端口代理出去。可以用来打造堡垒机,跳板机等。

natapp:

这款白嫖党狂喜,因为有免费的额度,同时也不需要自己拥有服务器也可以使用,适合白嫖党。当然免费版功能上肯定是稍微拉跨点的,不过自己测试拿来玩什么的还都是没什么问题的。

Frp

Frp下载安装

打开frp官网自己选个版本下载就行了,打不开的话自己上点科技,因为是在github上面的。

这里需要注意下:frp分为服务端客户端服务端是放在你的服务器上面的,客户端时放在内网机器上的,当然下载的时候你要匹配自己系统就行了,linux就下载linux版本,windows就下载windows版本。

我这里服务端是linux,客户端是windows的

image-20240527153818056

下载完成后,linux的直接传到服务器上解压即可。windows也是解压就行了。

服务端配置

解压完成后文件如下:

image-20240527154125529

其中这里面的frpc是客户端的启动程序,因为我们这里是做服务端的,所以这个没用,你可以选择保留或者直接删除。frps是服务端的启动程序,我们待会要用这个。

toml结尾的文件是对应的配置文件,如果你的版本比较落后的话应该是ini结尾的配置文件,新版的应该都改成toml结尾的文件了。

服务端配置:

# frp监听的端口,默认是7000,可修改
# bindAddr = "0.0.0.0" # 绑定地址,0.0.0.0 表示监听所有地址
bindPort = 7000  

# 开启Dashboard用于管理和查看服务状态。Dashboard端口、用户名和密码,请改成更复杂的。
webServer.addr = "0.0.0.0"
webServer.port = 7500
webServer.user = "登陆账号"
webServer.password = "登陆密码"

# 授权码,请改成更复杂的,这个token之后在客户端会用到
auth.method = "token"
auth.token = "这里可以自己生成一个密钥(多少位自己随意)"

# 去除访问限速
transport.tcpMux = false

# frp日志配置
log.to = "/export/frp/logs/frps.log"  # 日志路径按照自己的需求更改
log.level = "info"
log.maxDays = 3

如果对这些参数有些疑问什么的,可以自行到手册官网自行查看。

启动服务端

如果你想使用systemctl来控制frp:

  1. 如果您的 Linux 服务器上尚未安装 systemd,可以使用包管理器如 yum(适用于 CentOS/RHEL)或 apt(适用于 Debian/Ubuntu)来安装它:
# 使用 yum 安装 systemd(CentOS/RHEL)
yum install systemd

# 使用 apt 安装 systemd(Debian/Ubuntu)
apt install systemd

  1. 使用文本编辑器 (如 vim) 在 /etc/systemd/system 目录下创建一个 frps.service 文件,用于配置 frps 服务。
sudo vim /etc/systemd/system/frps.service
  1. 写入内容
[Unit]
# 服务名称,可自定义
Description = frp server
After = network.target syslog.target
Wants = network.target

[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = 你的frpc的路径 -c 你的frps.toml的路径

[Install]
WantedBy = multi-user.target

  1. 使用 systemd 命令管理 frps 服务
# 启动frp
sudo systemctl start frps
# 停止frp
sudo systemctl stop frps
# 重启frp
sudo systemctl restart frps
# 查看frp状态
sudo systemctl status frps
  1. 设置 frps 开机自启动
sudo systemctl enable frps

image-20240527160618496

这样就是启动好了。

配置客户端

image-20240527160727421

同样,解压出来还是这些熟悉的文件,注意:不要直接点击exe文件启动,要使用cmd命令启动。

如下是客户端的配置:

# 服务端公网IP、监听端口bind_port
serverAddr = "43.139.50.156"
serverPort = 7000 #这里跟服务端必须一样

webServer.addr = "0.0.0.0"
webServer.port = 7500 
webServer.user = "登陆账号"
webServer.password = "登陆密码"

# 授权码
auth.method = "token"
auth.token = "这里可以自己生成一个密钥(多少位自己随意)"
# 设置心跳
auth.additionalScopes = ["HeartBeats"]
# 去除访问限速
transport.tcpMux = false

# frp日志配置
log.to = ".logs/frpc.log"
log.level = "info"
log.maxDays = 3

[[proxies]]
name = "代理的名称"
type = "tcp"
localIP = "127.0.0.1"
localPort = 51602 # 内网需要代理的端口
remotePort = 24524 # 访问服务端的端口

# 解释下上面的这两个端口什么意思 localPort 是你内网需要被代理的端口 ,remotePort是你服务端要访问的端口, 实际上 比如你服务端的ip地址是 1.1.1.1 客户端的地址是192.168.101.101,那么我访问 1.1.1.1:24524就实际访问到的是你192.168.101.101:51602

[[proxies]]
name = "代理的名称2"
type = "tcp"
localIP = "127.0.0.1"
localPort = 51601
remotePort = 24525

# name 为服务名称,下方解释:访问frp服务端的2288端口时,等同于通过中转服务器访问127.0.0.1的22端口。
# type 为连接的类型,此处为tcp
# localIP 为中转客户端实际访问的IP
# localPort 为目标端口
# remotePort 为远程端口,记得服务端的防火墙打开这个端口

启动客户端

使用cmd进入到frp的目录,使用如下命令启动,不可以直接点击exe执行文件启动。

frpc.exe -c frpc.toml

如果你嫌麻烦,每次都要使用命令启动,你可以将此命令封到bat文件中,只需要启动bat文件即可

image-20240527162332199

你想要关闭的时候最好是采用ctrl+c的按键方式关闭,最好不要直接点击关闭。

效果查看

启动后会被阻塞,就是启动成功了。你现在就可以到你的可视化界面查看了,就是默认7500端口的那个。

image-20240527162012320

这里就能看到效果了,当然服务端那边也可以查看了,如下图:

image-20240527162133777

这样就是成功了,你的内网能够被所有人访问了。

堡垒机/跳板机:

这里稍微讲一下堡垒机和跳板机就行了,跳板机属于堡垒机的一种,你没有公网的服务器是没办法直接被访问的,所以需要一台有公网的作为跳板,使用frp,将内网服务器的22端口代理出去,这样就能通过跳板操作内网服务器了。

NATApp

NATApp下载安装

直接到NatApp官网进行下载,一般是内网的客户端下载,所以我这里就是windows版本了:

image-20240527163029995

下载完成后,直接解压就行,里面只有一个exe执行文件。

NATApp配置

仍然是打开natapp的官网,注册一个账号,如果已有账号直接登录即可。

登陆后到达控制台:

image-20240527163718447

购买一个免费的隧道:

image-20240527163920656

买完以后,点击我的隧道,复制authtoken待会要用:

image-20240527164031490

复制完,回到你的电脑创建一个文件夹,将你下载的natapp.exe文件放进去,同时再创建一个config.ini文件:

image-20240527164151464

其中config.ini中的内容是:

#将本文件放置于natapp同级目录 程序将读取 [default] 段
#在命令行参数模式如 natapp -authtoken=xxx 等相同参数将会覆盖掉此配置
#命令行参数 -config= 可以指定任意config.ini文件
[default]
#对应一条隧道的authtoken
authtoken=这里粘贴你刚才复制的authtoken
clienttoken=                    #对应客户端的clienttoken,将会忽略authtoken,若无请留空,
log=none                        #log 日志文件,可指定本地文件, none=不做记录,stdout=直接屏幕输出 ,默认为none
loglevel=ERROR                  #日志等级 DEBUG, INFO, WARNING, ERROR 默认为 DEBUG
http_proxy=                  #代理设置 如 http://10.123.10.10:3128 非代理上网用户请务必留空

如果对配置文件有疑问,可以了解 官方配置。

启动NATApp

直接点击natapp.exe执行即可,他会自动读取配置文件。

使用途径

场景一:企业远程办公

企业用户购买了企业管理系统、财务系统、人力资源系统,分公司与总部不在同一城市,分公司需要远程访问总部系统;

场景二:开发人员远程调试

放在家里的树莓派,服务器等,需要远程ssh管理,这样打通服务器的22端口即可远程通过ssh操作服务器了.

场景三:数据远程同步

一些企业内部数据库,由于安全等原因,不愿意放到云服务器上,可以将数据库放到办公室本地,然后通过天联传输通道传输,这样既保证安全,又保证公网可以正常访问

场景四:远程监控

一些设备的运行监控信息,可以远程监控管理,可以方便的管理监控各个设备的运行情况.

场景五:远程联机游戏

这里我简单说一下我的世界游戏联机,我的世界联机的话,创建完以后,开放联机的时候会产生一个端口,无论你是用frp还是natapp都可以使用的,你的朋友输入如果是frp的话就输入服务端的ip+端口,如果是natapp的话会产生一个url完事就能联机了。

场景六:文件远程共享

FTP共享文件、NAS文件存储,可以通过天联实现远程共享、下载、上传;

其他使用途径

如若还有其他的使用途径,靠大家自己发现。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/654796.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

lvm概述和配额

lvm概述和配额 文章目录 lvm概述和配额LVM概述1、逻辑卷的作用:2、lvm主要命令和实操磁盘配额创建data目录,进入data目录限制创建文件数 LVM概述 逻辑卷管理liunx系统下对硬盘分区的一种管理机制 lvm机制特别适合管理大储存设备,可以动态的…

Echarts x轴坐标二级分组

在使用echarts 封装组件的时候,偶尔会遇到需要x轴坐标进行二层分组的需求。那么如何对echarts 进行二层分组呢,有以下几个步骤: 仅介绍二层分组的逻辑。有兴趣的可以进行三层延伸。 1,修改echarts Options 中xAxis 的配置。 此…

win11中文文件名称乱码解决方案

解压后出现以下的乱码 解决方案 步骤1.winR 输入intl.cpl 或 windows 自带的搜索搜“intl.cpl”,打开这个面板控制项 步骤2.在新打开的区域面板中,选择“管理”标签页,点击下方的“更改系统区域设置”按钮 步骤3.取消"Beta版…"选…

如何将RK R75键盘的右Alt键改为Ctrl键

打开注册表地址栏中输出 计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout右键新建二进制值,名称设为ScanCode Map按下图输入数值

【NumPy】全面解析NumPy的bitwise_and函数:高效按位与操作指南

🧑 博主简介:阿里巴巴嵌入式技术专家,深耕嵌入式人工智能领域,具备多年的嵌入式硬件产品研发管理经验。 📒 博客介绍:分享嵌入式开发领域的相关知识、经验、思考和感悟,欢迎关注。提供嵌入式方向…

鸿蒙4.2小版本推出,鸿蒙5.0已经不远了

上个月,市场上迎来了华为鸿蒙系统4字开头的小升级,版本来到了4.2版本。 我们先来看看4.2版本都给用户带来哪些特色: 界面切换更流畅:无论是响应速度还是操作手感,用户都将感受到更加迅速和顺滑的体验 搜星速度的显著…

磁盘管理以及文件系统08

1、为什么要对磁盘进行分区? 业务层面:为满足一定的需求所是做的特定操作。 2、硬盘是什么,以及硬盘的作用 硬盘:计算机的存储设备,一个或者多个带磁性的盘组成的,可以在盘片上进行数据的读写。硬盘的最…

深入解析Python中的两种导入方法:from...import与import

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、引言 二、from...import与import的基本区别 1. 导入方式的不同 2. 命名空间的差异 三…

开源与闭源:AI大模型发展路径的博弈

一、引言 在人工智能(AI)领域,大模型以其卓越的性能和广泛的应用前景,成为了近年来技术发展的热点。然而,在大模型的发展路径上,开源与闭源两种模式一直存在着激烈的博弈。本文将深入探讨这两种模式在大模…

ZooKeeper安装

安装Zookeeper 1、下载Zookeeper安装包 打开链接选择一个版本进行下载 https://zookeeper.apache.org/releases.html2、上传Zookeeper安装包到集群 输入命令 scp apache-zookeeper-3.8.4-bin.tar.gz hadoop192.168.88.100:/tmp也可以使用xftp等上传,物理机用u盘…

DINO结构中的exponential moving average (ema)和stop-gradient (sg)

DINO思路介绍 在 DINO 中,教师和学生网络分别预测一个一维的嵌入。为了训练学生模型,我们需要选取一个损失函数,不断地让学生的输出向教师的输出靠近。softmax 结合交叉熵损失函数是一种常用的做法,来让学生模型的输出与教师模型的…

C++学习笔记(19)——模板

目录 模板参数与非类型模板参数 模板参数 类型模板参数——传递类型 非类型模板参数——传递数量 C11希望array替代静态数组,但实际上vector包揽了一切 模板总结 优点: 缺点: 模板特化:针对某些类型进行特殊化处理 特化…

代码随想录算法训练营第五十三天||1143.最长公共子序列、1035.不相交的线、53. 最大子序和

文章目录 一、1143.最长公共子序列 思路 二、1035.不相交的线 思路 三.53. 最大子序和 思路 一、1143.最长公共子序列 给定两个字符串 text1 和 text2,返回这两个字符串的最长公共子序列的长度。 一个字符串的 子序列 是指这样一个新的字符串:它是由原…

mysql中text,longtext,mediumtext区别

文章目录 一.概览二、字节限制不同三、I/O 不同四、行迁移不同 一.概览 在 MySQL 中,text、mediumtext 和 longtext 都是用来存储大量文本数据的数据类型。 TEXT:TEXT 数据类型可以用来存储最大长度为 65,535(2^16-1)个字符的文本数据。如果存储的数据…

stream-实践应用-统计分析

背景 业务部门提供了一个数据,数据甚至不是excel类型的,是data.txt,每一行都是一个数据,需要对此数据进行统计分析 统计各个月份的销量 因为直接获取resources下的data.txt,所以要借助输入流进行获取数据,再…

初识C语言——第二十六天

函数的递归1 什么是递归呢? 递归的两个必要条件 void print(unsigned int n) {if (n > 9){print(n / 10);}printf("%d ", n % 10); }int main() {unsigned int num 0;scanf("%u", &num);//123//递归-函数自己调用自己print(num);//pr…

Scrapy框架简单介绍及Scrapy项目编写详细步骤(Scrapy框架爬取豆瓣网站示例)

引言 Scrapy是一个用Python编写的开源、功能强大的网络爬虫框架,专为网页抓取和数据提取设计。它允许开发者高效地从网站上抓取所需的数据,并通过一系列可扩展和可配置的组件来处理这些数据。Scrapy框架的核心组成部分包括: Scrapy Engine&…

matplotlib ---词云图

词云图是一种直观的方式来展示文本数据,可以体现出一个文本中词频的使用情况,有利于文本分析,通过词频可以抓住一篇文章的重点 本文通过处理一篇关于分析影响洋流流向的文章,分析影响洋流流向的主要因素都有哪些 文本在文末结尾 …

用手机做客服的吐槽点客服亲们有同感吗

聊天宝手机版很好的解决了,客服手机快速回复客户的需求,不论微信,企业微信,千牛或其他手机APP回复客户,都可以用聊天宝APP实现图文一键发送,非常方便 前言 做客服工作,除了电脑上回复客户咨询&…

一文读懂Maven的安装与配置

一、前言【可忽略】 Maven本质是一个项目管理工具,类似于JDK是java开发工具。 我们需要管理什么呢?首先各种各样的依赖,比如SpringFramwork、Mybatis。 简单点做,我们新建个目录,就能管理这些jar包。然而,缺…