使用Argo Tunnel建站 避免源站泄露
前言
- Tunnel的安装与创建教程看这一篇,此默认用户完成所有配置。
- 本文只有Tunnel相关的内容,网站部署相关内容自行搜索。
配置文件
创建一个隧道并绑定域名,记录隧道id。教程
编辑
config.yml配置文件1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16tunnel: <TUNNEL_ID>
credentials-file: /主目录/.cloudflared/<TUNNEL_ID>.json
ingress:
- hostname: <DOMAIN> #绑定隧道时的域名
service: http://localhost:80 #在80端口上开放http服务
- service: http_status:404
#例子
tunnel: 81f41a92-7556-41dg-831h-21x5575fuh6f
credentials-file: /root/.cloudflared/81f41a92-7556-41dg-831h-21x5575fuh6f.json
ingress:
- hostname: a.domain.com
service: http://localhost:80
- service: http_status:404运行Tunnel
1
systemctl start cloudflared
不出意外的话已经可以正常使用了(意外永远都有)
关闭服务器对外端口
- 设置完成后所有流量都走的Tunnel,可以关闭服务器的80和443端口避免源站暴露。
iptables和firewalld相关教程自行搜索。
Tips
- 网站不要强制https也不用申请证书,Cloudflare会把这一切都帮你办好。
config.yml当中虽然可以使用HTTPS和443端口,但是这除了增加bug和运算量没有任何的好处。- 推荐在Cloudflare开启强制HTTPS、HSTS并且修改SSL加密模式为完全(严格)。
- 重要!不要使用IP访问量防御插件,因为是本地传输,所有的流量都来自127.0.0.1,插件很有可能会直接封禁该地址而导致所有人都无法访问
- Tunnel如果被关闭,Cloudflare会直接显示错误代码,而不是Always Online页面。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 默世之夕!