Skip to content

Instantly share code, notes, and snippets.

@OpenGG
Last active November 4, 2019 10:05
Show Gist options
  • Save OpenGG/6af36d899032c9415b0c1dcb09ce6408 to your computer and use it in GitHub Desktop.
Save OpenGG/6af36d899032c9415b0c1dcb09ce6408 to your computer and use it in GitHub Desktop.
DSM 实用技巧

说明

Synology DiskStation Manager 是一个不错的系统,它的 GUI 界面方便而强大,可以让用户 在不接触命令行的情况下轻松管理 NAS,使用 SMB 文件共享、下载、防火墙管理、磁盘管理 等多种功能。

但 DSM 并非完美,有的时候,一些实用的小技巧可以让它更加好用。

安装 Docker

DSM 官方套件库虽然有很多不错的内容,但毕竟有限,有很多功能并未提供,而 Docker 这种 容器技术可以让你很方便地部署多种软件,并提供了一定限度的隔离性,可以保证各容器的独 立。

  1. 安装 Docker :在套件库中找到 Docker ,安装
  2. 提高系统的文件描述符限制:在 SSH 下,备份 /var/packages/Docker/scripts/start-stop-status 文件, 然后使用 vi ,将 如下脚本 添加到文件中的 Copyright 下方,如图

注:DSM 默认的文件描述符限制为65535,如果不改,BT 种子挂多了就会出错崩溃; 下文中所有以 /volume 开头的路径都是硬盘上的物理路径,请自行配置,或者依照我的路径配置。

安装 aria2

aria2 是一个非常强大的下载工具,配合 webui-aria2 和各种浏览器扩展,可以高速下载各种 网盘的资源。

  1. 在 SSH 命令行中运行一句话脚本(注意根据实际情况修改配置路径和下载路径)
  2. 在配置文件夹(我自己配的是 /volume1/docker/aria2 ,你可以自己改到别处) 放入 aria2.conf 文件,然后把文件中的密码 YOUR_SECRET_CHANGE_IT 改掉
  3. 重启 aria2 容器
  4. 打开 http://ziahamza.github.io/webui-aria2/ ,配置好服务器 ip/端口/密码,把这个网 站添加到浏览器收藏夹
  5. 在浏览器中安装 BaiduExporter/115Exporter 等扩展,依照上一条配置。

注:aria2 作为服务运行在 nas 上;webui 是 aria2 的管理工具,运行在用户浏览器上;浏览 器扩展参差不齐,有的还包含恶意代码,请注意甄别,用不到的时候把扩展关闭掉。

安装 rtorrent + rutorrent

虽然 aria2 也可以用来下 BT,但把它用作 PT 客户端的做法并不常见。 rtorrent 是一个不错 的 BT 客户端,很多 PT 网站都允许使用,rutorrent 是 rtorrent 的 web 管理界面。rutorrent 在添加种子时允许跳过文件校验,非常适合用来辅种。

  1. 在 SSH 命令行中运行一句话脚本(注意根据实际情况修改配置路径和下载路径)
  2. 在配置文件夹(我自己配的是 /volume1/docker/rutorrent/rtorrent/ ,你可以自己改到别处)放入 rtorrent.rc 文件
  3. 重启 rutorrent 容器
  4. 在浏览器中打开 服务器ip:4180 ,可以管理 rutorrent

注:我的下载机内存为 8GB ,所以 rtorrent 各种内存缓存配的很高,如果内存较少,需要做相 应修改;rtorrent 不支持 IPv6 。

# Save this file as /volume1/docker/aria2/aria2.conf
save-session=/etc/aria2/aria2.session
input-file=/etc/aria2/aria2.session
save-session-interval=60
file-allocation=prealloc
disk-cache=128M
enable-rpc=true
rpc-allow-origin-all=true
rpc-listen-all=true
rpc-secret=YOUR_SECRET_CHANGE_IT
auto-file-renaming=false
docker run \
-d \
--name aria2 \
-v /volume1/docker/aria2:/etc/aria2 \
-v /volume1/aria2:/home/aria2/downloads \
-p 6800:6800 \
nemoalex/docker-aria2
# /volume1/docker/aria2 为配置路径, /volume1/aria2 为下载路径
# 请根据实际情况修改
#
# Modify "/volume1/docker/aria2" and "/volume1/aria2" accordingly.
docker run \
-d \
--name rutorrent \
-v /volume1/docker/rutorrent/:/config \
-v /volume1/rutorrent:/downloads \
-v /volume1/PT:/PT \
-v /volume2/PT1:/PT1 \
-v /volume3/PT2:/PT2 \
-p 4180:4180 \
-p 4113:4113 \
-e PGID=100 \
-e PUID=1024 \
-e TZ=Asia/Shanghai \
linuxserver/rutorrent
# /volume1/docker/rutorrent/ 为配置路径, /volume1/rutorrent 为下载路径
# 请根据实际情况修改
# 如果你有多块硬盘,希望在 rutorrent 中使用,可以像我这样全部加载进去
# 4180 为管理端口,请在防火墙和路由器上配好规则,仅供局域网访问
# 4113 为 BT 端口,请在防火墙和路由器上配好规则,暴露到外网
# 100/1024 为 admin 用户的组id/用户id
# Save this file as /volume1/docker/rutorrent/rtorrent/rtorrent.rc
execute = {sh,-c,/usr/bin/php7 /usr/share/webapps/rutorrent/php/initplugins.php abc &}
execute.nothrow = rm,/run/php/.rtorrent.sock
network.scgi.open_local = /run/php/.rtorrent.sock
schedule = socket_chmod,0,0,"execute=chmod,0660,/run/php/.rtorrent.sock"
schedule = socket_chgrp,0,0,"execute=chgrp,abc,/run/php/.rtorrent.sock"
log.open_file = "rtorrent", /config/log/rtorrent/rtorrent.log
log.add_output = "info", "rtorrent"
throttle.global_down.max_rate.set_kb = 0
throttle.global_up.max_rate.set_kb = 0
throttle.max_downloads.global.set = 600
throttle.max_uploads.global.set = 600
throttle.min_peers.normal.set = 198
throttle.max_peers.normal.set = 200
throttle.min_peers.seed.set = -1
throttle.max_peers.seed.set = -1
throttle.max_downloads.set = 100
throttle.max_uploads.set = 100
trackers.numwant.set = 200
pieces.memory.max.set = 2048M
network.max_open_sockets.set = 2000
network.max_open_files.set = 2048
network.http.max_open.set = 99
network.receive_buffer.size.set = 4M
network.send_buffer.size.set = 12M
pieces.preload.type.set = 2
# network.http.ssl_verify_host.set = 0
network.http.ssl_verify_peer.set = 0
network.xmlrpc.size_limit.set = 2M
# schedule = watch_directory_1,5,5,"load.start=/downloads/watched/*.torrent"
directory = /downloads/incoming
session = /config/rtorrent/rtorrent_sess
schedule = low_diskspace,5,60,close_low_diskspace=100M
# ip = 178.32.28.51
bind = 0.0.0.0
port_range = 4113-4113
check_hash = no
use_udp_trackers = yes
encryption = allow_incoming,try_outgoing,enable_retry
dht = disable
dht_port = 4181
peer_exchange = no
# scgi_port = 0.0.0.0:5000 M
encoding_list = UTF-8
system.umask.set = 002
system.file_allocate.set = yes
# Add following lines to /var/packages/Docker/scripts/start-stop-status
# Bellow "Copyright (c) 2000-2015 Synology Inc. All rights reserved."
sysctl -q -w fs.file-max=16777216
ulimit -HSn 1048576
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment