**注意,下文种的token、sk、各种端口,用户名必须要自行替换
注意,下文种的token、sk、各种端口,用户名必须要自行替换
注意,下文种的token、sk、各种端口,用户名必须要自行替换**
购买,搭建公网vps
略,服务器系统使用的是centos 7
服务端安装frp
进入vps后:
官网下载frp
在:https://github.com/fatedier/frp/releases上下载相应版本,这里使用的是0.36.2:
wget https://github.com/fatedier/frp/releases/download/v0.36.2/frp_0.36.2_linux_amd64.tar.gz
解压frp压缩包
tar -xzvf frp_0.36.2_linux_amd64.tar.gz
更改文件夹名并进入文件夹
mv frp_0.36.2_linux_amd64 frp
cd frp
删除无用文件
rm -rf frpc*
编辑配置文件
vi frps.ini
修改配置文件
bind_port = 7000
authentication_method = token
token = 123456789
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = admin
bind_port:客户端和服务端连接的端口,在之后配置客户端时会用上,一般默认即可。
dashboard_port:服务端仪表板的端口,一般默认即可。如果按默认设置为 7500,则可通过 7500 端口访问仪表盘(例如 服务器
IP:7500),查看 frp 状态。 token:客户端和服务端连接的口令,请自行设置。 dashboard_user /
dashboard_pwd:仪表盘用户名和密码,请自行设置。
运行frps
./frps -c frps.ini
创建后台启动模版
vi /etc/systemd/system/frps.service
粘贴入:
可能需要修改frp路径:
[Unit]
Description=frps
After=network.target
[Service]
ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.ini
[Install]
WantedBy=multi-user.target
启动测试
systemctl start frps.service
查看启动状态
systemctl status frps.service
开机自启
systemctl enable frps.service
Windows受控端设置(stcp)
下载frp的Windows对应客户端
在:https://github.com/fatedier/frp/releases上下载相应版本,这里使用的是0.36.2:
https://github.com/fatedier/frp/releases/download/v0.36.2/frp_0.36.2_windows_amd64.zip
Windows xp不支持新版go,xp下必须下载老版本的frp,如 0.20.0版:
https://github.com/fatedier/frp/releases/download/v0.20.0/frp_0.20.0_windows_386.zip
设置修改受控端配置文件:frpc.ini
解压后,frpc相关是客户端文件,是下面要用到的,frps属于公网上服务端用的(可以删除),
为了方便后面引用,这里直接创建一个frpc.ini的副本:frpc-stcp.ini
[common]
server_addr = 公网服务器ip
server_port = 7100
token=123456789
[secret_rdp]
type = stcp
sk = 987654321
local_ip = 127.0.0.1
local_port = 3389
受控端中frpc读取配置文件:
- “[secret_rdp]”服务中,以stcp模式,把受控端本地的3389转发到服务器的frps上。(此处建议修改掉)
- "sk"是stcp服务的密钥,两端中的"sk"不匹配,不允许连接。
- 受控端stcp模式以服务名的形式匹配连接,不需要映射到公网IP的端口上,也不再需要remote_port。
创建个受控端bat批处理
@echo off
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
:begin
REM
cd D:\frp
frpc -c frpc_stcp.ini
exit
复制粘贴上述内容到记事本,然后修改frpc.exe所在路径,另存为:frp-stcp.bat ,文件类型修改为:所有文件,
双击运行frp-stcp.bat
如果属于长期使用,也可以创建个frp-stcp.bat 的计划任务,或直接在“启动”文件夹中创建个快捷方式。
可能遇到的问题
配置完后,无法连接上被控端
如开启frpc后,连接时报错:No connection could be made because the target machine actively refused it.
此时,1.先确认被控端是否开启 允许远程协助连接这台计算机
2.确认远程连接的端口是否有改动,或是否需要改动,可能需要用到下面这个RDPWrap-v1.6.2.zip
https://github.com/stascorp/rdpwrap/releases
右键 install.bat - 使用管理员身份运行。(一定要使用管理员身份运行!)
最后提示 Successfully installed 即可
然后双击打开 RDPConf.exe,检查服务运行状态以及端口号是否正确。
查看远程端口,或直接修改掉远程端口,修改完后重启下电脑。
然后再开启frpc。
Windows操作控制端设置
下载解压frp客户端
同上,下载frp的Windows对应客户端
修改操控端frpc.ini
同样为了方便后面引用,这里直接创建一个frpc.ini的副本:frpc-stcp.ini
[common]
server_addr = 公网服务器ip
server_port = 7100
token=123456789
[secret_rdp_visitor]
type = stcp
role = visitor
sk = 987654321
server_name = secret_rdp
bind_addr = 127.0.0.1
bind_port = 12345
控制端中的配置:
- [secret_rdp_visitor]服务中"role=visitor"是指定本机的服务为"访问者"的stcp模式。
- "sk"密钥。
- 控制端中的“server_name”是指定要连接的受控端中的服务名,服务名必须一致。
- 控制端中的"bind_addr"必须是"127.0.0.1"。
- "bind_addr"、"bind_port"这两个参数是指本地端口。指定本地frpc转发要通过frps和受控端连接的本地端口。
创建个操控端bat批处理
@echo off
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
:begin
REM
cd D:\frp
frpc -c frpc_stcp.ini
exit
复制粘贴上述内容到记事本,然后修改frpc.exe所在路径,另存为:frp-stcp.bat ,文件类型修改为:所有文件,
双击运行frp-stcp.bat
如果属于长期使用,也可以创建个frp-stcp.bat 的计划任务,或直接在“启动”文件夹中创建个快捷方式。
操控端使用window自带远程桌面开始远程控制
- win + r 键调出运行窗口,输入:mstsc,回车确认
- 在打开的远程桌面窗口中输入ip+端口: 127.0.0.1:12345
- 如果是自己的常用电脑,可以勾选“允许我保存凭据”,根据需要设置其他选项。
- 另存为:xxx.rdp
- 以后可以直接双击xxx.rdp开启远程桌面,并且省去输入计算机、用户等信息。
Mac端操控设置
MAC 需要使用 darwin_amd64 结尾的版本,我使用的是 frp_0.36.2_darwin_amd64.tar.gz
https://github.com/fatedier/frp/releases/download/v0.36.2/frp_0.36.2_darwin_amd64.tar.gz
wget https://github.com/fatedier/frp/releases/download/v0.36.2/frp_0.36.2_darwin_amd64.tar.gz
tar -xzvf frp_0.36.2_darwin_amd64.tar.gz
mv frp_0.36.2_darwin_amd64 frp
cd frp
修改frpc.ini,参见上面的Windows操作控制端设置
配置个批处理用于开机自启
此处最好在“终端”下使用vi命令创建,之前使用Mac自带的文本编辑创建的sh文件运行时总报错。
在FRP文件夹下新建frpc.command文件
sudo vim frpc.command
写入frpc.command配置
#!/bin/bash
cd /Users/xxx/frp
./frpc -c ./frpc.ini &
exit
同时要修改frpc.command的权限,否则会提示运行报错。
chmod 755 ./frpc.command
配置开机启动
- 系统偏好设置 - 用户和群组 - 当前或准备设置的用户 - 底部解锁 - 在登录项种加入刚才的frpc.command
- 同时为了终端-偏好设置-描述文件-shell-当 shell 退出时 关闭。
安装微软的RDP远程桌面
有美区账号可以直接下载,没有可以去下载Beta版:https://install.appcenter.ms/orgs/rdmacios-k2vy/apps/microsoft-remote-desktop-for-mac/distribution_groups/all-users-of-microsoft-remote-desktop-for-mac
下载完直接安装,后和Win端一样做相应配置即可。
- 开启frpc后,在服务器地址栏输入:127.0.0.1:12345
- 输入受控端的用户名及密码进行连接
附注:
流程
- frps启动,等着两端frpc的stcp转发配置。
- 受控端frpc启动,读取配置文件:服务名[secret_rdp]以stcp模式,将本地的3389端口转发到frps上。
- 控制端frpc读取配置文件和frps连接。
- 控制端frpc的配置指定"sk"密钥和受控端的服务名,要frps把控制端本地12345端口和受控端的[secret_rdp]服务绑定上。
- 控制端访问本地12345端口,请求被控制端的frpc转发到frps上,frps再将请求转发到受控端的[secret_rdp]服务上。
- 受控端[secret_rdp]服务里也指明了受控端哪些端口来接收响应处理被转发请求。
控制多台不同的受控端
- 修改受控端的服务器名([secret_rdp] 不同受控端,修改为不同的实例名)
- 同时参考上面Window操控端设置,修改操控端的端口号及server_name
- rdp远程桌面里:不同的受控端对应不同的端口号