搜索

利用frps进行内网穿透


发布时间: 2022-11-24 21:49:00    浏览次数:32 次

这里使用的是传统穿透方法,需要一个有公网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 ]
	then
	    echo "添加进程"
       cd /frp
	     ls
		 nohup ./frps -c frps.ini &
	fi





参考:

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

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

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

免责声明 利用frps进行内网穿透,资源类别:文本, 浏览次数:32 次, 文件大小:-- , 由本站蜘蛛搜索收录2022-11-24 09:49:00。此页面由程序自动采集,只作交流和学习使用,本站不储存任何资源文件,如有侵权内容请联系我们举报删除, 感谢您对本站的支持。 原文链接:https://www.cnblogs.com/xiedy001/p/16923563.html