FRP内网穿透进行Windows远程访问

背景

有时候你会希望在家里或者外面远程访问你公司的电脑,但由于你公司的电脑没有公网IP,所以你无法直接访问,本文介绍一种通过 frp 内网穿透进行Windows远程访问的方式。

前提

你需要一台有公网IP的服务器作为frp服务器,配置高低无所谓,主要用到的是带宽。

角色设定

  • frp服务器: 公网服务器
  • 被访问端: 公司的电脑
  • 访问端: 家里的电脑

准备工作

下载软件: https://github.com/fatedier/frp/releases

根据自己的系统类型进行下载,尽量保持三端的版本号一致,以减少frp之间的软件兼容问题出现。

注意

下面配置中涉及的 token、sk、用户名、密码 请根据需要更改,建议使用强度较高的密码,安全为主。


frp服务器搭建

请自行下载安装软件,这里不再详细描述。如有需要,可使用我的 https://github.com/wenshunbiao/docker 项目快速搭建 frp-server

frps.ini 配置文件参考:

1
2
3
4
5
6
7
8
9
10
11
12
13
# Document https://github.com/fatedier/frp/blob/master/README_zh.md

[common]
bind_port = 58000
bind_udp_port = 58000
token = xxx

dashboard_port = 58500
dashboard_user = xxx
dashboard_pwd = xxx

# only allow frpc to bind ports you list, if you set nothing, there won't be any limit
#allow_ports = 2000-3000,3001,3003,4000-50000

服务端启动的是 frps -c frps.ini,如要配置自启动请自行解决。

改完配置后重新启动一下,服务端自带有一个管理后台面板,你可以访问 http://ip:58500 看到一些监控信息


被访问端

frpc.ini 配置文件参考:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[common]
server_addr = 服务器ip
server_port = 58000
token = xxx

## 被访问端
[secret_rdp]
type = stcp
# 只有 sk 一致的用户才能访问到此服务
sk = xxx
local_ip = 127.0.0.1
local_port = 3389

## 开启udp访问会更丝滑哦
[secret_rdp_sudp]
type = sudp
# 只有 sk 一致的用户才能访问到此服务
sk = xxx
local_ip = 127.0.0.1
local_port = 3389

可在同级目录新建 start.bat 使用会更方便,双击此文件就可启动软件,然后可看到一系列的连接成功输出

1
2
3
4
@echo off
:home
frpc -c frpc.ini
goto home

你可能并不希望平时老是要手动打开这个软件,而且有个黑乎乎的窗口占用着,那么可配置 任务计划程序

配置 任务计划程序 开机启动

在 windows搜索栏 搜索 任务计划程序 打开,右键 任务计划程序库 选择 创建任务

创建任务

然后依次填写各选项卡内容

常规

触发器

这里的路径就填写你 start.bat 所在的绝对路径
操作

条件

设置

创建完任务之后,可以右键任务选择 运行 立马启动任务,下一次电脑开机就不需要你手动操作啦,会自行启动。
在58500端口的后台监控面板,应该是可看到客户端连接信息的。

开启远程访问

开启远程访问

选择可远程访问这台电脑的用户,如果是 Administrator 就已经有访问权了。
还有注意的是远程访问的用户必须设置密码,并且我建议设置强密码,安全很重要,虽然我们采用了stcp模式连接已经有一重密码保护了,但也不可掉以轻心。


访问端

frpc.ini 配置文件参考:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
[common]
server_addr = 服务器ip
server_port = 58000
token = xxx

## 访问端
[secret_rdp_visitor]
type = stcp
# stcp 的访问者
role = visitor
# 要访问的 stcp 代理的名字
server_name = secret_rdp
sk = xxx
# 绑定本地端口用于访问 SSH 服务
bind_addr = 127.0.0.1
bind_port = 13389

## 开启udp访问会更丝滑哦
[secret_rdp_visitor_sudp]
type = sudp
# sudp 的访问者
role = visitor
# 要访问的 sudp 代理的名字
server_name = secret_rdp_sudp
sk = xxx
# 绑定本地端口用于访问 rdp 服务
bind_addr = 127.0.0.1
bind_port = 13389

可在同级目录新建 start.bat 使用会更方便,双击此文件就可启动软件,然后可看到一系列的连接成功输出

1
2
3
4
@echo off
:home
frpc -c frpc.ini
goto home

注意:在访问端必须启动此软件才可进行远程连接。

在 windows搜索栏 搜索 远程桌面连接 打开,连接公司电脑:

上面的 13389 端口号就是你在 bind_port 填写的端口号,用户名就是你公司电脑的用户名。


恭喜你!可以愉快的进行远程连接了。
The End

评论