frp内网穿透实现对内网电脑的远程桌面连接

  • 博主有一台小型服务器,平时放在公司常开机,由于公司网络用的局域网,所以要实现远程桌面就需要突破公司内网,今天给大家带来通过frp实现内网穿透的教程。

一、所需工具

1.内网中的电脑(客户端,本教程以windows64位为例)
2.有公网IP的vps(服务端,本教程以centos64位为例)
3.用于远程桌面的手机、电脑、IPAD等设备。

二、说明

1.有公网IP的vps,配置无需太高,1核1M带宽1G内存都绰绰有余,可以选择谷歌免费送的主机、腾讯云和阿里云的学生主机等等,几乎不费钱。当然,有其他选择也可以。
2.你的内网windows电脑需要设置登录账号和密码,如图。
frp内网穿透实现对内网电脑的远程桌面连接2.png
3.你的内网windows电脑需要设置允许远程连接,如图。
frp内网穿透实现对内网电脑的远程桌面连接3.png

三、详细教程

(一)服务端搭建frps

1.SSH连接vps

输入下方命令获取root权限:

sudo su -

 

2.安装wget
yum -y install wget

 

3.下载文件包
wget https://github.com/fatedier/frp/releases/download/v0.24.1/frp_0.24.1_linux_amd64.tar.gz

 

4.解压文件包
tar -zxvf frp_0.24.1_linux_amd64.tar.gz

 

5.将解压目录名称修改为frp
mv frp_0.24.1_linux_amd64 frp

 

6.进入文件目录
cd frp

7.删除不必要的文件
rm -f frpc
rm -f frpc.ini
rm -f frpc_full.ini
rm -f LICENSE

 

8.设置权限
chmod  x frps

 

9.修改服务器配置文件
(1)输入命令
vi frps.ini

 

(2)清空内容

gg,跳到首行首字符,再按dG,这样就清空文件内容了。注意大小写。

(3)将下面内容修改后,按Insert键,再Ctrl v粘贴进去。
[common]
bind_addr = 0.0.0.0
bind_port = 5443
kcp_bind_port = 5443
dashboard_port = 6443
#认证超时时间,默认900秒
authentication_timeout = 900
#服务端面板的登录用户名,自行设置,后面有用。
dashboard_user = YourUsername
#服务端面板的登录密码,自行设置,后面有用。
dashboard_pwd = YourPassword
vhost_http_port = 80
vhost_https_port = 443
#相当于客户端连接服务端的通关密码,随便设置,后面有用。
token = YourToken
max_pool_count = 50
tcp_mux = true
#你绑定域名的一级域名,假如你给远程桌面绑定frp.baidu.com,这里就填baidu.com。以后你就可以通过frp.baidu.com连接远程桌面了。还不懂?不急,后面一步步来,先照做就行了。
subdomain_host = YourDomain

如果你是新手,端口数字就不要随便修改。

(4)保存并退出编辑
Esc键,再输入
:wq

 

最后回车就OK了。

10.启动frps命令
./frps -c frps.ini

 

如果出现下面画面,说明frp服务端安装并启动成功。
通过frp内网穿透实现内网电脑远程桌面管理教程.png
按ctrl c,进入新的命令行。

11.将frps加入后台启动

否则当关闭ssh命令窗口后,frps会退出。

nohup /root/frp/frps -c /root/frp/frps.ini &

 

12.域名解析到服务端IP

假如以frp.xxx.com远程连接桌面,就将frp解析到你的服务端ip。例如:
frp内网穿透实现对内网电脑的远程桌面连接.png

13.停止frps运行命令

后期你想停止frps运行,可以用下面的命令

pkill frps

 

(二)客户端搭建frpc

在你要被远程操控的内网电脑上安装frpc,本教程的客户端是windows64位系统。

1.下载frp文件

下载地址:点击这里,将压缩包进行解压,重命名解压后的文件夹为frp。

2.删除不必要文件

删除文件夹内的frps、frps.ini、frps_full.ini、LICENSE四个文件。

3.修改配置文件

使用文档方式打开frpc.ini文件,内容清空,将下面内容根据实际情况修改后粘贴进去。

[common]
#你的服务端IP地址
server_addr = ×.×.×.×
#服务端设置的bind_port端口号
server_port = 5443
#服务端设置的token
token = YourToken
[remote]
type = tcp
#客户端所在内网的IP地址
local_ip = 192.168.×.×
local_port = 3389
#远程连接的端口号,可自行设置,默认6900
remote_port = 6900
#绑定二级域名的前缀,默认frp,假如在服务端设置了eyuyun.com。那么远程连接域名就是frp.eyuyun.com。
subdomain = frp

4.创建启动脚本

在文件夹内新建一个txt文本,添加以下内容后,再将该文档重命名为frp.bat。

@echo off
start  "C:\Windows\System32\cmd.exe"
cd "文件所在目录地址,如C:\Users\Administrator\Desktop\frp"
frpc -c frpc.ini
exit

 

双击脚本,弹出命令窗口,如果提示大概如图所示,则说明frp客户端启动成功。
frp内网穿透实现对内网电脑的远程桌面连接.jpg

5.加入开机自动启动服务

网上有教程是新建frpc.vps,然后放进C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup这个目录,这种方法有个问题,就是必须在你重启电脑并输入管理员账号密码后才会自启动frp。

而我们要实现的是在输入管理员密码进入桌面前就启动frp,方法就是将frp注册为系统服务

(1)下载winsw

下载地址:点击这里
下载完成后,重命名为winsw.exe,并放在frp相同的目录中。

(2)创建winsw.xml

在frp相同目录中创建winsw.xml,并加入以下内容(部分自行修改):

<service>
    <id>frp</id>
    <name>frp这里是服务的名称</name>
    <description>这里是服务的介绍,随便写</description>
    <executable>frpc</executable>
    <arguments>-c frpc.ini</arguments>
    <onfailure action="restart" delay="60 sec"/>
    <onfailure action="restart" delay="120 sec"/>
    <logmode>reset</logmode>
</service>

(3)打开CMD命令窗口

以管理员身份创建一个cmd命令窗口,然后cd到frp目录,执行以下两个命令:

winsw install
winsw start

 

大功告成!此时,通过任务管理器中,查看是否有frp这个服务呢!
frp内网穿透实现对内网电脑的远程桌面连接1.png

win r后通过services.msc进入到服务列表页面找到frp服务。

为了确保frpc在连接失败后自动尝试重新连接,在恢复tap页进行如下设置:

(4)winsw其他命令
#停止
winsw stop
#卸载
winsw uninstall

 

四、其他

至此,所有步骤都已完成,win R弹出运行窗口,输入mstsc并确定,输入你绑定的域名,如frp.xxx.com:6900,账户和密码就是你设置的被远程客户端的登录账户和密码。
PS:无论你用的是什么系统,过程都大同小异。如有问题,请在下方留言。