自建远程桌面过程 vnc + frp

时间:2024-04-15 12:51:35

为何需要自建远程控制桌面

想要随时随地远程一台电脑?上网搜一下常见方案有teamviewer,向日葵远控,这2宝贝基本满足普通用户的大部分需求。但是如果想特定端口商业环境公司网络,还想在手机上远控。那就得自己DIY了。

所需硬性条件

  1. 云服务器+公网IP,需自购云或AWS EC2
  2. 用于内网穿透的软件(免费) FRP
  3. 被控电脑装的服务软件(免费) TightVNC
  4. 手机或电脑上进行远控软件(免费) VNCViewer

单纯内网远控

在家有多个电脑,想直接用手机远控。那就直接装TightVNC和VNCViewer就足够了。此处唯一需要注意的是

  • TightVNC提供Client Viewer,但不怎么好用。其他直接下一步就成。同时记得设置密码。
  • www.realvnc.com/en/connect/download/viewer 一看就懂,按需下载
  • 连接的服务器地址请填被控电脑的内网地址。可在命令行下敲ipconfig看。

公网远控

模拟情景是这样的,用手机4G网络,使用VNCViewer软件连接114.114.114.114:55555服务器。服务器通过frp和某内网电脑192.168.1.55的frp软件通信,frpc则和自身的vnc server服务端口127.0.0.1:5900通讯。

公网服务器FRPS安装和使用

  1. 以ubuntu为例,直接下载frp https://github.com/fatedier/frp/releases
  2. 解压包,找到frps.ini 进行配置
[common]
bind_addr = 0.0.0.0
bind_port = 55000  //此处端口重要

token = testtoken

//WEB HTTP服务详情查看的端口
dashboard_port = 55500
# dashboard 用户名密码,默认都为 admin
dashboard_user = admin
dashboard_pwd = adminpsd

log_file = ./home/ubuntu/frps_log.log
log_level = info
log_max_days = 3
  1. 运行包含指定配置的frps服务器程序

frps -c ./frps.ini

服务设置,让frps成为后台服务

  1. 新建一个服务文件 frps.service
[Unit]
Description=frps service
After=network.target syslog.target
Wants=network.target

[Service]
Type=simple
#启动服务的命令(此处写你的frps的实际安装目录)
ExecStart=/home/ubuntu/frp/frps -c /home/ubuntu/frp/frp_0.20.0_linux_amd64/frps.ini

[Install]
WantedBy=multi-user.target
  1. 复制到ubuntu的服务目录下

/lib/systemd/system

  1. 通过以下指令来判断frps的服务运行
//重载列表
systemctl daemon-reload
//确认frps是否存在
systemctl --all | grep frps 
//确认具体状态
systemctl status frps 
//启动
systemctl start frps 
  1. 最后是设置自启动
//是否自启动
systemctl is-enabled frps
//是否已启动
systemctl is-active frps
//设置自启动
systemctl enable frps
//禁止自启动
systemctl disable frps

客户端设置

让被控电脑通过FRPS将VNC服务暴露在公网

  1. 直接下载frp https://github.com/fatedier/frp/releases
  2. 解压包,找到frpc.ini 端口和token设置
[common]
server_addr = 114.114.114.114 //公网服务器ip
server_port = 55000 //frp端口
token = testtoken //需和frps.ini的设置的一致

[range:VNC]
type = tcp
local_ip = 127.0.0.1 //
local_port = 5900 //TightVNC Service所设置的Main Server port
remote_port = 55555 //公网VNC访问端口,日后Viewer通过114.114.114.114:55555进行链接
use_encryption = false
use_compression = false
  1. TightVNC Service设置 - 开启回路

Access Control -> 勾选 Allow loopback connections

(可选)Windows下为frpc设自动启动服务

  1. WINSW 来自动设置服务吧
  2. 下载,解压,配置winsw.xml
<service>
    <id>frpc</id>
    <name>frp0.27.1-windows-amd64</name>
    <description>frpc客户端 这个服务用 frpc 实现内网穿透</description>
    <executable>H:/frp_0.27.1_windows_amd64/frpc.exe</executable>
    <arguments>-c H:/frp_0.27.1_windows_amd64/frpc.ini</arguments>
	<onfailure action="restart" delay="10 sec"/>
	<onfailure action="restart" delay="20 sec"/>
	<log mode="append" />
    <logpath>H:/frp_0.27.1_windows_amd64/frp_logs.log</logpath>
    <waithint>15 sec</waithint>
	<sleeptime>1 sec</sleeptime>
</service>
  1. 执行命令行安装命令
//安装服务
winsw install
//开启服务
winsw start
  1. 查看结果