Posts 使用frp实现windows远程桌面连接
Post
Cancel

使用frp实现windows远程桌面连接

  公司不允许安装非授权的软件,所以迫于无奈,只能放弃teamviewer这些远程软件,使用window自带的远程桌面.用完发现 windows 自带的远程桌面比第三方的软件好用不少.基本就像在使用本地桌面一样,但是网络问题会导致卡顿,所以建议服务器端的网络要好一点.以下内容是网上结合了N个教程后,踩坑并汇总出来的傻瓜式教程.

1.下载frps

  下载地址 https://github.com/fatedier/frp/releases 服务器自己查看自己的系统是32位的还是64位的.我的是64位的ubuntu所以下载了 _linux_amd64.tar.gz 结尾的文件, 客户端就是我们自己的电脑就下载 windows_amd64.zip 结尾的文件.

2.配置

服务器端: ubuntu 端文件下载解压缩来后,进入解压出来的文件夹,ls 命令应该会出现如下的文件

最主要的是两个配置文件frps.ini(服务器上配置) 和 frpc.ini(自己需要被远程的电脑配置) 这两个文件

frps.ini 的配置如下

1
2
3
4
[common]
bind_port = 7000 #绑定的端口 客户端那边需要配置和这一样的端口 确保端口是可用的
dashboard_user = username #这个frp控制面板用户名  一般用不到
dashboard_port = 7500 #这个frp控制面板的端口 一般用不到

客户端(自己需要被远程的电脑配置): windows客户端文件下载解压出来的文件和上面解压出来的差不多,只需要关注配置文件即可

frpc.ini 的配置如下

1
2
3
4
5
6
7
8
9
[common]
server_addr = 服务器ip
server_port = 7000 # 确保服务器该端口是可用的

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 3389  #3389 远程桌面的端口 这个不能随便改
remote_port = 7004  #这个是远程桌面连接主机的时候输入的ip后加上的端口

3.启动运行 服务端: 进入解压出来的文件夹, 输入如下命令

1
2
3
4
#后台运行进程
nohup ./frps -c ./frps.ini & 
#不后台运行
./frps -c ./frps.ini

客户端: 进入解压出来的文件夹

1
2
3
4
#cdm的话就 输入
frpc -c frpc.ini
#power shell的话就 输入
./frpc -c frpc.ini

4.上面步骤结束后,就可以通过输入 服务器ip:端口, 假如你的服务器ip是 123:123:123:123,根据我的配置就应该输入 123:123:123:123:7004 (冒号要用英文的)

如果不行的话请往下看步骤6

5.我的附加的便捷操作

在客户端,即我们的电脑

(1).让电脑每天定时开机自启,这个需要设置bios,具体方法因主板而异,得自己去查资料

(2).开机自启运行一个bat文件,让我们客户端的程序开机自启,在 C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp 目录下写一个bat文件,bat文件内容如下

1
cmd /k "cd /d 你的解压的文件路径 && frpc -c frpc.ini"

我的路径是 D:\Downloads\frp_0.33.0_windows_amd64 所以我的bat文件内容如下

1
cmd /k "cd /d D:\Downloads\frp_0.33.0_windows_amd64 && frpc -c frpc.ini"  

让程序静默后台运行的话

1
2
3
4
5
+@echo off
+if "%1" == "h" goto begin
+mshta vbscript:createobject("wscript.shell").run("%~nx0 h",0)(window.close)&&exit
+:begin
cmd /k "cd /d D:\Downloads\frp_0.33.0_windows_amd64 && frpc -c frpc.ini"

6.一些注意的地方

(1) 配置文件中的端口号需要在云服务的安全策略中放行,具体操作方式可以看发布项目到服务器-1. 如果你的服务器开启的防火墙的话(自行百度下查看防火墙状态命令),还需要放行这些端口,服务器放行端口命令如下

1
2
3
iptables -A INPUT -p tcp --dport 端口号 -j ACCEPT
#举个例子 放行我配置中的 7000 端口
iptables -A INPUT -p tcp --dport 7000 -j ACCEPT

(2) 服务器重启后需要重新启动下服务,重复步骤3.还有还需要重新输入 放行端口的命令,所以保存下配置

1
2
3
4
#把配置的iptables的内容持久化保存到 名字为foobar的文件中(文件名随意取)
iptables-save > foobar
#服务器重启后读取下配置的内容(有需要可以写个脚本重启后自动读取配置文件内容)
iptables-restore < foobar
This post is licensed under CC BY 4.0 by the author.

发布项目到服务器-2

存储过程入参默认值问题