udo mkdir -p /opt/mirror/mirrors /opt/mirror/logs
sudo chown -R shitou:shitou /opt/mirror
sudo chown -R shitou:shitou /usr/local/tunasync

worker.conf 完整配置

toml

[global]
name = "local-worker"
mirror_dir = "/opt/mirror/mirrors"
concurrent = 2
log_dir = "/opt/mirror/logs/{{.Name}}"

[manager]
api_base = "http://127.0.0.1:14242"
token = "Sync@2026Tuna"
ca_cert = ""

[[mirrors]]
name = "ubuntu"
provider = "rsync"
upstream = "rsync://mirrors.bfsu.edu.cn/ubuntu/"
interval = 21600
use_ipv6 = false

[[mirrors]]
name = "ubuntu-cdimage"
provider = "rsync"
upstream = "rsync://mirrors.bfsu.edu.cn/ubuntu-cdimage/"
interval = 604800
use_ipv6 = false

[[mirrors]]
name = "alpine"
provider = "rsync"
upstream = "rsync://mirrors.bfsu.edu.cn/alpine/"
interval = 43200
use_ipv6 = false

[[mirrors]]
name = "rockylinux"
provider = "rsync"
upstream = "rsync://rsync.mirrors.ustc.edu.cn/rockylinux/"
interval = 43200
use_ipv6 = false

bash

sudo vi /usr/local/tunasync/conf/worker.conf

粘贴配置,Esc 输入 :wq! 保存

服务命令

bash

sudo systemctl daemon-reload
sudo systemctl start tunasync-manager
sudo systemctl start tunasync-worker
sudo systemctl enable tunasync-manager tunasync-worker
systemctl status tunasync-manager
systemctl status tunasync-worker
journalctl -u tunasync-worker -f

Nginx 完整可用配置 /etc/nginx/sites‑available/default

nginx

##
# You should look at the following URL's in order to grasp a solid understanding
# of Nginx configuration files in order to fully unleash the power of Nginx.
# https://www.nginx.com/resources/wiki/start/
# https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/
# https://wiki.debian.org/Nginx/DirectoryStructure
#
# In most cases, administrators will remove this file from sites-enabled/ and
# leave it as reference inside of sites-available where it will continue to be
# updated by the nginx packaging team.
#
# This file will automatically load configuration files provided by other
# applications, such as Drupal or Wordpress. These applications will be made
# available underneath a path with that package name, such as /drupal8.
#
# Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples.
##

# Default server configuration(修改为镜像文件站点)
server {
    listen 80 default_server;
    listen [::]:80 default_server;
    root /opt/mirror/mirrors;
    index index.html;
    server_name _;

    location / {
        autoindex on;
        autoindex_exact_size off;
        autoindex_localtime on;
        try_files $uri $uri/ =404;
    }
}


# Virtual Host configuration for example.com
# You can move that to a different file under sites-available/ and symlink that
# to sites-enabled/ to enable it.
# server {
#       listen 80;
#       listen [::]:80;
#
#       server_name example.com;
#
#       root /var/www/example.com;
#       index index.html;
#
#       location / {
#               try_files $uri $uri/ =404;
#       }
# }

# 针对同一域名不同端口的配置
# 配置 7000 端口的访问,使用 HTTPS
server {
    listen 7000 ssl;
    server_name www.lingluanaishitou.icu;

    ssl_certificate /etc/nginx/ssl/lingluanaishitou.icu.pem;
    ssl_certificate_key /etc/nginx/ssl/lingluanaishitou.icu.key;

    # 可选的 SSL 优化配置
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;

    location / {
        proxy_pass http://127.0.0.1:8090;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

# 配置 15000 端口的访问,使用 HTTPS
server {
    listen 15000 ssl;
    server_name www.lingluanaishitou.icu;

    ssl_certificate /etc/nginx/ssl/lingluanaishitou.icu.pem;
    ssl_certificate_key /etc/nginx/ssl/lingluanaishitou.icu.key;

    # 可选的 SSL 优化配置
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;

    location / {
        proxy_pass http://127.0.0.1:8989;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Nginx 执行命令

bash

sudo nginx -t
sudo systemctl restart nginx

tunasync‑worker 完整配置 /usr/local/tunasync/conf/worker.conf

toml

[global]
name = "local-worker"
mirror_dir = "/opt/mirror/mirrors"
concurrent = 2
log_dir = "/opt/mirror/logs/{{.Name}}"

[manager]
api_base = "http://127.0.0.1:14242"
token = "Sync@2026Tuna"
ca_cert = ""

[[mirrors]]
name = "ubuntu"
provider = "rsync"
upstream = "rsync://mirrors.bfsu.edu.cn/ubuntu/"
interval = 21600
use_ipv6 = false

[[mirrors]]
name = "ubuntu-cdimage"
provider = "rsync"
upstream = "rsync://mirrors.bfsu.edu.cn/ubuntu-cdimage/"
interval = 604800
use_ipv6 = false

[[mirrors]]
name = "alpine"
provider = "rsync"
upstream = "rsync://mirrors.bfsu.edu.cn/alpine/"
interval = 43200
use_ipv6 = false

[[mirrors]]
name = "rockylinux"
provider = "rsync"
upstream = "rsync://rsync.mirrors.ustc.edu.cn/rockylinux/"
interval = 43200
use_ipv6 = false

全部操作步骤

  1. 目录权限

bash

sudo chown -R shitou:shitou /opt/mirror
sudo chown -R shitou:shitou /usr/local/tunasync
  1. 删除 vim 异常交换文件

bash

sudo rm -rf /usr/local/tunasync/conf/.worker.conf.swp
  1. 重载系统服务

bash

sudo systemctl daemon-reload
  1. 启动调度与同步服务

bash

sudo systemctl start tunasync-manager
sudo systemctl restart tunasync-manager
sudo systemctl restart tunasync-worker
  1. 关闭开机自启(当前为手动启动)

bash

sudo systemctl enable tunasync-manager tunasync-worker
sudo systemctl disable tunasync-manager tunasync-worker
  1. 查看服务状态、同步日志

bash

systemctl status tunasync-manager
systemctl status tunasync-worker
journalctl -u tunasync-worker -f

当前最终状态

  1. Nginx 80 站点根目录指向镜像目录 /opt/mirror/mirrors,开启目录浏览;7000/15000 端口 HTTPS 反向代理正常

  2. 镜像目录、程序目录权限归属 shitou

  3. 4 条软件源同步任务配置完整

  4. tunasync 服务禁止开机自启,服务器重启后需要手动启动