Skip to content

使用 frp 将本地应用暴露到互联网

准备工作:

  1. 一台服务器(拥有 IPv4)
  2. 一台本地电脑

下载应用:https://github.com/fatedier/frp/releases/

下载时需要注意对应的系统与内核。amdx86 架构,armarm 内核。

根据对应的版本进行下载。解压出来的目录结构如下

shell
.
├── frpc        # frp client 应用程序
├── frpc.toml   # frp client toml 配置文件
├── frps        # frp server 应用程序
├── frps.toml   # frp server toml 配置文件
└── LICENSE

网络原理图

uml diagram

上图为网络原理图,可以在 frps.toml、frpc.toml 中编写配置文件指定映射规则,例如将服务器端(x.x.x.x)的 8000 端口映射到本地电脑(192.168.1.x)的 8000 端口。

配置好之后,在浏览器输入 x.x.x.x:8000 访问的就是本地的 192.168.0.x:8000

配置

服务器配置

toml
[common]
bind_port = 7000 # 绑定的端口

# 服务器后台管理页面【可选】
dashboard_port = 7500
dashboard_user = 'zhengxin'
dashboard_pwd = 'zhengxinonly'

# 访问的 token(重要)
token = 'zhengxinonly'
tcp_mux = true # 允许多路复用

# 日志相关配置
log_file = "/opt/frps/log/frps.log"
log_level = "info"
log_max_days = 3

启动 frp 应用

shell
./frps -c ./frps.toml

客户端配置

toml
serverAddr = "124.222.188.xxx"
serverPort = 7000
auth.method = 'token'
auth.token = 'zhengxinonly'

# 配置远程登录
[[proxies]]
name = "test-tcp"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 6000

还可以配置多种服务

toml
# 配置 HTTP 时,服务器配置需要追加 vhost_http_port=7001
[[proxies]]
name = "http"
type = "http"
localIP = "127.0.0.1"
localPort = 8000
customDomains = ["124.222.188.xxx"] #自定义域名可以是服务器的 ip


[[proxies]]
name = "mysql"
type = "tcp"
localIP = "127.0.0.1"
localPort = 3306
remotePort = 3307


[[proxies]]
type = "tcp"
local_ip = "127.0.0.1"
local_port = 3389
remote_port = 33389

参考