深浅模式
frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议,且支持 P2P 通信。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。
公网服务器部署配置
根据系统名称及架构下载frp:https://github.com/fatedier/frp/releases
shell
sudo uname -s
sudo uname -m
上传压缩包到 /opt/frp 目录,修改 frps.toml 文件
toml
#服务绑定的IP与端口
bindAddr = "0.0.0.0"
bindPort = 7000
#web dashboard配置
webServer.addr = "0.0.0.0"
webServer.port = 7500
webServer.user = "frp"
webServer.password = "frp"
#启用prometheus监控指标
enablePrometheus = true
#token权限验证,需与客户端配置一致
auth.method = "token"
auth.token = "123456"
#日志配置
log.to = "./frps.log"
log.level = "info"
log.maxDays = 3
启动frps服务:
命令行
shell./frps -c ./frps.toml
后台启动
shellnohup ./frps -c ./frps.toml &> /dev/null &
系统服务
sudo vim /etc/systemd/system/frps.service
shell[Unit] Description=FRP Server Service After=network.target [Service] Type=simple ExecStart=/opt/frp/frps -c /opt/frp/frps.toml Restart=on-failure RestartSec=5s User=frps Group=frps [Install] WantedBy=multi-user.target
配置 frps 用户和用户组
shellsudo useradd -r -s /bin/false frps
-r
选项创建一个系统用户。-s /bin/false
选项确保该用户无法登录。配置用户权限
shellsudo chown -R frps:frps /opt/frp
启动服务
shellsudo systemctl daemon-reload sudo systemctl start frps sudo systemctl enable frps
查看日志
shellsudo journalctl -u frps -f
内网客户端部署配置
修改 frpc.toml 文件
toml
#配置公网服务器上frp服务的IP与端口
serverAddr = ""
serverPort = 7000
# web dashboard配置
webServer.addr = "0.0.0.0"
webServer.port = 7400
# webServer.user = "admin"
# webServer.password = "admin"
#日志配置
log.to = "./frpc.log"
log.level = "info"
log.maxDays = 3
#token权限验证,需与服务端配置一致
auth.method = "token"
auth.token = ""
#代理配置,这里使用引用文件的方式
includes = ["./proxy_conf/*.toml"]
代理服务配置:proxy_conf 目录下 xxx.toml 文件
toml
[[proxies]]
name = "demo" #名称
type = "tcp" #代理类型
localIP = "127.0.0.1" #本地IP
localPort = 8000 #内网服务监听的端口
remotePort = 8500 #需要在公网服务器上监听的端口
官方示例配置
中文: https://gofrp.org/zh-cn/docs/examples/
其他内网穿透方案
cloudflare:https://one.dash.cloudflare.com/networks/tunnels
ngrok: https://ngrok.com