frp内网穿透实战

frp内网穿透实战


1、frp内网穿透原理:

服务端运行,监听一个主端口,等待客户端的连接;
客户端连接到服务端的主端口,同时告诉服务端要监听的端口和转发类型;
服务端fork新的进程监听客户端指定的端口;
外网用户连接到客户端指定的端口,服务端通过和客户端的连接将数据转发到客户端;
客户端进程再将数据转发到本地服务,从而实现内网对外暴露服务的能力。

简单来说一下整个原理实现的流程:

首先,大家知道如果你(A)在北京,你的朋友(B)在上海,如果想要ping通他的本机地址是不可能的,因为A机器的IP和B电脑的IP都是属于内网IP,并不能直接互通的。 但是你们两个都可以访问一个东西,就是互联网,既然你们都可以访问互联网,那么就可以在互联网上部署一个服务器,你们两个电脑都可以访问这个服务器,因为他是部署在互联网上的。所有可以上网的电脑都可以访问这个服务器(假设不设置任何策略),所以可以将它看做一个跳板,通过他你们就可以互相通信。

再简而言之就是,你(A)和你老婆(B)不认识,通过媒婆(服务器)牵线,然后互不相识的两个人就开始有了联系。


2、实战所需的硬性条件

需要一台vps服务器,可以购买腾讯云或者阿里云等(看折扣),节日折扣或者活动优惠的时候很便宜。(我买的腾讯云轻量级服务器,一年38块)

服务器端环境配置

1、利用Xshell连接服务器,然后在命令行输入代码:
wget https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_linux_amd64.tar.gz
2、利用命令:tar -zxvf frp_0.33.0_linux_amd64.tar.gz

3、进入该解压目录:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nQ5Zh2wx-1665488203306)(C:\Users\ASUS-PC\AppData\Roaming\Typora\typora-user-images\image-20221011173209964.png)]

​ 然后进入该解压目录:

cd frp_0.33.0_linux_amd64/

​ 打开配置文件:

nano frps.ini

​ 修改文件内容为以下内容:

[common]
# frp监听的端口,默认是7000,可以改成其他的
bind_port = 7000
# 授权码,请改成更复杂的
token = 52010  # 这个token之后在客户端会用到

# frp管理后台端口,请按自己需求更改
dashboard_port = 7500
# frp管理后台用户名和密码,请改成自己的
dashboard_user = admin
dashboard_pwd = admin
enable_prometheus = true

# frp日志配置
log_file = /var/log/frps.log
log_level = info
log_max_days = 3

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YfTxeLgB-1665488203307)(C:\Users\ASUS-PC\AppData\Roaming\Typora\typora-user-images\image-20221011173614495.png)]

​ 文件修改完以后,需要设置启动frp服务所需的前提文件:

sudo mkdir -p /etc/frp
sudo cp frps.ini /etc/frp
sudo cp frps /usr/bin
sudo cp systemd/frps.service /usr/lib/systemd/system/
sudo systemctl enable frps
sudo systemctl start frps

​ 然后就是防火墙策略的修改,首先一定要先去腾讯云服务器平台修改你的服务器策略(假设你是腾讯云服务器,如果是别的也是差不多步骤),因为仅仅是测试穿透,所以策略写的All,没有任何拦截,现实中不要这样操作。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lWKiSDOB-1665488203307)(C:\Users\ASUS-PC\AppData\Roaming\Typora\typora-user-images\image-20221011174032509.png)]

​ 然后在服务器命令行中也输入防火请开放端口,根据你操作系统不同,使用的方法可以百度查询,这里不赘述了。 开放服务器端口 7000/tcp 和 7500/tcp

​ 在命令行中输入代码systemctl status frps

出现以下界面就已经成功一半了。

在这里插入图片描述

​ 服务器端的最后一个步骤就是验证是否启动服务成功。访问:http://服务器IP:后台管理端口” ,输入用户名和密码可以查看连接状态 如:http://yourip:7500,用户名和密码分别对应frps.ini文件中的dashboard_user和dashboard_pwd 登录之后界面如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DNJKVGpW-1665488203308)(C:\Users\ASUS-PC\AppData\Roaming\Typora\typora-user-images\image-20221011174718301.png)]

出现以上界面就是服务启动成功了,服务端配置已经完成,下面是客户端配置:

客户端配置

1、在你客户端,我的是kali虚拟机,在客户端上下载frp包,下面附下载链接:

https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_linux_arm64.tar.gz

​ 跟服务端的下载解压方式一样,使用wget命令下载,使用 tar -zvxf来解压。

2、进入文件目录修改配置文件frpc.ini (注意: 不是 frps.ini)将文件内容修改为: :

# 客户端配置
[common]
server_addr = 服务器ip
server_port = 7000 # 与frps.ini的bind_port一致
token = 52010  # 与frps.ini的token一致

# 配置ssh服务
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000  # 这个自定义,之后再ssh连接的时候要用

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ieVPMN8v-1665488203308)(C:\Users\ASUS-PC\AppData\Roaming\Typora\typora-user-images\image-20221011175452867.png)]

​ 文件配置完以后要对防火墙进行配置。 因为我用的kali,使用的ufw。所以:

>[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zVmIuHIF-1665488203308)(C:\Users\ASUS-PC\AppData\Roaming\Typora\typora-user-images\image-20221011175932336.png)]

​ 防火墙配置完以后就可以开启客户端了。

./frpc -c frpc.ini

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jBiEk5sg-1665488203308)(C:\Users\ASUS-PC\AppData\Roaming\Typora\typora-user-images\image-20221011180138003.png)]

出现这个界面就好了,现在离成功只差一步之遥。

测试

找一台不同网段的电脑在终端执行代码:

ssh 用户名@服务器IP -p 端口号
用户名: 就是你本机的用户名,比如 我的kali用的是root,这边就填root
服务器IP:就是你购买的拥有一个外网IP的服务器,输入你外网IP的服务器IP
端口号:就是你客户端中 frpc.ini 文件中的remote_port。(本文用的6000)

所以最后的命令就是:

ssh root@xxx.xxx.xxx.xxx -p 6000

遇到的问题

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UANLAGfO-1665488203309)(C:\Users\ASUS-PC\AppData\Roaming\Typora\typora-user-images\image-20221011180901984.png)]

遇到的这个问题。耗了很多时间才解决。文章下面附大佬参考链接。

解决办法

​ 修改到本机kali中的/etc/ssh/sshd.config,将默认值修改为下图值:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BLXgO68i-1665488203309)(C:\Users\ASUS-PC\AppData\Roaming\Typora\typora-user-images\image-20221011181237767.png)]

将MaxSessions 的值改成2000

最后看一下成果:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ARlfa8Vu-1665488203309)(C:\Users\ASUS-PC\AppData\Roaming\Typora\typora-user-images\image-20221011181535158.png)]

实现内网穿透!

完结!
在实现过程中有什么问题可以留言私信~~~


参考链接:ssh登陆概率性失败,报错:kex_exchange_identification - 系统运维 - 亿速云 (yisu.com)

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值