搭建Frp内网穿透,实现公网windows远程桌面连接

搭建Frp内网穿透,实现公网windows远程桌面连接

使用Frp内网穿透工具使处于内网中的电脑能够像访问公网电脑一样方便,比如将公司或个人电脑里面的web项目让别人能够访问以便于自己及时修改,或者是进行远程或ssh连接。能够实现内网穿透的还有花生壳,ngrok等,但frp使用起来更加简便灵活,以及项目一直开源,所以本文选择frp作为示例。
Frp 是一个高性能的反向代理应用,可以帮助您轻松地进行内网穿透,对外网提供服务,支持 tcp, http, https 等协议类型,并且 web 服务支持根据域名进行路由转发。


[项目地址][1]

数据准备:

• 公网IP: X.X.X.X
• 内网IP: 192.168.1.101
• 映射到公网的域名:xxx.com
本文中内网电脑使用的是win10系统,公网电脑为win系统。

一. 服务端配置


此脚本是Frp一键部署Linux服务端,像酸酸乳、v2ray 等一键.sh脚本,安装、更新、重启、开机启动等服务。
[脚本代码地址][2]
服务端安装支持:Centos | Debian | Ubuntu (32bit / 64bit)


Install(安装)

1
2
3
1.	wget https://raw.githubusercontent.com/MvsCode/frp-onekey/master/install-frps.sh -O ./install-frps.sh
2. chmod 700 ./install-frps.sh
3. ./install-frps.sh install

Uninstall(卸载)

1
1.	./install-frps.sh uninstall

Update(更新)

1
1.	./install-frps.sh update

服务端相关命令

1
2
3
4
5
6
frps start    #启动frps服务端
frps stop #停止frps服务端
frps restart #重启frps服务端
frps status #显示frps状态
frps config #配置frps服务端
frps version #显示frps版本

脚本将会自动识别机器的IP地址,所有选项支持自定义,也均可默认配置,也就是直接按回车,程序就会使用默认配置进行安装


步骤说明:

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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46

Please select frps download url:
[1].aliyun
[2].github (default)
#输入下载frp服务端配置文件的服务器,默认GitHub
Please input frps bind_port[1-65535](Default Server Port: 5443):
#输入frp提供服务的端口,用于服务器端和客户端通信,默认5443
Please input frps vhost_http_port[1-65535](Default : 80):
#输入frp进行http穿透的http服务端口,默认80
Please input frps vhost_https_port[1-65535](Default : 443):
#输入frp进行https穿透的https服务端口,默认443
Please input frps dashboard_port [1-65535]
(Default : 6443):
#输入frp的控制台服务端口,用于查看frp工作状态,默认6443
Please input frps dashboard_user(Default :admin):
#输入frp的控制台服务账号,默认admin
Please input frps dashboard_pwd(Default :ZBdmQ53):
#输入frp的控制台服务密码,默认是随机生成的
Please input frps token(Default :eOajAGbI5ZrSmU3a):
#输入frp服务器和客户端通信的密码,默认是随机生成的
Please input frps subdomain_host(Default :35.189.139.184):
#输入frp服务器自定义域名,支持自定义二次域名,默认是服务器IP地址
Please input frps max_pool_count [1-200]
(Default : 50):
#设置每个代理可以创建的连接池上限,默认50
Please select log_level
1: info (default)
2: warn
3: error
4: debug
#设置日志等级,4个选项,默认是info
Please input frps log_max_days [1-30]
(Default : 3 day):
#设置日志保留天数,范围是1到30天,默认保留3天。
Please select log_file
1: enable (default)
2: disable
#设置是否开启日志记录,默认开启,开启后日志等级及保留天数生效,否则等级和保留天数无效
Please select tcp_mux
1: enable (default)
2: disable
#客户端和服务器端之间的连接支持多路复用,默认开启
Please select kcp support
1: enable (default)
2: disable
#选择是否开启kcp 协议,默认开启,弱网环境下传输效率提升明显,但会有额外的流量消耗

启动成功后,本地访问 http://ip或者自定义域名:6433 即可看到WEB控制台。到此安装服务端成功!

二. 客户端配置


具有内网IP的电脑将作为客户端(frpc), 本文中客户端使用的是win10 64位系统,所以在releases页面下载frp_0.25.0_windows_amd64.zip解压,只需保留frpc frpc.ini两个文件,其他可以删除


通过 ssh 访问公司内网机器(例)
修改 frps.ini 文件,这里使用了最简化的配置:

1
2
3
[common]
bind_port = 7000 #与客户端绑定的进行通信的端口
token = 1234 #身份验证

修改完成后在此此文件目录下启动服务 执行此命令

1
2
3
4
•	前台启动
./frps -c ./frps.ini
• 后台启动
nohup ./frps -c ./frps.ini &

修改 frpc.ini 文件,假设 frps 所在服务器的公网 IP 为 x.x.x.x

1
2
3
4
5
6
7
8
9
10
[common]
server_addr = x.x.x.x #公网服务器ip
server_port = 7000 #与服务端bind_port一致
token = 1234 #身份验证

[ssh]
type = tcp #连接协议
local_ip = 127.0.0.1 #内网服务器IP
local_port = 3389 #ssh远程端口号
remote_port = 6000 #自定义访问内部ssh端口号

修改完成后在此此文件目录下启动服务 执行此命令

1
2
3
4
•	前台启动
./frpc -c ./frpc.ini
• 后台启动
nohup ./frpc -c ./frpc.ini &

三. 设置开机启动和后台运行


同样的道理,也需要对客户端设置后台运行和开机自启。借助[winsw][4]工具可以将frpc注册为windows系统中的服务。
下载winsw最新版,为了方便将其重命名为winsw.exe, 将该文件和frpc.exe放在一起,然后新建winsw.xml写入以下内容:


1
2
3
4
5
6
7
8
9
10
<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>

然后使用winsw install和winsw start命令即可将frpc安装为系统服务。
win+r后通过services.msc进入到服务列表页面找到frp服务。为了确保frpc在连接失败后自动尝试重新连接,在恢复tap页进行如下设置:

使用微软远程工具,填入公网IP,ssh端口号以及主机名,设置如下:

使用问题

1.检查是否关闭服务端防火墙或者是开启要用到的端口
2.域名映射是否正确,检查能不能ping得通域名(域名前面不要忘了www)


搭建Frp内网穿透,实现公网windows远程桌面连接
https://couurh.github.io/posts/5d6d9dc8.html
Author
Couurh
Posted on
July 11, 2020
Licensed under