利用frps进行内网穿透

article/2025/9/11 23:47:19

 这里使用的是传统穿透方法,需要一个有公网ip的中转节点去告知

看最下面,用最新版的frps

1、注意

服务器和客户机之间的数据传输全部经过中转服务器,传输速度将受制于中转服务器的上下行带宽。

2、穿透原理

其实就是客户端A绑定端口发送数据,然后监听该端口,然后由中转服务器告诉客户端B,客户端A的公网IP和公网端口,客户端B连接A的公网IP和公网端口,数据包自动由NAT转化为客户端内网IP和内网端口。

中转服务器端指明哪个端口(服务端口)是负责中转的,然后启动服务。内网客户端向中转服务器的服务端口发送请求,告知我要监听哪个端口(a),外网的客户端可以通过请求(中转服务器:端口a)请求到内网客户端,我认为是中转服务器端的prex服务先查看请求的端口是否是内网客户端请求的,如果是那么就会转发到内网客户端上。

3、下载

下载Releases · fatedier/frp · GitHub

 4、中转服务器配置

解压,不用其他操作,解压后打开frps.ini,输入

[common]
bind_port = 7000 # 中转服务器中frp服务的端口号,内网客户端通过访问这个端口连接上
dashboard_port = 7500 # frp的web界面的端口号
dashboard_user = admin  # web界面的登陆账户
dashboard_pwd = pass    # web界面的登陆密码
authentication_method = token
token = 123456    # frp客户端连接时的密码,     内网客户端使用这个密码验证自己的身份

 然后退出执行命令,这里nohup(命令)$ 保证了在关闭命令行依旧能够运行这个服务

nohup ./frps -c frps.ini &

如果出现appending output to nohup.out,就可以了,下面是终端关闭就会停止 

 5、内网客户端

freeSSHd and freeFTPd - open source SSH and SFTP servers for Windows

把这两个安了

然后对于frps同样是解压,路径要记住,最好简洁一点,然后打开frpc.ini配置

[common]
server_addr = 中转服务器的公网ip
authentication_method = token
token = tokenpass  #客户端的密码
server_port = 7000 #中转服务器的密码[RDP]
type = tcp
local_ip = 127.0.0.1
local_port = 3389
remote_port = 33389 

 上面只要访问(中转服务器:333389)就会映射到这个内网客户端的3389端口。

server_port = 7000  就是指明连接服务器的7000端口

在ip地址里面加上9999就会到本地的9999

local_port = 9999

remote_port = 9999

在ip地址加上33389,就会访问本地的

local_port = 3389

remote_port =33389 

这两个端口防火墙都要打开 

命令看下面吧,懒得打了,然后只要出下面三行就是连接成功了 

 6、注意

上面需要的端口,都要打开

内网客户端的33389和3389

中转服务器也需要打开33389,以及7000,7500

7、web验证成功

开启端口号 7500

web端口验证 公网ip:开放的web端口号 

 登录成功

8、远程桌面登录 

 

 win10家庭版不允许其他远程登录你的系统

登录的时候 

 

 然后输入密码

 9、需要把内网客户端的那个弄成开机启动,以后再添加

linux和linux通信,并使用xshell登录

Releases · fatedier/frp · GitHub

1、下载前使用arch命令查看系统架构

如果是aarch64那么下载arm64位的

如果是x86_64那么下载amd64位的

2、下载最新的版本,这时版本是0.41.0

3、配置服务端

服务器端点开frps.ini,下面这个端口是客户端要连接的端口

 保存后 运行./frps -c frps.ini

 4、配置客户端

 ./frpc -c frpc.ini

看好下面的端口6000,然后就用xshell就可以连接了 

至于其他的后台运行,看上面就可以

如果服务器端关了服务后,客户端会尝试重连,它会一直尝试重连,只不过重连的间隔时间越来越大。

其他

1、此外,可以1个服务端多个客户端,但是要求客户端的ssh名称不一样,比如下面命名为ssh1

[common]
server_addr = #要连的ip
server_port = #服务器端口,多个客户端可以一样
[ssh1] 
type = tcp
local_ip = 127.0.0.1
local_port = 6080
remote_port = 6080

 2、如果想要在服务器端永久运行,看另一篇文章systemctl命令和配置整理_贪睡的蜗牛的博客-CSDN博客

或者可以试试运行下面的脚本,大概意思是每一分钟查看frp任务是否存在,如果不存在那么就重新运行,至于为什么得到数量要以3,我也不知道为什么,因为运行脚本得到的frp相关的最低就是3....姑且这么写吧,另外下面.sh名称是updateJob.sh,文件随便放

#!/bin/bash# 定义一个刷新时间
flushtime=60;
#定义flag文件名称
flagfileName="flag.txt"
#计划任务文件路径
timeFilePath="/var/spool/cron/root"
#找到当前sh路径
#shFilePath=$(pwd)"/test2.sh"
shFilePath=$(pwd)"/updateJob.sh"
echo $shFilePath#判断是否是第一次打开本脚本
if test -e "/$timeFilePath" 
then echo "定时配置文件存在"else echo "定时配置文件不存在" `touch  $timeFilePath`
fi 
if [ `grep -c $shFilePath $timeFilePath` -eq 0 ];then#第一次打开本脚本则在定时中插入更新任务echo '更新任务初始化'echo '本脚本文件路径  '"$shFilePath"echo '定时文件路径  '"$timeFilePath"echo  "* * * * * $shFilePath" >> $timeFilePath '&> /dev/null'echo "重启任务"`rm -rf /var/run/crond.pid``crond`#离开脚本exit
fi
count=`ps aux | grep -c "frp"`echo "$count"if [ "$count" -le 3 ]thenecho "添加进程"cd /frplsnohup ./frps -c frps.ini &fi

参考:

利用阿里云服务器公网ip,搭建frp内网穿透服务,将自己变成云电脑_zh452647457的博客-CSDN博客_把云服务器公网ip映射自己电脑

frp(内网穿透)_Anonymous-1-CSDN博客_frp

借助ecs的公网ip将自己家里的Windows做个内外穿透【外网可以访问的】--frp【远程连接Windows电脑】_zhaojiafu的博客-CSDN博客

frp: frp是一种快速反向代理,可帮助您将NAT或防火墙后面的本地服务器公开到Internet。到目前为止,它支持TCP和UDP以及HTTP和HTTPS协议,可以在其中将请求通过域名转发到内部服务。frp还具有P2P连接模式。

stcp和p2p模式

stcp

frp的tcp模式相当于你的设备直接向公网暴露了一个tcp端口。任何设备都可以尝试连接这个端口。这里就会有很大的安全风险。所以有了stcp模式,这种模式可以验证密码

需要穿透的客户端连接时将type修改为type = stcp,添加一个sk,sk = abcdefg

# frpc.ini
[common]
# 你的frp服务器的公网ip
server_addr = x.x.x.x
# 你的frp服务器的默认端口
server_port = 7000[rdp]
type = stcp
# 只有 sk 一致的用户才能访问到此服务
sk = abcdefg
local_ip = 127.0.0.1
# 远程桌面的本地端口号
local_port = 3389

另一个连得时候,type = stcp,role = visitor,

# frpc.ini
[common]
# 你的frp服务器的公网ip
server_addr = x.x.x.x
# 你的frp服务器的默认端口
server_port = 7000[rdp_visitor]
type = stcp
# stcp 的访问者
role = visitor
# 要访问的 stcp 代理的名字
server_name = rdp
# 只有 sk 一致的用户才能访问到此服务
sk = abcdefg
# 绑定本地端口用于访问 远程桌面 服务
bind_addr = 127.0.0.1
bind_port = 6000

 p2p

公网服务端添加一个bind_udp_port

[common]
bind_port = 7000
bind_udp_port = 7001

内网中的客户端 

[common]
server_addr = xxxxxxxxip
server_port = 7000[note17]
type = xtcp
sk = zxccxz
local_ip = 127.0.0.1
local_port = 22
[common]
server_addr = xxxxip
server_port = 7000[ssh_windows]
type = xtcp
role = visitor
server_name = note17
sk = zxccxz
bind_addr = 127.0.0.1
bind_port = 1081

但是一般会失败,要看nat类型。对称式网络基本不能打洞,两端都是端口限制圆锥型尝试过也不行。全圆锥型成功率最高

内网穿透神器frp之进阶配置——stcp及p2p模式_frp xtcp模式_xinyue_htx的博客-CSDN博客

将window放入到计划任务中

利用frp中的xtcp实现点对点连接手机服务器 - 知乎


http://chatgpt.dhexx.cn/article/ladAVe50.shtml

相关文章

使用frps建立内网穿透从而实现外界连接内网电脑的全教程

1. 说明 我有台服务器,但它在内网里,我需要通过ssh方式访问它,目前可以采用:向日葵等商业软件,RustDesk等开源软件。或者,《自建内网穿透服务器》。 本教程把实现上述功能的所有步骤罗列出来,以…

frp 内网穿透服务器搭建frps服务端和frpc客户端

1 工具 一台具有公网ip的服务器 2 下载frp frp下载地址 打开上面的frp下载地址 公网服务器上 打开下载文件 frps是服务端,在公网服务器上部署 frpc是客户端,在需要内网穿透的电脑上部署 1. frps配置 首先我这用的是win公网服务器 (linux…

内网穿透配置(FRP)

目录 0、内网穿透的一般场景 1、内网穿透配置 a、frp软件下载 b、frp 的配置 3、通过 frp 实现远程连接 4、设置 frpc / frps 开机启动的方法 5、设置frp安全连接的方法 0、内网穿透的一般场景 放假回家怎么远程连接学校实验室的服务器? 先分析一波&#x…

FRP入门篇

目录 一、前言 1、概述 2、原理 3、支持功能 4、适用场景 二、环境准备 三、使用 1、安装包下载 2、服务端部署 2.1、上传安装包 2.3、启动服务端 3、客户端部署 3.1、代理服务准备 3.2、上传安装包 3.3、客户端配置 3.4、启动客户端 4、功能验证 一、前言 1、…

frps内网穿透

1 原理讲解 frp工作原理 服务端运行,监听一个主端口,等待客户端的连接; 客户端连接到服务端的主端口,同时告诉服务端要监听的端口和转发类型;服务端fork新的进程监听客户端指定的端口; 外网用户连接到客户…

2021大数据架构、高性能、数据治理面试题

2021大数据架构、高性能、数据治理面试题 需要自取:https://url80.ctfile.com/f/32319880-516640957-aba608 (访问密码:1000)

Java架构师和大数据架构师的区别是什么?哪个更有发展前景?

[Java]是我们耳熟能详的编程语言,[大数据]更是当今科技的明星技术,那Java和Java大数据架构学习的内容是一样的吗?两者有什么区别呢?今天千锋广州Java的老师就从Java和大数据架构的以下方面谈谈两者的区别。 [ 01 [架构师](需要考…

大数据架构发展的20年

随着近几年数据湖概念的兴起,业界对于数据仓库和数据湖的对比甚至争论就一直不断。有人说数据湖是下一代大数据平台,各大云厂商也在纷纷的提出自己的数据湖解决方案,一些云数仓产品也增加了和数据湖联动的特性。 但是数据仓库和数据湖的区别…

大数据架构设计模式主要考虑八方面问题

在架构设计中,没有万能的软件架构能解决所有问题,不同的场景、需求、限制下需要有针对性的架构模式才能满足项目需求。大数据架构设计模式中,需要从分层、分割、分布式、集群、缓存、异步、灾备、自动化几个方面考虑。 1.分层 大数据平台从…

深度解密 5 类大数据架构及实现

前几天读到白发川的一篇文章《对比解读五种主流大数据架构的数据分析能力》,文中详细总结了各类数据架构的应用以及原理。作为一名在数据仓库耕耘多年的技术人员,对于其中的一些技术细节还是破解兴趣的,所以随着作者的思路写下了我对主流数据…

典型大数据架构有哪些?我该怎么选择?

讨论大数据架构,不可避免要讨论传统的结构化存储和数据仓库。 PS:最原始的结绳记事、仓颉造字不在咱们讨论范围内哈,咱们主要讨论计算机出现以后的数据存储。 我们对数据存储方式的认知顺序一般是: 注意:这个演变过程&…

大数据架构与技术——(一)大数据概述

文章目录 1.1 大数据时代1.1.1第三次信息化浪潮1.1.2信息科技为大数据时代提供技术支撑1.1.3数据产生方式的变革促成大数据时代的来临1.1.4 大数据的发展历程 1.2 大数据概念1.2.1 数据量大1.2.2 数据类型繁多1.2.3 处理速度快 1.3 大数据的影响1.4 大数据的应用1.5 大数据关键…

什么是大数据架构

什么是大数据架构 大数据架构是用于摄取和处理大量数据(通常称为“大数据”)的总体系统,因此可以针对业务目的进行分析。该架构可视为基于组织业务需求的大数据解决方案的蓝图。大数据架构旨在处理以下类型的工作:   批量处理大数据源。 实时处理大…

Pipeline大数据架构

1.Pipeline大数据架构 (create by 王小雷) Pipeline大数据架构,面向大数据仓库和大数据处理平台。是基于lambda的大数据架构的变种,增加了企业级服务,而并非只是大数据组件的对切,是一种更落地的方案。 如…

大数据架构之--Kappa架构

一、什么是Kappa架构 Kappa 架构是由 LinkedIn 的前首席工程师杰伊克雷普斯(Jay Kreps)提出的一种架构思想。克雷普斯是几个著名开源项目(包括 Apache Kafka 和 Apache Samza 这样的流处理系统)的作者之一。 Kreps 提出了一个改…

大数据架构及技术体系

下面是大数据体系架构图 大数据分2个部分,一部分是走实时的,另外一部分是走离线的,不管那块都需要数据来分析 从上图来看,数据分为结构化数据(MYSQL,ORACLE等),半结构数据(文件日志…

大数据架构演进

1、数仓架构演变(场景驱动) 1.1 经典数仓架构 数据仓库概念是Inmon于1990年提出并给出了完整的建设方法 1.2 离线大数据架构 随着互联网时代来临,数据量暴增,开始使用大数据工具来代替经典数仓中的传统工具 此时仅仅是工具的…

大数据架构(一)背景和概念

-系列目录- 大数据架构(一)背景和概念 大数据架构(二)大数据发展史 一、背景 1.岗位现状 大数据在一线互联网已经爆发了好多年,2015年-2020年(国内互联网爆发期)那时候的大数据开发,刚毕业能写Hive SQL配置个离线任务、整个帆软报表都20K起步。如果做到架…

大数据架构

大数据核心原理和场景分析 processon:https://www.processon.com/view/link/60b4d0071e08532bd00e9290

大数据架构图

大数据管理数据处理过程图 大数据(big data),指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察力。大数据处理的主要流程包括数据收集、数据存储、数据处理、数据应用等主要环节。随着业务的增长,大量和流程、…