frp简介
什么是frp
https://github.com/fatedier/frp
frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。
为什么使用 frp ?
通过在具有公网 IP 的节点上部署 frp 服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能特性,这包括:
- 客户端服务端通信支持 TCP、KCP 以及 Websocket 等多种协议。
- 采用 TCP 连接流式复用,在单个连接间承载更多请求,节省连接建立时间。
- 代理组间的负载均衡。
- 端口复用,多个服务通过同一个服务端端口暴露。
- 多个原生支持的客户端插件(静态文件查看,HTTP、SOCK5 代理等),便于独立使用 frp 客户端完成某些工作。
- 高度扩展性的服务端插件系统,方便结合自身需求进行功能扩展。
- 服务端和客户端 UI 页面。
开始
本教程教你配置远程连接你的windows桌面。(前提是你需要有一台具有公网ip的服务器)
frp分为服务端和客户端,服务端一般是服务器,而客户端一般是你自己的电脑。
服务端配置
下载frp(linux_amd64)
wget https://github.com/fatedier/frp/releases/download/v0.34.3/frp_0.34.3_linux_amd64.tar.gz
解压
tar -zxvf frp_0.34.3_linux_amd64.tar.gz
删除压缩包
rm frp_0.34.3_linux_amd64.tar.gz
目录结构
.
├── frpc
├── frpc_full.ini
├── frpc.ini
├── frps
├── frps_full.ini
├── frps.ini
├── LICENSE
└── systemd
├── frpc.service
├── frpc@.service
├── frps.service
└── frps@.service
服务端你可以把frpc有关的全部删掉,因为用不上,同样,客户端删除frps相关的文件。
配置frps.ini
[common]
bind_port = 7000
dashboard_user = admin
dashboard_pwd = 123456
dashboard_port = 7500
然后在frp_0.34.3_linux_amd64的目录下执行 frps -c frps.ini
就启动frps了。
同时,我们还配置了一个监控面板。浏览器访问你的ip+7500端口号即可!(注:服务器安全组把这些需要使用的端口全部放行)
按道理来说server端到这里应该结束了。还有一点小东西留在后面讲。
客户端配置
windows下载这个版本:
https://github.com/fatedier/frp/releases/download/v0.34.3/frp_0.34.3_windows_amd64.zip
下载完解压后同样把frps相关文件全部删掉。(systemd整个文件夹都可以删掉,因为用不上)
配置frpc.ini
[common]
server_addr = 0.0.0.0
server_port = 7000
[RemoteDesktop]
type = tcp
local_port = 3389
remote_port = 7001
0.0.0.0换成你的服务器ip。
启动frpc
frpc.exe -c frpc.ini
这样就可以了,用别的电脑试试不出意外的话连上是没问题的。
注意,如果用手机或者平板的不要用VNC Viewer
,要用RD Client
这个微软的软件,因为他们的协议是不一样的,所以不可能连的上。
配置成服务
我们的目的的确是达成了,但是发现两边都启动一次有点麻烦啊!所以把他们注册成Service吧!
server自启动
fprs里面有个systemd文件夹,里面帮我们写好了服务内容。
[Unit]
Description=Frp Server Service
After=network.target
[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/usr/bin/frps -c /etc/frp/frps.ini
[Install]
WantedBy=multi-user.target
将frps剪切到 /usr/bin/,frps.ini剪切到 /etc/frp/frps.ini,frps.service剪切到/etc/systemd/system/
#刷新服务列表:
systemctl daemon-reload
#设置开机自启 systemctl enable frpc
#关闭开机自启 systemctl disable frpc
#启动服务 systemctl start frpc
#停止服务 systemctl stop frpc
client自启动
windows将软件注册为服务需要winsw
这个软件,下载地址:https://github.com/winsw/winsw/releases 下x64版本即可!https://github.com/winsw/winsw/releases/download/v3.0.0-alpha.6/WinSW.NETCore.x64.exe,下载完成之后将exe文件放进frpc文件夹中。
为了方便,我把它改成了winsw.exe
同时,在同级目录下创建winsw.xml
<service>
<id>frpc</id>
<name>Frp Client</name>
<description>Frp Client内网穿透</description>
<executable>frpc</executable>
<arguments>-c frpc.ini</arguments>
<onfailure action="restart" delay="300 sec"/>
<onfailure action="restart" delay="900 sec"/>
<logmode>reset</logmode>
</service>
用管理员权限打开cmd,在从cmd中进入到你的frpc文件夹中。
执行:
winsw install
winsw start
这样就将frpc注册为服务了。大功告成!
更多功能,请看官方文档: