Traefik
概述
本指南將使用 Traefik 作為反向代理來存取 Remnawave 面板。我們將把網域指向伺服器並設定 Traefik。Traefik 將自動處理 SSL 憑證的頒發。
您需要擁有已註冊的網域名稱才能繼續。
將網域指向您的伺服器
檢查您的伺服器 IP 位址。最好使用靜態 IPv4 位址。
現在,您需要將網域名稱指向此 IP 位址。
例如:my-super-panel.com -> 193.122.122.122
有兩種方法可以做到這一點:
- 使用 DNS 提供商(例如 Cloudflare、Google Cloud 等)
- 使用註冊商(例如 Namecheap 等)
DNS 提供商
如果您使用 Cloudflare,需要將 A/AAAA 記錄(分別用於 IPv4 和 IPv6)新增到您的 DNS 記錄。
在此處登入您的 Cloudflare 帳戶並選擇所需的網域。
在頁面左側,點擊 DNS,然後點擊 Records。點擊 Create record。
將 Type 設定為 A,將 Name 設定為 @。
如果要使用子網域,應在 Name 欄位中輸入子網域名稱(例如 panel)。
在 IPv4 address 欄位中輸入您的伺服器 IP 位址,然後點擊 Save。
現在需要等待一段時間讓 DNS 記錄更新。
Cloudflare 控制面板中的黃色雲(網域透過 Cloudflare 代理)和灰色雲(網域未透過 Cloudflare 代理)之間有很大區別。
如果 Cloudflare 在您的地區運行良好,最好透過 Cloudflare 代理網域。(黃色雲)

一些 DNS 提供商有不同的介面,但整體流程是相同的。
Traefik 設定
建立 docker-compose.yml
在 /opt/remnawave/traefik 目錄中建立 docker-compose.yml 檔案。
mkdir -p /opt/remnawave/traefik && cd /opt/remnawave/traefik && nano docker-compose.yml
貼上以下設定。
services:
traefik:
image: traefik:latest
container_name: traefik
restart: unless-stopped
security_opt:
- no-new-privileges:true
networks:
- remnawave-network
ports:
- '0.0.0.0:80:80'
- '0.0.0.0:443:443'
environment:
- TZ=UTC
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./traefik.yml:/traefik.yml:ro
- ./letsencrypt:/letsencrypt
- ./config:/config:ro
- ./logs:/var/log/traefik
networks:
remnawave-network:
name: remnawave-network
driver: bridge
external: true
建立靜態設定檔
在 /opt/remnawave/traefik 目錄中建立名為 traefik.yml 的靜態設定檔。
cd /opt/remnawave/traefik && nano traefik.yml
貼上以下設定。
請將 REPLACE_WITH_YOUR_EMAIL 替換為您的電子郵件。
查看下面的設定,注意黃色高亮行。
api:
dashboard: true
debug: true
entryPoints:
http:
address: ":80"
http:
redirections:
entryPoint:
to: https
scheme: https
https:
address: ":443"
serversTransport:
insecureSkipVerify: true
providers:
file:
directory: /config
watch: true
certificatesResolvers:
letsencrypt:
acme:
email: REPLACE_WITH_YOUR_EMAIL
storage: /letsencrypt/acme.json
httpChallenge:
entryPoint: http
log:
level: "INFO"
filePath: "/var/log/traefik/traefik.log"
accessLog:
filePath: "/var/log/traefik/access.log"
建立動態設定檔
在 /opt/remnawave/traefik/config 目錄中建立名為 remnawave.yml 的檔案。
mkdir -p /opt/remnawave/traefik/config && cd /opt/remnawave/traefik/config && nano remnawave.yml
貼上以下設定。
請將 REPLACE_WITH_YOUR_DOMAIN 替換為您的網域名稱。
查看下面的設定,注意黃色高亮行。
http:
routers:
remnawave:
rule: "Host(`REPLACE_WITH_YOUR_DOMAIN`)"
entrypoints:
- https
middlewares:
- remnawave-https-redirect
tls:
certResolver: letsencrypt
service: remnawave
middlewares:
remnawave-https-redirect:
redirectScheme:
scheme: https
services:
remnawave:
loadBalancer:
servers:
- url: "http://remnawave:3000"
啟動容器
docker compose up -d && docker compose logs -f -t
通過 IP 限制面板存取
若要通過 IP 限制面板存取,可以建立名為 ip_allow_list.yml 的 middleware 檔案。
cd /opt/remnawave/traefik/config && nano ip_allow_list.yml
貼上以下設定。
請將 REPLACE_WITH_YOUR_IP 替換為允許的 IP 位址(或使用 CIDR 表示法的 IP 範圍)。
查看下面的設定,注意黃色高亮行。
若您的網域名稱通過 Cloudflare 代理,則需要在 excludedIPs 清單中指定 Cloudflare 的 IP 範圍。
Cloudflare 定期更新其 IP 範圍,建議查閱 Cloudflare 官方頁面 取得最新清單。
http:
middlewares:
ip-allow-list:
ipAllowList:
sourceRange:
- "REPLACE_WITH_YOUR_IP"
ipStrategy:
excludedIPs:
- 73.245.48.0/20
- 103.21.244.0/22
- 103.22.200.0/22
- 103.31.4.0/22
- 141.101.64.0/18
- 108.162.192.0/18
- 190.93.240.0/20
- 188.114.96.0/20
- 197.234.240.0/22
- 198.41.128.0/17
- 162.158.0.0/15
- 104.16.0.0/13
- 104.24.0.0/14
- 172.64.0.0/13
- 131.0.72.0/22
然後需要將 middleware ip-allow-list 新增到 remnawave.yml 設定檔中。
nano remnawave.yml
注意綠色行,這是需要新增的內容。
http:
routers:
remnawave:
rule: 'Host(`REPLACE_WITH_YOUR_DOMAIN`)'
entrypoints:
- https
middlewares:
- remnawave-https-redirect
- ip-allow-list
tls:
certResolver: letsencrypt
service: remnawave
middlewares:
remnawave-https-redirect:
redirectScheme:
scheme: https
services:
remnawave:
loadBalancer:
servers:
- url: 'http://remnawave:3000'
允許公開存取訂閱路徑
為使訂閱系統正常運作,/api/sub/ 路徑必須可公開存取。
同時,面板其餘部分應保持 IP 存取限制的保護。
為此,您需要為同一網域定義兩個獨立的路由器——一個用於 /api/sub/(開放存取),另一個用於其他所有內容(受限存取)。
再次開啟 remnawave.yml 檔案:
nano /opt/remnawave/traefik/config/remnawave.yml
並按如下方式更新路由器設定:
http:
routers:
remnawave-sub:
rule: "Host(`REPLACE_WITH_YOUR_DOMAIN`) && PathPrefix(`/api/sub/`)"
middlewares:
- remnawave-https-redirect
entrypoints:
- https
service: remnawave
tls:
certResolver: letsencrypt
remnawave-secure:
rule: "Host(`REPLACE_WITH_YOUR_DOMAIN`)"
entrypoints:
- https
middlewares:
- remnawave-https-redirect
- ip-allow-list
service: remnawave
tls:
certResolver: letsencrypt
middlewares:
remnawave-https-redirect:
redirectScheme:
scheme: https
services:
remnawave:
loadBalancer:
servers:
- url: "http://remnawave:3000"
此設定使 /api/sub/ 路徑可公開存取,而面板其餘部分仍受 IP 限制。
在瀏覽器中開啟面板
在瀏覽器中開啟設定的網域名稱,您將看到登入頁面。
