Tự host SimpleX SMP relay trên VPS từ A đến Z
Hướng dẫn tự host SimpleX SMP relay trên VPS: pin version, lấy fingerprint cho client, mở port, chạy user không có quyền root, backup, TLS và threat model.
Máy chủ SimpleX tự host làm gì
Để tự host một máy chủ SimpleX, bạn chạy một daemon trên VPS: smp-server, relay cho SMP (simplex messaging protocol). Daemon này lưu các hàng đợi tin nhắn để contact của bạn ghi và đọc. Một daemon tùy chọn thứ hai, có tên xftp-server, relay các lượt truyền file. Cả hai đều thuộc cùng một project, simplexmq, và mỗi daemon chỉ gồm một binary, một file cấu hình và một log chỉ ghi nối tiếp.
Nội dung này dành cho operator, không phải người dùng app. Relay không lưu account, danh sách contact hay lịch sử chat. Nó lưu các hàng đợi, một phần ciphertext chưa được chuyển và một certificate dùng để định danh nó. Những gì bạn phải đảm bảo là uptime, một ít dung lượng đĩa và metadata đi qua máy chủ của bạn.
Mọi command, path, port và flag bên dưới đều lấy từ tài liệu chính thức của project: trang hosting SMP server, trang XFTP server và tài liệu bảo mật protocol. Khi một con số quan trọng, tài liệu nguồn của con số đó được nêu ngay bên cạnh.
Vì sao một mạng không có mã định danh người dùng vẫn cần relay
SimpleX không có username, số điện thoại hay account ID. Một contact là một queue một chiều: một địa chỉ trên một relay, nơi một phía ghi dữ liệu và phía còn lại đọc dữ liệu. Hai contact của bạn không dùng chung mã định danh nào để server có thể liên kết chúng với nhau.
Các queue đó vẫn phải được lưu ở đâu đó vì một lý do đơn giản. Hai điện thoại hiếm khi online cùng một thời điểm. Phải có nơi nhận message ngay lúc này và giữ lại cho đến khi thiết bị kia yêu cầu. Đó là toàn bộ nhiệm vụ của SMP relay. Điều này cũng có nghĩa là hai thiết bị không bao giờ kết nối trực tiếp với nhau, nên không thiết bị nào biết địa chỉ IP (internet protocol) của thiết bị còn lại. Thay vào đó, relay che chắn thông tin này.
Hostname của relay là một phần của địa chỉ queue, nên nó xuất hiện trong mọi invitation link bạn tạo từ relay đó. Hãy ghi nhớ điều này khi đọc threat model ở phần cuối.
Relay có thể và không thể nhìn thấy gì
Dự án mô tả đây là mô hình mối đe dọa trong protocol/security.md. Bạn nên đọc phần này trước khi cài đặt, vì sau khi làm theo hướng dẫn này, relay đó sẽ thuộc quyền quản lý của bạn. Relay, kể cả relay do kẻ tấn công kiểm soát hoàn toàn, không thể biết nội dung hoặc loại message, không thể âm thầm thêm, nhân bản hoặc làm hỏng từng message, và không thể phá vỡ mã hóa đầu cuối bằng một cuộc tấn công chủ động.
Trang này cũng liệt kê những việc relay có thể làm. Relay có thể biết khi recipient của queue đang online. Relay có thể đếm số message đi qua một queue. Relay có thể biết địa chỉ IP của recipient. Relay có thể loại bỏ mọi message trong tương lai của một queue hoặc nói sai về trạng thái của queue.
Vì vậy, ranh giới được phân định rõ. Client chịu trách nhiệm về tính bảo mật, và việc self-host không ảnh hưởng đến phần này. Operator của relay chịu trách nhiệm về metadata và khả dụng. Khi self-host, bạn tự chịu trách nhiệm cho cả hai yếu tố đó.
Bạn cần chuẩn bị gì trước khi bắt đầu
- Một VPS chạy Ubuntu 22.04 hoặc 24.04. Dự án phát hành các binary release được build chính xác cho hai phiên bản này, trên x86-64 và aarch64.
- Một domain có bản ghi A trỏ đến VPS, cùng bản ghi AAAA nếu bạn dùng IPv6. Tài liệu dùng
smp1.example.comlàm ví dụ. - Quyền truy cập root hoặc
sudo, và một phiên SSH thứ hai đang mở trong khi bạn thay đổi firewall. - Một nơi ngoài máy chủ để lưu backup, vì thư mục cấu hình chính là danh tính của server.
Trên instance ARM, hãy dùng asset aarch64 thay cho x86-64. Không có phần nào khác trong hướng dẫn này thay đổi, và việc chọn gói VPS ARM hay x86 liên quan đến giá và tốc độ trên mỗi core, không liên quan đến việc phần mềm này có chạy được hay không.
Cài bản phát hành cố định, không dùng "latest"
Dự án cung cấp install script để tải bản phát hành hiện tại và đăng ký lệnh simplex-servers-update. Cách này vẫn hoạt động. Tuy nhiên, hãy cố định version: nếu binary của relay tự thay đổi mà bạn không kiểm soát, bạn sẽ không thể phân tích nguyên nhân khi có sự cố.
Tính đến tháng 8 năm 2026, bản phát hành simplexmq hiện tại là v6.5.0, được phát hành vào ngày 29 tháng 4 năm 2026. Kiểm tra trang releases để lấy tag bạn muốn dùng, rồi sử dụng tag đó ở mọi nơi bên dưới.
sudo useradd -m smp
sudo install -d -o smp -g smp -m 755 /etc/opt/simplex /var/opt/simplexuseradd -m smp không đặt password, nên không ai đăng nhập trực tiếp bằng smp. Tự tạo 2 thư mục này trước khi chạy bất kỳ lệnh nào khác, vì /etc/opt thuộc root và có mode 755. Do đó, user smp không có chỗ để ghi thư mục cấu hình của mình.
VER=v6.5.0
curl -fL "https://github.com/simplex-chat/simplexmq/releases/download/$VER/smp-server-ubuntu-24_04-x86-64" -o /tmp/smp-server
sha256sum /tmp/smp-serverĐối chiếu hash đó với các checksum SHA2-256 được công bố trong release notes của cùng tag. Dự án cũng ký các checksum của bản phát hành bằng key SimpleX Chat FB44AF81A45BDE327319797C85107E357D4A17FC, được mô tả trên trang server. Vì vậy, bạn có thể xác minh chữ ký thay vì tin vào trang mà bạn đã lấy hash.
sudo install -m 755 -o root -g root /tmp/smp-server /usr/local/bin/smp-serverCố ý cài đặt với owner là root. Service chạy bằng smp, nên nếu service bị breach, tiến trình đó không thể ghi đè binary mà nó khởi chạy.
Khởi tạo server và lưu lại 2 secret mà lệnh in ra
sudo su smp -c "smp-server init --yes --store-log --daily-stats --no-password --fqdn=smp1.example.com"--store-log(-l) ghi log append-only của các queue vào/var/opt/simplex/smp-server-store.logđể relay vẫn giữ được trạng thái sau khi restart. Nếu không có tùy chọn này, restart sẽ xóa toàn bộ queue, khiến mọi contact được định tuyến qua bạn ngừng hoạt động.--daily-stats(-s) ghi các counter dưới dạng CSV vào/var/opt/simplex/smp-server-stats.daily.log.--fqdnđưa domain của bạn vào certificate được tạo. Dùng--ipnếu bạn không có domain.--no-passwordcho phép bất kỳ ai tạo queue trên relay của bạn. Để giữ relay ở chế độ private, hãy đặtcreate_passwordbên dưới[AUTH]trong/etc/opt/simplex/smp-server.inisau khi init, thay vì truyền--passwordở đây. Command line có thể xuất hiện trong shell history và process list trong lúc lệnh chạy.
Init tạo một certificate và in ra 2 giá trị bạn phải lưu lại. Giá trị thứ nhất là fingerprint, một chuỗi base64 cũng được ghi vào /etc/opt/simplex/fingerprint. Giá trị thứ hai là địa chỉ server đầy đủ, gồm fingerprint và hostname của bạn. Hãy copy cả 2 giá trị ngay bây giờ.
Init cũng tạo /etc/opt/simplex/ca.key, và tài liệu hướng dẫn bạn chuyển file này sang offline storage. Lý do cần làm vậy là: client pin fingerprint của certificate authority đó, nên bất kỳ ai có ca.key đều có thể cấp một server certificate mới mà client của bạn chấp nhận là certificate của chính bạn. Bạn chỉ cần đưa file này trở lại khi muốn rotate server certificate bằng smp-server cert.
Hãy xem init là bước chỉ thực hiện một lần. Fingerprint trong địa chỉ của bạn được tạo từ authority này, nên nếu tạo lại authority, bạn sẽ có một địa chỉ khác và địa chỉ đã cung cấp trước đó sẽ không còn dùng được.
Chạy dưới systemd bằng user không có đặc quyền
Viết /etc/systemd/system/smp-server.service, chính xác như trong tài liệu:
[Unit]
Description=SMP server systemd service
[Service]
User=smp
Group=smp
Type=simple
ExecStart=/usr/local/bin/smp-server start +RTS -N -RTS
ExecStopPost=/usr/bin/env sh -c '[ -e "/var/opt/simplex/smp-server-store.log" ] && cp "/var/opt/simplex/smp-server-store.log" "/var/opt/simplex/smp-server-store.log.bak"'
LimitNOFILE=65535
KillSignal=SIGINT
TimeoutStopSec=infinity
[Install]
WantedBy=multi-user.targetUnit upstream cũng có AmbientCapabilities=CAP_NET_BIND_SERVICE. Dòng này cần thiết vì tiến trình chạy dưới quyền smp, còn các cổng dưới 1024 không cho phép tiến trình không phải root bind vào. Nếu phục vụ trên các cổng đó, hãy thêm dòng này. LimitNOFILE=65535 quan trọng vì mỗi client đã subscribe đều giữ một kết nối TCP mở, trong khi giới hạn mặc định thấp hơn nhiều so với nhu cầu của một relay bận. ExecStopPost sao chép log của store vào một file .bak sau mỗi lần dừng, nhờ đó bạn luôn có sẵn một điểm rollback.
sudo systemctl daemon-reload
sudo systemctl enable --now smp-server
sudo systemctl status smp-server
sudo journalctl -fu smp-serverKhi khởi động thành công, log sẽ ghi địa chỉ server. Sau đó xác nhận các socket thực sự đang mở:
sudo ss -tlnp | grep -E ':(443|5223)'Cả hai dòng phải ghi smp-server. Chạy daemon bằng account riêng, không có quyền sudo, là cùng một nguyên tắc với account riêng cho từng service trên VPS. Cách này ngăn lỗi trong một network daemon biến thành root shell.
Cần mở cổng nào và nên giữ cổng nào đóng
Tài liệu liệt kê 3 cổng: 5223/tcp, 443/tcp và 80/tcp. Cổng 5223 là transport SMP. Cấu hình được cung cấp đặt port: 5223,443 trong [TRANSPORT], nên cùng protocol này cũng nhận kết nối trên cổng 443. Điều này quan trọng vì nhiều mạng hạn chế chỉ cho phép kết nối outbound qua cổng 443. Cổng 80 chỉ cần cho trang thông tin tùy chọn và redirect sang HTTPS.
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 5223/tcp
sudo ufw enableKhông mở cổng 5224. Đây là control port. Tài liệu truy cập cổng này từ chính máy chủ bằng nc 127.0.0.1 5224. Cổng này hiển thị trạng thái server và xóa các queue, nên phải giới hạn trên loopback. Đồng thời đặt mật khẩu admin và user trong [AUTH]. Nếu bạn mới dùng tool này, phần cơ bản về ufw trên VPS giải thích thứ tự rule và cách tránh tự khóa quyền truy cập vào server.
Có thêm một lớp kiểm soát dễ bị bỏ qua. Hầu hết nhà cung cấp đều có network firewall trong panel, tách biệt với ufw trên máy chủ. Một cổng có thể đã mở trong ufw nhưng vẫn bị drop trước khi traffic đến được máy chủ.
Địa chỉ server mà client của bạn cần
smp://<fingerprint>[:<password>]@<public_hostname>[,<onion_hostname>]Chuỗi này là toàn bộ cấu hình phía client. Dán chuỗi vào phần cài đặt server của app hoặc cho người khác quét QR code mà app hiển thị. Tài liệu lưu ý rằng QR code chứa cả password, vì vậy người quét có thể nhận message qua server của bạn.
Có một hành vi được ghi rõ trong tài liệu nhưng thường khiến mọi người bất ngờ. Việc thêm server vào app chỉ ảnh hưởng đến các contact bạn tạo từ thời điểm đó trở đi. Các contact hiện có vẫn nằm trên relay nơi queue của chúng được tạo và không được migrate. Vì vậy, bạn không thể tắt relay vào ngày hôm sau chỉ vì đã thay relay.
Thêm file relay XFTP
XFTP (SimpleX file transfer protocol) là phần truyền file của mạng và chạy dưới dạng một daemon riêng với địa chỉ riêng. Theo thông báo XFTP của dự án, relay không có metadata về file: chúng chỉ thấy từng chunk, có kích thước 256kb, 1mb hoặc 4mb, với quyền truy cập được cấp bằng credential ẩn danh. Bên gửi có thể phân tán các chunk của một file qua nhiều relay, vì vậy máy chủ của bạn chỉ lưu các mảnh, không lưu nguyên file.
sudo useradd -m xftp
sudo install -d -o xftp -g xftp -m 755 /etc/opt/simplex-xftp /var/opt/simplex-xftp /srv/xftp
curl -fL "https://github.com/simplex-chat/simplexmq/releases/download/$VER/xftp-server-ubuntu-24_04-x86-64" -o /tmp/xftp-server
sudo install -m 755 -o root -g root /tmp/xftp-server /usr/local/bin/xftp-server
sudo su xftp -c "xftp-server init -l --fqdn=xftp1.example.com -q '20gb' -p /srv/xftp/"Cấu hình của nó nằm trong /etc/opt/simplex-xftp/, state nằm trong /var/opt/simplex-xftp/, còn các chunk của file nằm ở vị trí do -p chỉ định. systemd unit cũng có cấu trúc tương tự với User=xftp và ExecStart=/usr/local/bin/xftp-server start +RTS -N -RTS. Init in ra địa chỉ xftp:// theo cùng định dạng với địa chỉ SMP, kèm fingerprint riêng trong /etc/opt/simplex-xftp/fingerprint.
Cần tính đến khả năng xung đột cổng. Cổng được tài liệu XFTP chỉ định là 443, và cấu hình SMP cũng liệt kê 443. Hai process không thể bind cùng một cổng trên cùng một địa chỉ, nên khi chạy trên một VPS, bạn phải chọn một phương án. Cách đơn giản nhất là đặt port: 5223 trong section [TRANSPORT] của SMP và để cổng 443 cho file relay, nhưng client trên các mạng hạn chế sẽ mất khả năng fallback qua 443. Các phương án khác là thêm địa chỉ IP thứ hai trên cùng VPS hoặc dùng VPS thứ hai.
Hãy đặt quota theo đúng dung lượng thực tế. -q '20gb' là cam kết về dung lượng disk bạn có. File relay là thành phần tiêu thụ disk và bandwidth nhiều nhất. Message relay hầu như không sử dụng đáng kể hai tài nguyên này.
Dữ liệu nào nằm trên disk và backup khôi phục được gì
Có hai thư mục cần quan tâm. /etc/opt/simplex/ là danh tính: smp-server.ini, certificate và key của server, ca.key và fingerprint. /var/opt/simplex/ là trạng thái: smp-server-store.log chứa các queue và, khi restore_messages: on, các message chưa chuyển được, cùng với file thống kê hằng ngày.
sudo systemctl stop smp-server
sudo tar czf /root/simplex-backup.tgz -C / etc/opt/simplex var/opt/simplex
sudo chmod 600 /root/simplex-backup.tgz
sudo systemctl start smp-serverCần hiểu rõ archive đó chứa gì. Đây không phải archive của message: các mục đang nằm trong queue là ciphertext được mã hóa bằng những key mà relay chưa từng giữ, còn config [STORE_LOG] được phát hành kèm theo sẽ xóa message sau 21 ngày. Đây là bản sao danh tính của server, bao gồm cả ca.key, vì vậy bất kỳ ai lấy được file này đều có thể tự nhận là relay của bạn với các contact. Hãy mã hóa file và lưu file bên ngoài máy chủ.
Lợi ích chính là khả năng restore. Khôi phục /etc/opt/simplex trên một VPS mới, trỏ cùng tên DNS vào đó, fingerprint sẽ không đổi, nên mọi địa chỉ bạn đã cấp vẫn hoạt động. Nếu mất thư mục đó thì không thể khôi phục: cài đặt mới tạo fingerprint mới, dẫn đến address mới, và mọi contact được định tuyến qua relay của bạn sẽ mất kết nối.
TLS: hai certificate với hai chức năng khác nhau
SMP transport không sử dụng public certificate authority. Init tạo một private authority và một server certificate. Fingerprint của authority đó được chứa trong server address. Client đối chiếu thông tin server cung cấp với fingerprint đã pin. Đây là cơ chế mà project mô tả là bảo vệ kết nối từ client đến server trước các cuộc tấn công machine-in-the-middle. Không cần chạy client ACME (automatic certificate management environment) trên cổng đó. Việc rotation được thực hiện thủ công bằng lệnh smp-server cert với SMP_SERVER_CFG_PATH được thiết lập.
Trang thông tin tùy chọn sử dụng certificate còn lại. Section [WEB] của trang này nêu static_path, https: 443, cert: /etc/opt/simplex/web.crt và key: /etc/opt/simplex/web.key. Browser chưa từng biết private authority của bạn, nên đây là nơi duy nhất cần dùng certificate được public trust. Docker quick start trong tài liệu đặt Caddy phía trước server cho mục đích này và tự động cấp certificate.
Kết nối đến relay qua Tor
Tài liệu có một phần về Tor. Phần này cài Tor từ repository của Tor Project và thêm một hidden service vào /etc/tor/torrc:
SOCKSPort 0
HiddenServiceNonAnonymousMode 1
HiddenServiceSingleHopMode 1
HiddenServiceDir /var/lib/tor/simplex-smp/
HiddenServicePort 5223 localhost:5223
HiddenServicePort 443 localhost:443Hãy đọc kỹ hai dòng về mode. Single hop và non-anonymous nghĩa là vị trí của relay không được ẩn. Địa chỉ onion nhanh và cho client một cách kết nối không bao giờ tiết lộ IP của họ cho bạn, nhưng bản thân server vẫn có thể được tìm thấy qua public IP. Hostname onion từ /var/lib/tor/simplex-smp/hostname được đặt ở cuối địa chỉ server, sau dấu phẩy. Nếu muốn ẩn cả vị trí của server, bạn cần một cấu hình khác. Chạy một onion service thực trên VPS trình bày các đánh đổi của cách này. Sự khác biệt về những gì mỗi công cụ ẩn là nội dung của Tor so với VPN, và áp dụng trực tiếp trong trường hợp này.
Mô hình mối đe dọa: self-hosting thay đổi điều gì
Bạn nhận được gì. Metadata (có những queue nào, chúng được đọc khi nào, địa chỉ nào kết nối) nằm trên máy do bạn kiểm soát, và bạn quyết định lưu chúng trong bao lâu. Bạn cũng không còn nằm trong một pool lớn mà người khác có thể yêu cầu một lần.
Những điều self-hosting không mang lại, nói rõ:
- Mã hóa không thay đổi. Messages đã được mã hóa end to end trước khi bạn tự dựng hệ thống và vẫn được mã hóa end to end sau đó. Self-hosting là quyết định về metadata, không phải quyết định về cryptography.
- Nhà cung cấp VPS thấy traffic đến địa chỉ IP của bạn và lưu thông tin thanh toán của bạn. Bạn chuyển mức độ tin cậy từ nhà vận hành messaging sang nhà vận hành hosting. Bạn không loại bỏ nó.
- Relay của bạn là một đám đông nhỏ. Nếu nó chỉ phục vụ một hộ gia đình, việc kết nối đến đó sẽ xác định hộ gia đình đó, và hostname của relay nằm trong mọi invitation link bạn gửi từ đó. Một relay công khai có nhiều traffic sẽ giúp che giấu bạn tốt hơn ở khía cạnh này, và đó là đánh đổi thực sự.
- Availability giờ là trách nhiệm của bạn. Disk đầy hoặc máy chết sẽ khiến messages ngừng được chuyển, và contacts của bạn không có cách nào định tuyến vòng qua bạn.
Lập luận tương tự áp dụng cho mọi private service bạn đặt trên máy do mình sở hữu, dù đó là relay này hay một WireGuard VPN trên VPS của riêng bạn. Bạn đang chọn bên nào được thấy metadata. Bạn không làm cho metadata biến mất.
Khi không hoạt động
Service khởi động rồi dừng ngay. Đọc sudo journalctl -u smp-server -n 50. Lỗi bind cho biết cổng mà service không thể sử dụng. Sau đó chạy sudo ss -tlnp | grep :443 để xem process nào đang giữ cổng đó. Trên một máy mới cài, process này thường là nginx, Caddy hoặc XFTP server mà bạn vừa cài một giờ trước.
Init không thể ghi cấu hình. Chạy smp-server init bằng user smp trước khi /etc/opt/simplex tồn tại sẽ gây lỗi quyền truy cập, vì /etc/opt thuộc sở hữu của root. Trước tiên, hãy tạo directory với owner phù hợp rồi chạy lại init.
Client không thể truy cập relay. Kiểm tra tên có phân giải đến đúng địa chỉ bằng dig +short smp1.example.com. Sau đó kiểm tra cổng từ laptop, không phải từ server: nc -vz smp1.example.com 5223. Nếu kết nối từ bên ngoài thất bại trong khi ss cho thấy socket đang mở trên máy, nguyên nhân có thể là firewall mạng của nhà cung cấp. Đây là một cơ chế kiểm soát riêng, khác với ufw.
Một contact không thể kết nối qua relay của bạn. Fingerprint trong address bạn đã chia sẻ phải khớp với nội dung hiện tại của /etc/opt/simplex/fingerprint. Nếu bạn đặt create_password trong [AUTH], address cũng phải chứa password đó; nếu không, client không được phép tạo queue.
Không có gì di chuyển sau khi bạn thêm server vào app. Đây là hành vi mặc định. Chỉ contact mới sử dụng relay vừa thêm. Các contact hiện có vẫn giữ những queue mà chúng đang sử dụng.
FAQ
Tự host server SimpleX có làm tin nhắn an toàn hơn không?
Không, và đó là thiết kế có chủ đích. SimpleX mã hóa tin nhắn đầu cuối giữa các thiết bị, nên relay không có các key, bất kể ai vận hành relay. Tự host thay đổi bên có thể quan sát metadata của những tin nhắn đó: có những queue nào, chúng được đọc lúc nào và địa chỉ IP nào kết nối. Đây là quyết định về metadata. Nếu lý do bạn tự host là muốn mã hóa mạnh hơn, thì lớp mã hóa đó vốn đã có sẵn.
Operator của SimpleX relay thực sự có thể thấy gì?
protocol/security.md của dự án nêu rõ điều này. Relay không thể đọc nội dung hoặc loại tin nhắn, không thể âm thầm sửa từng tin nhắn và không thể phá mã hóa đầu cuối bằng một cuộc tấn công chủ động. Relay có thể thấy recipient của một queue đang online hay không, đếm số tin nhắn đi qua queue, biết địa chỉ IP của recipient, xóa các tin nhắn sắp tới trong một queue hoặc nói sai về trạng thái của queue đó. Đây là các quyền bạn có khi relay thuộc quyền quản lý của bạn.
Tôi có cần tên miền và chứng chỉ TLS không?
Bạn cần tên miền để có một thiết lập dùng được, và smp-server init chấp nhận --ip nếu bạn thực sự không có tên miền. Bạn không cần chứng chỉ do một public authority cấp cho cổng messaging: init tự tạo authority riêng, còn client pin fingerprint xuất hiện trong địa chỉ smp:// của bạn. Chỉ cần chứng chỉ được public trust cho trang thông tin web tùy chọn, được cấu hình bằng cert và key trong section [WEB] của smp-server.ini.
Điều gì xảy ra nếu tôi mất /etc/opt/simplex?
Mọi địa chỉ bạn đã cung cấp sẽ ngừng hoạt động. Directory đó chứa certificate authority có fingerprint được nhúng trong địa chỉ server của bạn, nên khi rebuild sẽ tạo fingerprint khác và do đó tạo ra một server khác. Không thể sửa từ phía client đối với các contact có queue nằm trên relay đó. Hãy backup directory này dưới dạng encrypted và lưu bên ngoài máy chủ, đồng thời lưu ca.key offline theo hướng dẫn trong tài liệu, vì bất kỳ ai giữ nó đều có thể giả mạo relay của bạn.
Tôi có thể chạy SMP relay và XFTP file relay trên cùng một VPS không?
Có, nhưng cần xử lý một xung đột. Port được tài liệu của XFTP server chỉ định là 443, còn cấu hình SMP mặc định liệt kê port: 5223,443, nên cả hai đều muốn dùng cùng một socket. Hãy cấp 443 cho một trong hai: đặt port: 5223 cho SMP server, hoặc chuyển file relay sang địa chỉ IP thứ hai hay VPS thứ hai. Đồng thời đặt quota storage phù hợp với dung lượng disk thực tế, vì file relay là component tiêu thụ disk và bandwidth.