身为程序员,在家远程公司电脑可以说是一个刚需。以前尝试过向日葵,还开了会员,后面觉得贵,又尝试了 toDesk,这一类不是微软亲儿子,总结就是要么花钱要么卡。后面接触了内网穿透,用了 cpolar (一款内网穿透产品),结合微软自带的远程桌面,简直无损享受,就是免费版带宽低,付费版又贵。所以就有了这篇文章

前言

PS: frp 支持不同的系统,但本文只针对公司电脑 windows 系统作为 frp client ,ubuntu 服务器作为 frp server。

简述

首先要了解两个概念,frpsfrpc,其中的 s 代表 server,c 代表client。然后第一步就是要有个具有公网 ip 的服务器(后文简称服务器),windows 和 linux 都可以(本文以 linux ubuntu20 为例)。服务器作为 frps,公司的电脑作为 frpc,frp 通过在公网上的服务器(具有公网IP)建立一个代理,使得内网设备可以通过这个代理与外网进行通信。

步骤

1. 服务器中下载 frp

https://github.com/fatedier/frp/releases 中下载最新版本的 frp 软件
我当时下载的是 frp_0.54.0_linux_amd64.tar.gz

在服务器上解压文件:

tar -zxvf frp*.tar.gz

2. 配置 frps.toml

内容如下:

bindPort = 7000
auth.token = "psw"
subDomainHost = "astorm.domain"

bindPort 是服务部署的端口,记得服务器的防火墙要开放这个端口。auth.token是口令,后面client 配置时的口令跟这个对得上才可以连接,会安全一些。如果你想绑定域名的话,就配置多一个 subDomainHost,二级域名即可(就算你想绑定的是三级域名,这里也填二级域名),对应域名解析记得要填本服务器的 ip。

3. 启动 frps

cd 到frp目录下,执行

nohup ./frps -c ./frps.toml &

加 nohup 是为了后台运行,并将日志输出到当前目录的 nohup.out,方便后续查看

4. 公司电脑下载 frp

同样的,到 https://github.com/fatedier/frp/releases 中下载最新版本的 frp 软件
我当时下载的是 frp_0.54.0_windows_amd64.zip
解压,将文件夹放到你喜欢的位置

5. 配置 frpc.toml

内容如下:

serverAddr = "xxx.xxx.xxx.xxx"
serverPort = 7000
auth.token = "psw"

[[proxies]]
name = "test-tcp"
type = "tcp"
localIP = "127.0.0.1"
localPort = 3389
remotePort = 33389
subdomain = "remote"
  • serverAddr、serverPort 顾名思义就是服务器的 ip 和端口
  • auth.token 也和服务器配置的口令对应
  • name 随便
  • type 照抄
  • localIP
  • localPort 远程桌面的端口,都是 3389
  • remotePort 为远程桌面共享时使用的端口号
  • subdomain 可选,如果你要绑定域名,这里就写三级域名的第三级就好

6. 启动 frpc

在 frp 文件夹中新增一个 runRemoteClient.bat 文件,内容如下:

@echo off
cd /d D:\frp
start /min .\frpc -c .\frpc.toml > frpc.log 2>&1

其中 D:\frp 是我 frp 所在文件夹,根据实际去改即可

双击这个文件,即可启动 frpc

7. (可选) 开机自启动

win + r 打开“运行”,输入 shell:startup,然后会打开一个文件夹。
将上面的 runRemoteClient.bat 右键创建一个快捷方式,把快捷方式丢到上面打开的文件夹,就会实现开机时自动执行这个 bat 文件

8. 远程

在家里的电脑,打开远程桌面,输入 服务器ip:33389,即可远程桌面
如果有绑定域名,就输入 remote.xxx.xxx:33389。好吧,我也不知道怎么去掉后面的端口,将就用吧

9. 后记

其实这种方式感觉不太安全,毕竟链接很容易就泄露了,所以公司电脑 windows 的密码要设好,不要用 123 这种太简单的密码。

另外,推荐 RD-Client 这款 app,iPhone、iPad都可以下载,微软官方的远程桌面 app,实现移动设备远程公司电脑