利用frp和vnc实现稳定的远程桌面
利用frp和vnc实现稳定的远程桌面_五侠的博客-CSDN博客
1 |
市面上的免费远程办公工具大多基于UDP的NAT穿透,稳定性堪忧。 |
1 |
使用frp和vnc需要一个有公网IP作为服务端,另一个方案是使用ZeroTier,同样需要搭建一个Moon节点,也是需要公网IP。比较下来frp简单很多,不需要注册什么账号,安装配置也很简单。 |
1 |
如果你足够幸运,拨号的是固定IP,而且可以进路由设置端口映射或DMZ,frps和frpc就无需安装了。 |
1 |
甚至可以iPad触屏玩Windows,就是这么牛X。同一局域网无需frps和frpc。 |
1 |
架构原理 |
1 |
vnc和微软的rdp一样,是一个远程桌面协议,只不过RealVNC支持的系统更广,iPhone、iOS、Android,Windows,macOS、Linux统统支持。使用UDP或TCP的5900端口。 |
1 |
利用vnc可以实现远程桌面的功能,现在要做的就是连接上本机的5900端口。 |
1 |
frp 是一个可用于内网穿透的高性能的反向代理应用,安装运行frps和frpc就可以使公网IP就能连接上本机的5900端口。 |
1 2 |
<img class=" syno-notestation-image-object syno-ns-img-from-clipper" src="https://blog.ggrarea.cn/wp-content/uploads/2021/05/20200809153949288.png" alt="在这里插入图片描述" border="0" /> 第一步,办公室电脑运行vnc和frpc客户端,frpc向frps注册自己的服务和端口。 |
1 |
第二步,用户使用frpc指定的端口连接frps |
1 |
第三步,frps反向代理用户的请求到frpc,这样用户就连接上了vnc |
1 |
这样,只要用户可以上网,就可以连接上vnc,从而可以远程办公。 |
1 |
安装运行RealVNC |
1 |
办公室的电脑运行VNC® Server,可以去 <a href="https://www.realvnc.com/en/connect/download/vnc/" target="_blank" rel="noopener noreferrer">https://www.realvnc.com/en/connect/download/vnc/</a> 下载,支持各种桌面系统。 |
1 |
家里的电脑运行VNC® Viewer,支持桌面系统和手机系统,甚至可以使用Chrome插件。 |
1 2 |
Server安装后,默认是使用Windows账号和密码的,可以改成自己设置的复杂的密码,在Options选项的Security中,将Authentication改为VNC Password <img class=" syno-notestation-image-object syno-ns-img-from-clipper" src="https://blog.ggrarea.cn/wp-content/uploads/2021/05/20200809155139392.png" alt="在这里插入图片描述" border="0" /> |
1 |
然后去<code>User & Permissions</code>中设置密码: <img class=" syno-notestation-image-object syno-ns-img-from-clipper" src="https://blog.ggrarea.cn/wp-content/uploads/2021/05/20200809155408420.png" alt="在这里插入图片描述" border="0" /> 为了安全可以修改连接的端口,限制连接的IP地址,<code>vnc+frp</code>联合使用时,可以将IP地址限制为仅允许<code>127.0.0.1</code>,因为是本机frpc连接的vnc。 <img class=" syno-notestation-image-object syno-ns-img-from-clipper" src="https://blog.ggrarea.cn/wp-content/uploads/2021/05/20200809155815576.png" alt="在这里插入图片描述" border="0" /> |
1 |
有人也许有疑问,电脑需要总是开机,其实可以在BIOS中设定定时开机,例如华硕的 <a href="https://www.asus.com.cn/support/FAQ/1031741" target="_blank" rel="noopener noreferrer">https://www.asus.com.cn/support/FAQ/1031741</a> |
1 |
锁屏并不会影响使用,吃饭休息时可以锁屏,工作时再输入密码进入系统。 |
1 |
安装运行frps |
1 |
需要购买一个VPS,国内的比较稳定。 |
1 |
到<a href="https://github.com/fatedier/frp" target="_blank" rel="noopener noreferrer">https://github.com/fatedier/frp</a> 下载最新的frp,上传到VPS |
1 |
然后按照下面的运行即可 |
1 |
</code> tar xf frp_0.33.0_linux_amd64.tar.gz cd frp_0.33.0_linux_amd64 <code class="prism language-shell has-numbering"></code> cp frps /usr/bin/ <code class="prism language-shell has-numbering"></code> mkdir /etc/frp <code class="prism language-shell has-numbering"></code> cp frps.ini /etc/frp/ <code class="prism language-shell has-numbering"></code> cp systemd/frps.service /etc/systemd/system/ <code class="prism language-shell has-numbering"></code> systemctl daemon-reload <code class="prism language-shell has-numbering"></code> systemctl enable frps <code class="prism language-shell has-numbering"></code> systemctl start frps |
1 2 3 4 5 6 7 8 |
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
编辑配置文件,vi /etc/frp/frps.ini
1 2 3 4 5 6 |
[common] bind_addr =0.0.0.0 bind_port =7000 token = hello.frp tls_only = true |
- 1
- 2
- 3
- 4
- 5
7000为frps的开放端口,token为连接的秘钥,也可以设置复杂一些,tls_only表示frp使用ssl通信,因为vnc已经是加密的,这个选项可以去掉。
重启服务:systemctl restart frps
,查看监听端口:ss -lntp
安装运行frpc
同样下载程序,解压,然后新建一个目录,将frpc和frpc.ini复制到新建的目录
frpc.ini的配置项:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
[common] server_addr = 公网IP # 和frps的端口一致 server_port = 7000 # 和frps的token一致 token = hello.frp # 加密项,可以去掉 tls_enable = true [vnc] type = tcp local_ip = 127.0.0.1 local_port = 5900 # 这是连接时使用的端口,如果保持5900,连接时仅需输入密码即可 remote_port = 5900 |
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
新建一个bat文件,用于启动frpc,运行时,直接双击这个bat文件即可
1 2 3 |
cd %~dp0 frpc.exe -c frpc.ini |
- 1
- 2
bat没法隐藏运行,vbs可以
1 2 3 |
set ws = createobject("wscript.shell") ws.run "frpc -c frpc.ini", 0 |
- 1
- 2
可以设置开机自动运行,新建一个该bat文件的快捷方式,放到 C:\Users\xxx\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
即可,将路径中的xxx换成电脑登录的用户名。
使用下来较稳定的配置:使用TCP,图片质量为自动,如果还不稳定就设置为Low
转载请注明:徐自远的乱七八糟小站 » 利用frp和vnc实现稳定的远程桌面