Frp内网穿透
FRP 是一个使用 Go 语言开发的高性能的反向代理应用,可以帮助您轻松地进行内网穿透,对外网提供服务。FRP 支持 TCP、UDP、HTTP、HTTPS等协议类型,并且支持 Web 服务根据域名进行路由转发。
项目地址:https://github.com/fatedier/frp
安装Frp
FRP 采用 Go 语言开发,支持 Windows、Linux、MacOS、ARM等多平台部署。FRP 安装非常容易,只需下载对应系统平台的软件包,并解压就可用。
这里以 Linux 为例,为了方便管理我们把解压后的目录重命名为 frp :
wget https://github.com/fatedier/frp/releases/download/v0.29.0/frp_0.29.0_linux_amd64.tar.gz```
tar xzvf frp_0.15.1_linux_amd64.tar.gz
mv frp_0.15.1_linux_amd64 frp
FRP 服务端配置
配置 FRP 服务端的前提条件是需要一台具有**公网 IP **的设备。
这里以 Linux 为例,FRP 默认给出两个服务端配置文件,一个是简版的 frps.ini,另一个是完整版本 frps_full.ini。
我们先来看看简版的 frps.ini,通过这个配置可以快速的搭建起一个 FRP 服务端。
$ cat frps.ini
[common]
bind_port = 7000
默认配置中监听的是 7000 端口,可根据自己实际情况修改。
启动 FRP 服务端
$ ./frps -c ./frps.ini
2018/01/25 10:52:45 [I] [service.go:96] frps tcp listen on 0.0.0.0:7000
2018/01/25 10:52:45 [I] [main.go:112] Start frps success
2018/01/25 10:52:45 [I] [main.go:114] PrivilegeMode is enabled, you should pay more attention to security issues
FRP 客户端配置
编辑 frpc.ini
$ vim frpc.ini
[common]
#server_addr 为 FRP 服务端的公网 IP
server_addr = 0.0.0.0
#server_port 为 FRP 服务端监听的端口
server_port = 7000
启动 FRP 客户端
$ ./frpc -c ./frpc.ini
2018/01/25 11:15:49 [I] [proxy_manager.go:284] proxy removed: []
2018/01/25 11:15:49 [I] [proxy_manager.go:294] proxy added: []
2018/01/25 11:15:49 [I] [proxy_manager.go:317] visitor removed: []
2018/01/25 11:15:49 [I] [proxy_manager.go:326] visitor added: []
2018/01/25 11:15:49 [I] [control.go:240] [83775d7388b8e7d9] login to server success, get run id [83775d7388b8e7d9], server udp port [0]
这样就可以成功在 FRP 服务端上成功建立一个客户端连接,当然现在还并不能对外提供任何内网机器上的服务,因为我们并还没有在 FRP 服务端注册任何内网服务的端口。
将服务添加至systemctl
这里以frp服务端为例
将frp/systemd目录下的frps.service复制到/etc/systemd/system/目录下
cp /frp/systemd/frps.service /etc/systemd/system
复制配置文件和二进制文件到相对应的目录
cp /frps /usr/bin
cp /frps.ini /etc/frp
重新加载服务配置
systemctl daemon-reload
下面是我自己的案例
服务端配置文件
[common]
bind_port = 7000
vhost_http_port = 80
vhost_https_port = 443
[common]
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = admin
客户端配置文件
[common]
server_addr = 183.57.44.65
server_port = 7000
[https]
type = https
local_port = 443
custom_domains = xxx.cn
[http]
type = http
local_port = 80
custom_domains = xxx.cn
来源:oschina
链接:https://my.oschina.net/u/4377109/blog/4270639