十分钟教你在腾讯云服务器上部署frp并快速实现内网穿透一、前言1. frp介绍: FRP 是一个免费开源的用于内网穿透的反向代理应用,它支持 TCP、UDP 协议, 也为 http 和 https 协议提供了额外的支持。你可以粗略理解它是一个中转站,帮你实现 公网 ←→ FRP(服务器) ←→ 家庭内网 的连接,让内网里的设备也可以被公网访问到。 二、配置说明1.所需环境: (1)一台具有公网ip的服务器(以腾讯云为例) (2)一台局域网主机 2.实现功能 (1)通过外网登录vmware中的虚拟机(Ubuntu),实现远程操作 (2)通过网络调试助手实现在两个不同局域网的主机之间的tcp通信测试 三、服务器端frp部署1.腾讯云服务器购买 我这里使用是腾讯云服务器作为frp的服务器端,这里要 说明的一点是,如果大家家里面有一台具有公网ip的主机的话,完全不用购买,因为后续步骤操作基本一样,没有差别。 2.云服务器提前准备工作 (1)登录腾讯云,点击云产品就那个,找到实例这一栏,如下图 然后点击登录,就会弹出登录界面,这里我使用ssh进行登录,登录成功就成功进入到知己的云服务器里了,如下图所示: 3.frp下载与解压 从github下载对应版本,frp下载界面如下: 这里我们需要在服务器端下载1,因为我服务器的系统版本为centos,在这里,我们右键复制链接,然后在终端输入: wget https://github.com/fatedier/frp/releases/download/v0.35.1/frp_0.35.1_linux_amd64.tar.gz 等待下载完成,进行解压,输入tar -zxvf frp_0.35.1_linux_amd64.tar.gz 解压完成后,进行文件夹重命名,输入mv frp_0.35.1_linux_amd64 frp ,进入该目录:使用vim打开配置文件,如下 在配置文件中加入一句token = 密码,注意这是明文密码,不要输入自己常用的密码,自己记住就行了,如下 然后保存退出,服务器这边基本上配置就完成了,是不是很简单,哈哈! 然后进行端口放行,这里返回云产品,点击安全组,点击修改规则: 点击添加规则:添加一条数据如下面所示:到这里我们服务器端配置可以说基本配置完了。 运行服务器程序 输入: ./frps -c frps.ini 至此,服务器端启动完成,下面进行客户端配置:
四、客户端frp部署1.这里我的局域网就是我的电脑,win10版本,对此,我们下载win版本,下载好之后进行解压,并放入d盘中 双击进入,可以看到有如下目录: 使用notebook打开frpc.ini文件并修改你如下: 至此,客户端就已经部署好了,然后来运行客户端,使其连接到服务器:打开cmd,切换到该目录:输入frpc.exe -c frpc.ini ,如下: 可以看到客户端启动成功,而此时服务器端也会显示连接成功:如下 如果看到有客户端口登录信息,那就可以庆祝一下了,我们整个搭建过程已经成功了,接下来就进行内网穿透演示: 四、使用网络调试助手进行tcp通信测试:1.tcp服务器端 在 网络调试助手中打开一个服tcp服务器端口,进行监听:按下图悬着选择好后点击打开: 在创建一个客户端,配置完成进行打开,如下: 在客户端发送helloword,此时在客户端收到了hello word 到此,tcp内网就已经演示成功,我们也成功的使用内网访问到了外网服务器,并成功将该信息转发给本网络。 五、ssh连接本机虚拟机下的Ubuntu系统1.局域网设置 查看Ubuntu ip: 因为这里我采用的联网方式是nat,因此,在连接时还要进行一步将Ubuntu ip和端口映射到上一级中(也就是本机win10中),点击虚拟机中导航栏中编辑,虚拟网络编辑器: 然后点击更改设置:选中nat,nat设置,如下 然后依次填入虚拟机的相关的ssh信息:,然后保存,应用,退出 现在局域网中测试一下是否能访问,然后在去配置外网,因为如果内网都不能访问,那么外网肯定是不能访问的,如下: 可以看到,我们内网ssh登录成功了。 2.外网设置 打开frpc.ini配置文件 将ssh这一栏中的local_port改为刚刚在虚拟机映射到win10中的端口号,注意,这里必须要一致,否者无法连接。修改好了保存,重新运行frpc客户端: 测试是否能通过外网连接到Ubuntu 打开cmd输入: 注意这里-p 后面的端口号frpc.ini中配置文件中ssh这一栏的remote_port端口号,用户名填你要连接的用户名,主机地址,这里填服务器的公网ip,可以看到,此时,我们已经连接成功了。 六、服务器,frps自启动与后台运行配置:1.首先设置一个frps的服务,在终端输入:vim /lib/systemd/system/frps.service 注意:这里如果没有system这一个目录,自己创建一个即可: 然后输入如下模板: [Unit]
Description=fraps service
After=network.target syslog.target
Wants=network.target
[Service]
Type=simple
ExecStart=/root/frp/frps -c /root/frp/frps.ini
[Install]
WantedBy=multi-user.target 这里我们只需要修改这一栏即可:ExecStart=/root/frp/frps -c /root/frp/frps.ini 将后面的路径修改为frps我们之前的路径名即可,其他都是模板,不用修改: 然后保存,退出: 然后我们启动该服务:输入:systemctl start frps 设置自启动,输入:systemctl enable frps 到这里我们整个设置就完成了,我们测试一下,输入reboot进行重启: 查看正在运行的服务:输入:ps auxw 我们可以看到,我们的frps服务器已经在运行了: 至此,frp的使用就讲解到这里了 七、win中启动客户端每次都要输一长串命令太麻烦:这里我们可以写一个简单的bat脚本,将其放在frpc的目录中,然后创建一个快捷方式发到桌面,后面我们要进行穿透的换=话,直接双节该图标即可: 在解压目录新建一个bat文件,名字可以任意。 然后用记事本打开在里面输入: D:\frp_0.35.1_windows_amd64\frpc.exe -c D:\frp_0.35.1_windows_amd64\frpc.ini
exit 保存退出:右键发送快捷方式到桌面:直接双击该图标就可以启动了,是不是很方便,哈哈。0_0!! 八、穿透RTSP反向穿透成功,client会在断网后不断的从新和server尝试建立连接。 在client的frpc.ini中多加一个配置 [rtsp] type = tcp local_ip = aaa.aaa.aaa.aaa #摄像头ip,可以指向非自身的ip哦 local_port = 554 #rtsp端口 remote_port = 6001 重新启动客服端 docker-compose restart rtsp播放器播放 rtsp://xxx.xxx.xxx.xxx:6001/streaming/101 成功
|