通过云服务器远程连接局域网内的windows电脑

这个需求是来自于我在家里的办公电脑是性能比较强的,但是没有公网 IP,在外面的时候(例如坐车,开会fish),有时候想要使用家里的办公电脑搞些好玩的,画画图什么的,就可以通过 windows 的远程桌面连接上家里的电脑,直接开始了。

需要的条件:
1)一个有公网IP的云服务器,我这使用的是阿里云的 ECS
2)一个在局域网内能够访问到云服务器,但是外部网络访问不到的 windows 电脑,我这里就是家里的 windows11 办公电脑
3)处于无法直接访问到局域网内部设备的 windows 电脑,我这里就是我自外面的时候的笔记本电脑了。

尝试了两种方案,从外部网络通过云服务器中转,连接到局域网内的Windows电脑,都是验证可行的。

连接示意:外部网络用户 → 云服务器公网IP:端口 → SSH隧道/FRP → 内网Windows:3389

1 使用SSH隧道

1.1 局域网内的电脑启用Windows远程桌面​​
  • 进入设置 --> 系统 --> 远程桌面
  • 启用远程桌面并记录内网IP地址(cmd执行ipconfig查看)
1.2 ​​云服务器SSH配置
sudo vim /etc/ssh/sshd_config

确认以下配置:

AllowTcpForwarding yes
GatewayPorts yes  # 允许外部访问转发端口
sudo systemctl restart sshd
1.3 创建SSH反向隧道

在内网Windows电脑上(需安装OpenSSH客户端):

ssh -R 3390:localhost:3389 用户名@云服务器IP -N -f
  • -R 3390:云服务器监听端口,可以设置其他端口,但是需要确保该端口在云服务器上已经开放
  • localhost:3389:本机RDP端口,对于 windows 系统,默认是 3389 端口
  • -N:不执行命令
  • -f:后台运行
1.4 连接远程桌面

在外部电脑上使用远程桌面客户端连接:

mstsc /v:云服务器IP:3390
1.5 安全增强设置
1.5.1 端口伪装
ssh -R 0.0.0.0:3390:localhost:3389 user@server -N -f
1.5.2 连接保活
# 每30秒发送保活信号
ssh -o ServerAliveInterval=30 -R 3390:localhost:3389 user@server -N

2 使用FRP反向代理

2.1 ​服务器端配置(云服务器)
wget https://github.com/fatedier/frp/releases/download/v0.52.3/frp_0.52.3_linux_amd64.tar.gz
tar -zxvf frp_*.tar.gz
cd frp_*
vim frps.ini

配置内容:

[common]
bind_port = 7000
vhost_http_port = 8080  # 可选WEB端口
2.2 客户端配置(内网Windows)

下载Windows版FRP:

Invoke-WebRequest https://github.com/fatedier/frp/releases/download/v0.52.3/frp_0.52.3_windows_amd64.zip -OutFile frp.zip
Expand-Archive frp.zip
cd frp_*
notepad frpc.ini

配置内容:

[common]
server_addr = 云服务器IP
server_port = 7000
token = your_secure_token_here

[rdp]
type = tcp
local_ip = 127.0.0.1
local_port = 3389
remote_port = 3390
2.3 启动服务​
# 服务器端
./frps -c frps.ini

# 客户端(Windows管理员权限运行)
.\frpc.exe -c frpc.ini
2.4 连接远程桌面

外部电脑使用:

mstsc /v:云服务器IP:3390
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值