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 -fNginx 完整可用配置 /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
全部操作步骤
目录权限
bash
sudo chown -R shitou:shitou /opt/mirror
sudo chown -R shitou:shitou /usr/local/tunasync
删除 vim 异常交换文件
bash
sudo rm -rf /usr/local/tunasync/conf/.worker.conf.swp
重载系统服务
bash
sudo systemctl daemon-reload
启动调度与同步服务
bash
sudo systemctl start tunasync-manager
sudo systemctl restart tunasync-manager
sudo systemctl restart tunasync-worker
关闭开机自启(当前为手动启动)
bash
sudo systemctl enable tunasync-manager tunasync-worker
sudo systemctl disable tunasync-manager tunasync-worker
查看服务状态、同步日志
bash
systemctl status tunasync-manager
systemctl status tunasync-worker
journalctl -u tunasync-worker -f
当前最终状态
Nginx 80 站点根目录指向镜像目录
/opt/mirror/mirrors,开启目录浏览;7000/15000 端口 HTTPS 反向代理正常镜像目录、程序目录权限归属
shitou4 条软件源同步任务配置完整
tunasync 服务禁止开机自启,服务器重启后需要手动启动

原创
迁移业务、重建镜像同步服务 :迁移镜像目录,部署修复 Tunasync 镜像同步服务
本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
评论交流
欢迎留下你的想法