使用 frp 将本地应用暴露到互联网
准备工作:
- 一台服务器(拥有 IPv4)
- 一台本地电脑
下载应用:https://github.com/fatedier/frp/releases/
下载时需要注意对应的系统与内核。amd
是 x86
架构,arm
是 arm
内核。
根据对应的版本进行下载。解压出来的目录结构如下
shell
.
├── frpc # frp client 应用程序
├── frpc.toml # frp client toml 配置文件
├── frps # frp server 应用程序
├── frps.toml # frp server toml 配置文件
└── LICENSE
网络原理图
上图为网络原理图,可以在 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