首发于集体博客:方寸之间
前言
最近把在角落里吃灰的树莓派拿了进去,搭建了一个wordpress网站,感觉还不错,不过因为连的是家里的WiFi,所以只能内网拜访,所以就筹备用内网穿透工具配置一下外网拜访。之前内网穿透都是用的Cloudflare的tunnel,收费,配置很简略,而且间接上自家的CDN网络,然而因为家喻户晓的起因,Cloudflare的服务在国内访问速度感人,然而勉强还能用。不过最近在Github上的Trending里看到了这个frp,看了一下文档,发现这个工具配置起来超简略,刚好有台服务器,所以就间接上手了。
集体配置
Client: Raspberrypi 4B + Ubuntu 20.04
Server: Ubuntu 20.04
装置配置frp
服务器端配置
下载解压frp文件,留神安装包的架构:
wget https://github.com/fatedier/frp/releases/download/v0.46.1/frp_0.46.1_linux_amd64.tar.gztar zxvf frp_0.46.1_linux_amd64.tar.gzcd frp_0.46.1_linux_arm64/
配置流程稍稍与客户端配置不同,然而更简略,只须要编辑frps.ini
配置文件,设置监听 HTTP 申请端口,这里我应用的8080端口:
[common]bind_port = 7000 # frp服务的监听端口vhost_http_port = 8080
p.s. 不要遗记凋谢服务器的防火墙端口。
客户端配置
下载解压frp文件,因为我用的是树莓派,所以下载arm64的包:
wget https://github.com/fatedier/frp/releases/download/v0.46.1/frp_0.46.1_linux_arm64.tar.gztar zxvf frp_0.46.1_linux_arm64.tar.gz
编辑frpc.ini
配置文件,设置服务器的IP地址a.b.c.d
及本地机器上 Web 服务监听的端口,并绑定自定义域名:
[common]server_addr = a.b.c.dserver_port = 7000[web]type = httplocal_port = 3000custom_domains = www.yourdomain.com #这里设置域名
到这里就能够应用了,别离启动服务端和客户端即可。
# 服务端./frps -c ./frps.ini# 客户端./frpc -c ./frpc.ini
通过http://www.yourdomain.com
即可拜访web服务。p.s. 不要遗记将www.yourdomain.com
的域名A记录映射到服务器的IP。
Caddy配置
不过因为我的服务器上还部署了其余的web服务,应用了caddy进行反向代理,所以还须要一点额定的配置。编辑caddy的配置文件/etc/caddy/Caddyfile
,增加新域名的反向代理:
www.yourdomain.com { reverse_proxy localhost:8080}
重新启动caddy服务:
sudo systemctl restart caddy
当初就能够通过https://www.yourdomain.com
拜访内网的web服务了,而且Auto HTTPS!!
参考
https://github.com/fatedier/frp/
https://gofrp.org/docs/