# 起源
本机的服务需要上线,需要采用穿透技术。
原本使用 ssh/autossh 的技术,但是不够自动化;
ngrok 死活 make 不了,go 语言的锅。
本文采用 frp 进行内网穿透
# 实现
# 前置条件
- 一台服务器,需要开放 7000 端口(ufw 或者你的服务器厂商面板开启)
- 一个域名:
yourdomain.com
- dns 解析二级域名: 为
frps
创建 A 记录到服务器(即frps.yourdomain.com
) - dns 泛解析三级域名: 为
*.frps
创建 CNAME 记录到frps.yourdomain.com
- 为
frps.yourdomain.com
创建根域以及泛解析的 ssl 证书
# 服务端配置
# 稳定实现(已测试)
wget https://github.com/fatedier/frp/releases/download/v0.38.0/frp_0.38.0_linux_amd64.tar.gz | |
tar -xvf frp_0.38.0_linux_amd64.tar.gz | |
mkdir /usr/local/frp | |
mv frp_0.38.0_linux_amd64/* /usr/local/frp/ |
cd /usr/local/frp | |
vim frps.ini |
进行写入:
[common] | |
bind_port = 7000 | |
vhost_http_port = 8080 #这里使用nginx转发的话是将frps.yourdomain.com和frps.yourdomain.com反向代理到8080 | |
subdomain_host = "frps.yourdomain.com" |
启动:
/usr/local/frp/frps -c /usr/local/frp/frps.ini
# 最新特性请获取 frp 最新 release(未测试)
https://github.com/fatedier/frp/releases
# 客户端配置
# 稳定实现(已测试)
wget https://github.com/fatedier/frp/releases/download/v0.38.0/frp_0.38.0_linux_amd64.tar.gz | |
tar -xvf frp_0.38.0_linux_amd64.tar.gz | |
mkdir /usr/local/frp | |
mv frp_0.38.0_linux_amd64/* /usr/local/frp/ |
cd /usr/local/frp | |
vim frps.ini |
进行写入:
# frpc.ini | |
[common] | |
server_addr = "frps.yourdomain.com" | |
server_port = 7000 | |
[app1] | |
type = http | |
local_port = 8000 | |
subdomain = "abc" #abc.yourdomain.com | |
[app2] | |
type = http | |
local_port = 5173 | |
subdomain = "zzz" #zzz.yourdomain.com |
启动:
/usr/local/frp/frpc -c /usr/local/frp/frpc.ini