15 lines
1005 B
Bash
15 lines
1005 B
Bash
#!/bin/sh
|
|
set -eu
|
|
cd "$(dirname "$0")/.."
|
|
hop_tunnel_peers=$(sudo docker inspect --format '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{"\n"}}{{.Gateway}}{{"\n"}}{{.GlobalIPv6Address}}{{"\n"}}{{.IPv6Gateway}}{{"\n"}}{{end}}' cloudflared-tunnel | awk 'NF { print }' | sort -u)
|
|
hop_proxy_gateways=$(sudo docker inspect --format '{{range .NetworkSettings.Networks}}{{.Gateway}}{{"\n"}}{{.IPv6Gateway}}{{"\n"}}{{end}}' nginx-proxy-manager-app-1 | awk 'NF { print }' | sort -u)
|
|
if [ -z "$hop_tunnel_peers" ]; then
|
|
printf '%s\n' 'Tunnel의 Docker 네트워크 주소를 확인할 수 없습니다. 네트워크 설정을 먼저 확인하세요.' >&2
|
|
exit 1
|
|
fi
|
|
printf '%s\n' 'client_max_body_size 2048m;' 'proxy_read_timeout 3600s;' 'proxy_send_timeout 3600s;' 'set $hop_tunnel_allowed 0;'
|
|
for hop_peer in $hop_tunnel_peers $hop_proxy_gateways; do
|
|
printf 'if ($realip_remote_addr = "%s") { set $hop_tunnel_allowed 1; }\n' "$hop_peer"
|
|
done
|
|
printf '%s\n' 'if ($hop_tunnel_allowed = 0) { return 403; }'
|