Docker安装frp实现远程桌面连接

Docker安装frp实现远程桌面连接,第1张

[TOC]

由于没有公网IP,无法远程连接家里的电脑,搜到了 frp 这个项目,尝试使用后发现效果不错,所以写出安装过程分享。

frp是一个反向代理工具,可以将流量转发到目标主机,包括TCP,UDP,HTTP,HTTPS。其基本原理是目标主机安装客户端连接到代理服务器建立固定连接,客户主机通过代理服务器连接到目标主机进行访问。

市面上有向日葵,TeamViewer也是类似原理,只不过这里变成代理服务器需要我们自己提供,比如从腾讯云或者阿里云购买一台轻量服务器作为代理服务器,有固定的公网IP可以访问。自建服务器的好处是带宽独享,可以有更稳定的连接效果。

而制作镜像是希望能够方便多次部署。

SELinux是关闭状态,不需要处理

防火墙是关闭状态,把防火墙开启

提前开放一段端口范围,用于frp流量转发。

查看docker

docker还没安装,需要自己安装。

添加docker的安装源。

查看docker-ce版本

这里看到提示 versionlock ,由于只是安装frp,所以先把锁删掉。

Docker可以默认安装最新版本,或者指定版本安装,分别指令如下。

这里直接安装最新版本,等待安装完成

安装完后确认docker版本,并启动docker服务

登录代理服务器,创建目录并将frp复制到目录下

将frps.ini备份并编辑frps.ini。

编辑Dockerfile

配置完毕,可以开始构建镜像

构建需要拉取CentOS,根据网速可能需要等待一会儿

查看镜像,可以看到镜像已经制作完成,TAG是v1

基于镜像开启容器

查看监听端口是否开启

查看容器日志

目前看来一切正常。尝试访问监控面板。

之前配置端口 dashboard_port = 20001,假设代理服务器IP是106.13.127.200,那么通过 http://106.13.127.200:20001 访问监控面板

正常情况下,会提示输入之前配置的用户和密码,并看到如下页面

代理服务器配置好后,配置目标主机,

关于远程连接的配置这里不做说明,默认已配置好远程连接的参数,只是需要代理服务器中转。

frpc和frps配置类似,编辑frpc.ini

具体配置

运行frpc

查看frpc的日志frpc.log

查看frps的日志

目标主机与代理服务器成功建立TCP和UDP连接

客户主机打开远程桌面连接,输入IP和端口进行连接106.13.127.200:20010

可以看到成功连接,并且已启用UDP

frp也支持P2P模式,即客户主机和目标主机直接建立连接,理论上会有更好的连接效果。但是由于现实中的网络环境,这种模式可能失败。本人尝试过有失败情况,也有成功情况。可以参考frp文档自行尝试。

Windows远程桌面会尝试使用UDP提供更好的效果,所以这里同时配置了TCP和UDP代理。如果希望有更好的效果,可以考虑配置GPU渲染。关于远程桌面的流量和GPU有机会其他文章说明。

FRP 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, https 协议。对于 http, https 服务支持基于域名的虚拟主机,支持自定义域名绑定,使多个域名可以共用一个80端口。说人话?就是让没有公网ip的你远程访问局域网内的各种服务,比如远程访问路由器后台、远程ssh、远程桌面等。 有公网ip的大佬就没必要继续往下看了 。

免费服务器不稳定,速度慢,且一般仅开放部分端口,请谨慎使用!但如果需求量不大,偶尔远程访问一下路由器,也是没问题的。以下是一些免费frp服务器网址:

自建frp服务器的速度,稳定性,可用端口完全取决于你的云服务器状况。这里推荐使用 clang 大大写的frp一键搭建脚本。

只谈一下最新0.20.0的FRP基本配置,基本有以下几种配置信息 加粗表示必填 :

[站外图片上传中...(image-891bdc-1614872632225)]

ssh的tcp穿透配置完成后Linux、Mac或XShell环境下运行以下命令即可远程路由器:

可能我测试的这个免费服务器问题,http穿透未测试成功,ssh的http穿透配置完成后终端ssh运行以下命令即可远程路由器:

额,经过测试ssh无法使用http穿透,测试过web服务器既可以使用http也可以使用tcp穿透方式的。下面例子使用免费服务器 frp3.chuantou.org , address 表示穿透成功后的访问地址。

如果http配置为80端口,https配置为443端口,那么你使用http或https方式穿透之后是不用增加端口号访问的。如果使用其他端口,请加上端口号访问。使用这两个端口搭建frp服务器会占用你vps的相应端口,不过可以支持多个子域名共用端口80或443,不必像tcp穿透那样一个穿透节点占用一个端口。

FRP请一定要注意服务端版本号,有些版本不互相兼容。而且随着版本的更新,配置也发生了一定的更改。所以请跟你不同的版本选择不同的服务端配置,目前大概有三个版本:

FRP服务启动失败,请检查FRP穿透节点配置中的子域名 http 和远程端口 tcp 配置,

极可能已经被和你使用同样免费服务器的人占用了,尝试多次更换这2个配置,并重启服务。

文中如果有错误的地方,欢迎评论与指正。如果你喜欢我写的文章,也可以点击下方的 打赏 支持一下,你的支持就是我更新的动力!谢谢大家

欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/660308.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-07-25
下一篇2023-07-25

发表评论

登录后才能评论

评论列表(0条)

    保存