OpenWrt + внешний HDD + Transmission + Samba

О том как подключить внешний -накопитель к роутеру под управлением я уже писал. Однако, сегодня будем использовать для подключения block-mount.

На подключенном внешнем накопителе развернем для скачивания файлов с помощью и для удаленного доступа к скаченным файлам.

Внешний HDD

Предположим что у нас уже есть жесткий диск (/dev/sda) с разделом отформатированным ext4, тогда нам потребуются следующие пакеты

 [email protected]:~# opkg update [email protected]:~# opkg install block-mount kmod-fs-ext4 

Добавляем секцию в файл /etc/config/fstab

 config mount option target /opt option device /dev/sda1 option fstype ext4 option options rw,relatime,data=ordered option enabled 1 option enabled_fsck 1 

Активируем fstab

 [email protected]:~# /etc/init.d/fstab enable [email protected]:~# /etc/init.d/fstab start 

В итоге должно получиться примерно следующее:

 [email protected]:~# df -h Filesystem Size Used Available Use% Mounted on rootfs 3.3M 1.8M 1.4M 56% / /dev/root 2.0M 2.0M 0 100% /rom tmpfs 30.1M 1.9M 28.3M 6% /tmp tmpfs 512.0K 0 512.0K 0% /dev /dev/mtdblock4 3.3M 1.8M 1.4M 56% /overlay overlayfs:/overlay 3.3M 1.8M 1.4M 56% / /dev/sda1 465.3G 7.0G 435.0G 2% /opt 

Transmission довольно объемный пакет, особенно если поставить несколько вариантов интерфейсов к нему, поэтому добавляем внешний накопитель в качестве раздела для установки пакетов.

 [email protected]:~# echo dest usb /opt >> /etc/opkg.conf 

Transmission daemon

Устанавливаем службу Transmission:

 [email protected]:~# opkg -dest usb install transmission-daemon [email protected]:~# opkg-link add transmission-daemon 

Все настройки Transmission находятся в файле /etc/config/transmission, они довольно понятны, основные из них:

 option enabled 1 option config_dir '/opt/transmission' option user 'nobody' option download_dir '/opt/transmission/done' option encryption 0 option incomplete_dir '/opt/transmission/incomplete' option peer_port 51413 option peer_port_random_on_start false option preallocation 1 option prefetch_enabled true option rename_partial_files true option rpc_authentication_required false option rpc_bind_address '0.0.0.0' option rpc_enabled true option rpc_password '' option rpc_port 9091 option rpc_url '/transmission/' option rpc_username '' option rpc_whitelist '127.0.0.1,192.168.*' option rpc_whitelist_enabled true option watch_dir_enabled true option watch_dir '/opt/transmission/watch' 

Служба установлена, но, сама по себе, даже учитывая watch_dir, она не очень удобна для использования. У нас на выбор есть три варианта интерфейса к transmission-daemon.

Transmisson Web-UI

Управлять Transmisson со своего компьютера можно через простой и удобный веб-интерфейс.

 [email protected]:~# opkg -dest usb install transmission-web [email protected]:~# opkg-link add transmission-web 

Скриншоты

ransmission web-ui common transmission web-ui details ransmission web-ui details 2
transmission web-ui details 3 transmission web-ui details 4 transmission web-ui details 5

Transmisson Remote GUI

Помимо веб-интерфеса Transmisson представляет RPC-протокол для удаленного управления. В качестве клиента, например, может выступать кроссплатформенное приложение transmisson-remote-gui.

[email protected]:~# opkg -dest usb install transmission-remote 
[email protected]:~# opkg-link add transmission-remote

Скриншоты

Transmisson Remote GUI Transmisson Remote GUI Transmisson Remote GUI
Transmisson Remote GUI Transmisson Remote GUI Transmisson Remote GUI

Transmisson CLI

Так же стоит упомянуть, что у Transmisson если клиент командной строки:

[email protected]:~# opkg -dest usb install transmission-cli 
[email protected]:~# opkg-link add transmission-cli 

После установки выбранного GUI, запускаем службу.

[email protected]:~# /etc/init.d/transmission enable
[email protected]:~# /etc/init.d/transmission start

Samba

Осталось настроить сервер Samb’ы, чтобы была возможность удаленного доступа к загруженным файлам, а так же, чтобы можно было закидывать torrent-файлы на скачивание без помощи клиента.

[email protected]:~# opkg -dest usb install samba36-server
[email protected]:~# opkg-link add samba36-server

Приведенный ниже конфигурационный файл /etc/config/samba предоставляет полный доступ к двум каталогам без авторизации и может использоваться только в безопасной домашней сети.

config samba
option 'name'                   'DIR-825'
option 'workgroup'              'WORKGROUP'
option 'description'            'OpenWrt'
option 'homes'                  '0'
config 'sambashare'  
option 'name' 'Done'
option 'path' '/opt/transmission/done'
option 'guest_ok' 'yes'                
option 'create_mask' '0777'                        
option 'dir_mask' '0777'                                
option 'read_only' 'no'    
config 'sambashare'  
option 'name' 'Watch'
option 'path' '/opt/transmission/watch'
option 'guest_ok' 'yes'                
option 'create_mask' '0777'                        
option 'dir_mask' '0777'                                
option 'read_only' 'no'    

Запускаем службу и пробуем обнаружить свой роутер в сети.

[email protected]:~# /etc/init.d/samba enable
[email protected]:~# /etc/init.d/samba start

Samba OpenWRT