网络穿透 frp

frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp 协议,为 http 和 https 应用协议提供了额外的能力,且尝试性支持了点对点穿透。
项目地址:https://github.com/fatedier/frp


功能概括:用户可以通过访问公网的 server 的 ip+port,访问部署在内网的某个服务。如下图:

image.png

开始部署

假设公网服务器IP 为:1.2.3.4、内网服务器IP 为:192.168.1.2
在公网 1.2.3.4 上部署 frps,然后在内网 192.168.1.2 上部署 frpc,并注册到 frps上,就可以使用了。

下载 frp

frps 和 frpc 都是使用同一个包。

# 下载最新版本
https://github.com/fatedier/frp/releases/tag/v0.45.0
# 解压
tar zxf frp_0.45.0_linux_amd64.tar.gz
mv frp_0.45.0_linux_amd64 frp_0.45.0

部署 server 端

  • 修改 frps.ini 配置文件,这里使用了最简化的配置,服务监听在 9070
[common]
# 默认是 TCP 端口
bind_port = 9070
# 开启 kcp 协议加速
# kcp 绑定的是 udp 端口,可以和 bind_port 一样
kcp_bind_port = 9070
  • 启动 frps,这里用的后台启动,建议先前台调试。
nohup /opt/frp_0.45.0/frps -c /opt/frp_0.45.0/frps.ini >/dev/null 2>&1 &

部署 client 端

  • 修改 frpc.ini 配置文件,
[common]
server_addr = 1.2.3.4
# server_port 指定为 frps 的 kcp_bind_port
server_port = 9070
# 指定需要使用的协议类型
protocol = kcp
tls_enable = true
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 7022
# 启用加密与压缩
use_encryption = true
use_compression = true
  • 启动 frpc,这里用的后台启动,建议先前台调试。
nohup /opt/frp_0.45.0/frpc -c /opt/frp_0.45.0/frpc.ini >/dev/null 2>&1 &

使用效果

通过 ssh 访问 1.2.3.4:7022 实际登录的是 192.168.1.2 这台内网服务器。

扩展

Dashboard

  • 修改 frps.ini 配置文件,新增 dashboard 配置
[common]
bind_port = 9070
kcp_bind_port = 9070
dashboard_port = 7500
# dashboard's username and password are both optional
dashboard_user = admin
dashboard_pwd = admin

访问:http://1.2.3.4:7500


image.png

你可能感兴趣的:(网络穿透 frp)