使用Frp内网穿透实现远程桌面(家里电脑远程控制公司电脑)

场景:最近国内疫情反复,随时可能被封闭在家里,这时候就需要远程控制公司电脑实现一部分的在家办公需求。

  • 公司电脑处于公司内网,可以连接外网,但是没有公网ip,为方便后续识别,统一为 office-pc。
  • 家里电脑也可以连接外网,同样没有公网ip,统称为home-pc。
  • 一个公网服务器,有固定的公网ip,用于转发和连接客户端,统称为server。

我们使用Frp进行内网穿透,Frp官方下载地址:https://github.com/fatedier/frp/releases

下载win64版本
image
解压之后得到 frpc.exe frps.exe和相应的配置文件。frps.exe就是服务端应用程序,frpc.exe就是客户端应用程序(home-pc和office-pc使用).
image

server配置

假设服务器公网ip为:110.110.110.110
frps.ini

[common]
bind_port = 9527
bind_udp_port = 9527
token = 123456

说明:
绑定9527的tcp端口
绑定9527的udp端口
使用token进行服务端与客户端间的通讯校验,服务端与客户端需要使用相同的token值

start.bat

@echo off
:home
frps -c frps.ini
goto home

说明:
使用frps -c frps.ini命令运行服务端程序,可以手动点击 start.bat文件运行,也可以配置成开机自动运行(防止断电重启后连接不上)
使用windows自带的 调度计划 配置
image

  • 创建task
    image

  • 配置task
    image
    image
    image
    image
    image
    image
    image

home-pc配置

[common]
server_addr = 110.110.110.110
server_port = 9527
token = 123456

[p2p_rdp_visitor]
type = stcp
role = visitor
server_name = p2p_rdp
bind_addr = 127.0.0.1
bind_port = 2333
sk = 654321

image

office-pc配置

[common]
server_addr = 110.110.110.110
server_port = 9527
token = 123456

[p2p_rdp]
type = stcp
local_ip = 127.0.0.1
local_port = 3389
sk = 654321

公司电脑开启允许远程桌面访问
image

公司电脑和家里电脑通过sk值进行校验,必须保持一致。

家里电脑使用 110.110.110.110:2333 即可使用远程桌面访问公司电脑

image

注意事项:

  1. 如果发现连接不上服务端,可以开启服务端的tcp/udp 9527端口的进站和出站
  2. stcp协议使用服务端流量进行转发,对服务端带宽有要求
  3. 可以尝试切换到xtcp协议,直接点对点传输,服务器只做握手认证。但xtcp对两边的网络有特殊要求,成功率比较低
posted @ 2022-04-09 23:00  Newcats  阅读(736)  评论(0编辑  收藏  举报