Hướng dẫn này giải thích cách sử dụng Caddy, một máy chủ web mạnh mẽ và thân thiện với người dùng, để nâng cao chế độ thiết lập máy chủ Outline. Các tính năng HTTPS tự động và cấu hình linh hoạt của Caddy là lựa chọn tuyệt vời để phân phát máy chủ Outline, đặc biệt là khi sử dụng phương thức truyền tải WebSocket.
Caddy là gì?
Caddy là một máy chủ web nguồn mở nổi tiếng với khả năng dễ sử dụng, HTTPS tự động và hỗ trợ nhiều giao thức. Công cụ này giúp đơn giản hoá cấu hình máy chủ web và cung cấp các tính năng như:
- HTTPS tự động: Caddy tự động lấy và gia hạn chứng chỉ TLS, đảm bảo các kết nối an toàn.
- Hỗ trợ HTTP/3: Caddy hỗ trợ giao thức HTTP/3 mới nhất để lưu lượng truy cập web nhanh hơn và hiệu quả hơn.
- Mở rộng bằng Trình bổ trợ: Bạn có thể mở rộng Caddy bằng các trình bổ trợ để hỗ trợ nhiều chức năng, bao gồm cả tính năng proxy ngược và cân bằng tải.
Bước 1: Điều kiện tiên quyết
- Tải xuống và cài đặt
xcaddy
Bước 2: Định cấu hình miền
Trước khi khởi động Caddy, hãy đảm bảo tên miền của bạn được định cấu hình chính xác để trỏ đến địa chỉ IP của máy chủ.
- Thiết lập bản ghi A/AAAA: Đăng nhập vào nhà cung cấp dịch vụ DNS và thiết lập bản ghi A và AAAA cho miền của bạn để trỏ đến địa chỉ IPv4 và IPv6 của máy chủ tương ứng.
Xác minh bản ghi DNS: Xác minh rằng bạn đã thiết lập bản ghi DNS đúng cách bằng một truy vấn có thẩm quyền:
curl "https://cloudflare-dns.com/dns-query?name=DOMAIN_NAME&type=A" \ -H "accept: application/dns-json"
Bước 3: Tạo và chạy bản dựng Caddy tuỳ chỉnh
Khi sử dụng xcaddy
, bạn có thể tạo một tệp nhị phân caddy
tuỳ chỉnh bao gồm mô-đun máy chủ cốt lõi Outline và các mô-đun tiện ích máy chủ cần thiết khác.
xcaddy build \
# The example uses a YAML config, so include a YAML config adapter module.
--with github.com/iamd3vil/caddy_yaml_adapter \
# The Outline core server module.
--with github.com/Jigsaw-Code/outline-ss-server/outlinecaddy
Bước 4: Định cấu hình và chạy máy chủ Caddy bằng Outline
Tạo tệp config.yaml
mới có cấu hình sau:
apps:
http:
servers:
server1:
listen:
- ":443"
routes:
- match:
- host:
- 'DOMAIN_NAME'
- path:
- "/TCP_PATH"
handle:
- handler: websocket2layer4
type: stream
connection_handler: ss1
- match:
- host:
- 'DOMAIN_NAME'
- path:
- "/UDP_PATH"
handle:
- handler: websocket2layer4
type: packet
connection_handler: ss1
outline:
shadowsocks:
replay_history: 10000
connection_handlers:
- name: ss1
handle:
handler: shadowsocks
keys:
- id: user-1
cipher: chacha20-ietf-poly1305
secret: SHADOWSOCKS_SECRET
Cấu hình này thể hiện chiến lược Shadowsocks qua WebSockets với một máy chủ web đang nghe trên cổng 443
, chấp nhận lưu lượng truy cập được gói TCP và UDP Shadowsocks tại các đường dẫn TCP_PATH và UDP_PATH tương ứng.
Chạy máy chủ Caddy được mở rộng bằng Outline bằng cấu hình đã tạo:
caddy run --config config.yaml --adapter yaml --watch
Bạn có thể tìm thấy thêm các cấu hình mẫu trong kho lưu trữ GitHub outline-ss-server/outlinecaddy.
Bước 5: Tạo khoá truy cập động
Tạo tệp YAML khoá truy cập ứng dụng cho người dùng bằng định dạng cấu hình nâng cao và bao gồm các điểm cuối WebSocket đã được định cấu hình trước đó ở phía máy chủ:
transport:
$type: tcpudp
tcp:
$type: shadowsocks
endpoint:
$type: websocket
url: wss://DOMAIN_NAME/TCP_PATH
cipher: chacha20-ietf-poly1305
secret: SHADOWSOCKS_SECRET
udp:
$type: shadowsocks
endpoint:
$type: websocket
url: wss://DOMAIN_NAME/UDP_PATH
cipher: chacha20-ietf-poly1305
secret: SHADOWSOCKS_SECRET
Sau khi tạo tệp YAML khoá truy cập động, bạn cần cung cấp tệp đó cho người dùng. Bạn có thể lưu trữ tệp trên một dịch vụ lưu trữ web tĩnh hoặc tạo tệp một cách linh động. Tìm hiểu thêm về cách sử dụng Khoá truy cập động.
Bước 6: Kết nối với ứng dụng Outline
Sử dụng một trong các ứng dụng Outline Client (ứng dụng Outline) chính thức (phiên bản 1.15.0 trở lên) và thêm khoá truy cập động mới tạo làm mục nhập máy chủ. Nhấp vào Connect (Kết nối) để bắt đầu tạo đường hầm đến máy chủ của bạn bằng cấu hình Shadowsocks-over-Websocket.
Sử dụng một công cụ như IPInfo để xác minh rằng bạn hiện đang duyệt Internet thông qua máy chủ Outline.