This is an old revision of the document!


Run aria2 with isolated netns with Systemd

/etc/systemd/aria2c-daemon.service
[Unit]
Requires=network-online.target mts-Incoming.mount
After=network-online.target mts-Incoming.mount
BindsTo=mts-Incoming.mount
 
[Service]
SyslogIdentifier=aria2c-daemon.service
ExecStartPre=-/sbin/ip netns del ns-downloads
ExecStartPre=/sbin/ip netns add ns-downloads
ExecStartPre=/sbin/ip link add v-down-root type veth peer name v-down-peer
ExecStartPre=/sbin/ip link set v-down-peer netns ns-downloads
ExecStartPre=/sbin/brctl addif br-lan v-down-root
ExecStartPre=/sbin/ip link set v-down-root up
ExecStartPre=/sbin/ip netns exec ns-downloads /sbin/ip addr add 10.0.0.34/16 dev v-down-peer
ExecStartPre=/sbin/ip netns exec ns-downloads /sbin/ip link set v-down-peer up
ExecStartPre=/sbin/ip netns exec ns-downloads /sbin/ip link set lo up
ExecStartPre=/sbin/ip netns exec ns-downloads /sbin/ip route add default via 10.0.0.1
ExecStart=/sbin/ip netns exec ns-downloads /sbin/runuser -u orzfly -g orzfly -- /usr/bin/aria2c \
  --enable-rpc \
  --rpc-listen-all=true \
  --rpc-allow-origin-all \
  --rpc-listen-port=27679 \
  --rpc-secret=TOKENTOKENTOKENTOKENTOKENTOKENTOKENTOKENTOKENTOKENTOKENTOKENTOKEN \
  --max-concurrent-downloads=10 \
  --max-connection-per-server=16 \
  --min-split-size=1M \
  --split=16 \
  --max-overall-download-limit=0 \
  --max-download-limit=0 \
  --max-overall-upload-limit=0 \
  --max-upload-limit=0 \
  --max-tries=1000 \
  --retry-wait=5 \
  --input-file=/var/lib/aria2c-daemon/session \
  --save-session=/var/lib/aria2c-daemon/session \
  --save-session-interval=15 \
  --disk-cache=0 \
  --allow-overwrite=false \
  --always-resume=true \
  --auto-file-renaming=false \
  --continue=true \
  --remote-time=true \
  --lowest-speed-limit=50K \
  --file-allocation=none \
  --dir=/mts/Incoming/Downloads \
  --seed-time=60 \
  --bt-detach-seed-only=true \
  --bt-request-peer-speed-limit=2M \
  --bt-max-peers=100 \
  --bt-max-open-files=100 \
  --bt-save-metadata=true \
  --user-agent='Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3291.0 Safari/537.36' \
  --allow-piece-length-change=true
ExecStopPost=-/sbin/ip netns del ns-downloads
Restart=always
RestartSec=15s
 
[Install]
WantedBy=multi-user.target

See Alsos