一:frp介绍

1.介绍

frp是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。

2.准备

云上服务器 x.x.x.x,(这里使用的是阿里云centos,下面打码的均为云服务器ip)本地服务器 192.168.1.83,(本地linux虚拟机)

二:环境搭建

1.frp软件下载与安装

从github页面下载FRP软件包:https://github.com/fatedier/frp/releases。这里测试的时候选择的是frp_0.48.0_linux_386.tar.gz,选择自己可以使用的即可。

2.frp软件配置

下载的软件包中包含服务器端和客户端两种程序,以frps和frpc区分,frps即为frp server(服务端),frpc即为frp client(客户端)。

注意两点:1)云服务器安全组一定要放开使用的端口;2)本地服务器要开启22端口并且允许远程连接,不然远程连接连不了。

a.云服务器

在公网服务器上将frp软件下载下来后进行解压: tar -zxvf frp_0.48.0_linux_386.tar.gz。

然后进入解压的目录删除客户端的相关文件配置:rm -rf frpc*。

在然后在具有公网 IP 的机器上修改 frps.ini文件的配置信息,设置bind_port参数,此端口用来连接客户端。

[common]
bind_port = 7000

 然后启动frp(或者等客户端配置好后在开启也是一样的):./frps -c frps.ini。

b.本地内网服务器

在本地服务器上将frp软件下载下来后进行解压: tar -zxvf frp_0.48.0_linux_386.tar.gz。

然后进入解压的目录删除服务端的相关文件配置:rm -rf frps*。

在然后在本地内网服务器上修改frpc.ini文件,设置服务器IP及端口,端口(server_port)须与服务器中frps.ini文件的设置的相同。

local_ip 和 local_port 配置为本地需要暴露到公网的服务地址和端口。remote_port 表示在 frp 服务端监听的端口,访问此端口的流量将会被转发到本地服务对应的端口。

然后启动frp:./frpc -c frpc.ini。

三:连接测试

这里使用任意一款支持ssh连接的工具或者在linux中连接也行。先说下在linux中连接吧,刚开始采用的这种方式连接,在这里踩坑了,命令:ssh -oPort=6000 kali@x.x.x.x(云服务器ip),这里容易出现一个问题就是我们习惯用自己的电脑去测试,那样的话我们这里就会出现一个问题,假设开启了本地服务器2,在本地服务器2中使用命令ssh -oPort=6000 kali@x.x.x.x会连接失败并且导致本地服务器2的ip改变成本地服务器(原先的客户端)的ip(我测试的时候是这样,桥接或nat均不行,这里属于是漏洞还是啥原因导致的,要是有理解的可以在下面说一下)。最后临时借了别人电脑连接手机热点使用命令ssh -oPort=6000 kali@x.x.x.x进行连接测试才可以正常连接。下面是连接前后ip发生改变的结果图。

ssh工具连接的话就比较方便了,直接输入云服务器ip和6000端口即可:

连接结果如下:

这里就先写一下ssh的吧,web服务的类似,下次用到了在记录。

作者:|upfine|,原文链接: https://www.cnblogs.com/upfine/p/17266632.html

文章推荐

创建nodejs项目并接入mysql,完成用户相关的增删改查的详细...

ThreadLocal 的应用及原理

【Linux】(小白向)详解VirtualBox网络配置-配置Linux网络

一文讲透 RocketMQ 消费者是如何负载均衡的

【原型设计模式详解】C/Java/JS/Go/Python/TS不同语言实现

谈谈selenium中的clear后输入内容异常的处理

ResNet50的猫狗分类训练及预测

MySQL数据库与Nacos搭建监控服务

在EF Core中为数据表按列加密存储

第四部分:Spdlog日志库的核心组件分析-logger

MySQL中的事务

8条github使用小技巧