利用frp和vnc实现稳定的远程桌面

利用frp和vnc实现稳定的远程桌面

市面上的免费远程办公工具大多基于UDP的NAT穿透,稳定性堪忧。

使用frp和vnc需要一个有公网IP作为服务端,另一个方案是使用ZeroTier,同样需要搭建一个Moon节点,也是需要公网IP。比较下来frp简单很多,不需要注册什么账号,安装配置也很简单。

如果你足够幸运,拨号的是固定IP,而且可以进路由设置端口映射或DMZ,frps和frpc就无需安装了。

甚至可以iPad触屏玩Windows,就是这么牛X。同一局域网无需frps和frpc。

架构原理

vnc和微软的rdp一样,是一个远程桌面协议,只不过RealVNC支持的系统更广,iPhone、iOS、Android,Windows,macOS、Linux统统支持。使用UDP或TCP的5900端口。

利用vnc可以实现远程桌面的功能,现在要做的就是连接上本机的5900端口。

frp 是一个可用于内网穿透的高性能的反向代理应用,安装运行frps和frpc就可以使公网IP就能连接上本机的5900端口。

在这里插入图片描述
第一步,办公室电脑运行vnc和frpc客户端,frpc向frps注册自己的服务和端口。

第二步,用户使用frpc指定的端口连接frps

第三步,frps反向代理用户的请求到frpc,这样用户就连接上了vnc

这样,只要用户可以上网,就可以连接上vnc,从而可以远程办公。

安装运行RealVNC

办公室的电脑运行VNC® Server,可以去 https://www.realvnc.com/en/connect/download/vnc/ 下载,支持各种桌面系统。

家里的电脑运行VNC® Viewer,支持桌面系统和手机系统,甚至可以使用Chrome插件。

Server安装后,默认是使用Windows账号和密码的,可以改成自己设置的复杂的密码,在Options选项的Security中,将Authentication改为VNC Password
在这里插入图片描述

然后去User & Permissions中设置密码:
在这里插入图片描述
为了安全可以修改连接的端口,限制连接的IP地址,vnc+frp联合使用时,可以将IP地址限制为仅允许127.0.0.1,因为是本机frpc连接的vnc。
在这里插入图片描述

有人也许有疑问,电脑需要总是开机,其实可以在BIOS中设定定时开机,例如华硕的 https://www.asus.com.cn/support/FAQ/1031741

锁屏并不会影响使用,吃饭休息时可以锁屏,工作时再输入密码进入系统。

安装运行frps

需要购买一个VPS,国内的比较稳定。

https://github.com/fatedier/frp 下载最新的frp,上传到VPS

然后按照下面的运行即可

# 解压
tar xf frp_0.33.0_linux_amd64.tar.gz
cd frp_0.33.0_linux_amd64
# 复制可执行程序
cp frps /usr/bin/
# 创建配置文件目录
mkdir /etc/frp
# 复制配置文件
cp frps.ini /etc/frp/
# 复制服务启动脚本
cp systemd/frps.service /etc/systemd/system/
# 重新加载配置文件
systemctl daemon-reload
# 开机启动frps
systemctl enable frps
# 启动frps
systemctl start frps

编辑配置文件,vi /etc/frp/frps.ini

[common]
bind_addr =0.0.0.0
bind_port =7000
token = hello.frp
tls_only = true

7000为frps的开放端口,token为连接的秘钥,也可以设置复杂一些,tls_only表示frp使用ssl通信,因为vnc已经是加密的,这个选项可以去掉。

重启服务:systemctl restart frps,查看监听端口:ss -lntp

安装运行frpc

同样下载程序,解压,然后新建一个目录,将frpc和frpc.ini复制到新建的目录

frpc.ini的配置项:

[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

新建一个bat文件,用于启动frpc,运行时,直接双击这个bat文件即可

cd %~dp0
frpc.exe -c frpc.ini

bat没法隐藏运行,vbs可以

set ws = createobject("wscript.shell")
ws.run "frpc -c frpc.ini", 0

可以设置开机自动运行,新建一个该bat文件的快捷方式,放到 C:\Users\xxx\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup 即可,将路径中的xxx换成电脑登录的用户名。

使用下来较稳定的配置:使用TCP,图片质量为自动,如果还不稳定就设置为Low

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值