内网穿透--frp


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注册为服务了。大功告成!

更多功能,请看官方文档:

https://github.com/fatedier/frp/blob/dev/README_zh.md

https://gofrp.org/docs/


文章作者: 布莱恩特科比酱
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 布莱恩特科比酱 !
评论
  目录