标签: 群晖Synology

  • 群晖(Synology)NAS DS418 Play升级到DSM7.2后应用商店无法采用SPK安装Docker的解决方案 群晖NAS命令行(CMD)安装Docker

    群晖(Synology)NAS DS418 Play升级到DSM7.2后应用商店无法采用SPK安装Docker的解决方案 群晖NAS命令行(CMD)安装Docker

    几乎找遍了各个网站,也快有好几年没在群晖NAS当中运行Docker容器了,也就是从升级了DSM到7的版本后。

    群晖官网是明确表示DS418 Play型号是不支持docker容器,但是以前能够通过其他版本的SPK文件进行安装,例如DS918+的安装文件Docker-x64-20.10.3-1308.spk.

    而现在,不管下载那个版本的spk,又或者使用更改链接的大法,再也搞不定Docker的安装了。

    当然,国内外也有不少网友通过应用市场上传spk这种方法就安装成功了,但是技术奇客ITGeeker.net就没那么幸运,好像很多人也没那么幸运,如果你想尝试一下,就去群晖的官网下载Docker的spk文件安装试试看吧。

    https://archive.synology.cn/download/Os/DSM

    对了,Docker在群晖DSM中的名称已经更改为:Container Manager

    by 技术奇客ITGeeker.net

    原本想着随着群晖的不断升级,以后或许还能在DS418 play当中使用docker的,但是没想到群晖NAS的价格越卖越贵,还真就不管以前用户的死活了!

    所以今天就分享一下如何用命令行安装docker,让您的群晖DS418play重新用上Docker容器。也幸亏群晖还没封死这条路,毕竟有些简单的docker应用,用NAS来运行的话又稳定数据又安全。

    至于可以运行哪些docker可以参看技术奇客ITGeeker.net的这篇文章:

    群晖DS418play如何使用命令行安装Docker – Container Manager

    1. 下载docker的源文件

    首先,从Docker官网下载一个最新版本吧: https://download.docker.com/linux/static/stable/x86_64

    # 比如下载当前最新版,或者下载后上传到NAS
    wget https://download.docker.com/linux/static/stable/x86_64/docker-26.1.3.tgz

    2. 给你的群晖添加一个docker的用户

    这一步是必须的,如果没添加成功则后面运行会出错

    sudo synogroup --add docker $USER

    3. 解压缩前面下载的docker源码安装包

    tar xzvf docker-26.1.3.tgz
    
    # 然后将文件复制到对应目录
    sudo cp docker/* /usr/bin/

    4. 创建守护程序Daemon

    echo '{
      "storage-driver": "vfs",
      "iptables": false,
      "bridge": "none"
    }' > /etc/docker/daemon.json

    5. 运行Docker

    sudo dockerd &

    解决群晖NAS运行源码安装的Docker空间不足的问题

    no space left on device

    docker info -f '{{ .DockerRootDir }}'

    通过此命令,可以发现直接运行的Docker默认目录的空间很小,大约1-2G左右,随便拉个稍大点的image就会空间不足,所以我们要创建并使用一个自定义的存放Docker image的目录。

    mkdir -p /volume1/homes/image_docker
    
    # 然后vi /etc/docker/daemon.json添加
    "data-root": "/volume1/homes/tmp_docker"
    
    # 重启docker
    ps ax | grep docker
    kill -9 id
    sudo dockerd &
    
    # 再确认一遍路径是否已改变:
    docker info -f '{{ .DockerRootDir}}'

    DSM安装docker-compose

    DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
    mkdir -p $DOCKER_CONFIG/cli-plugins
    curl -SL https://github.com/docker/compose/releases/download/v2.17.2/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose
    chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose
    
    # 检查一下版本
    docker compose version

    DSM运行Portainer测试一下吧

    sudo docker run -d --network=host portainer/portainer:linux-amd64
    
    # 检查一下容器是否已运行 
    docker ps

    http://NAS_IP:9000

    登录Portainer就可以用界面来管理Docker的容器了,适合不喜欢用CMD的小伙伴们

    One More Thing

    由于 Synology 的限制,所有容器都需要使用–network=host(或 compose 中的 network_mode: host),所有内容都将可直接从主机访问。没有端口映射。

    by 技术奇客ITGeeker.net
  • frp内网穿透访问家里的Esxi8.0服务器 frpc如何配置http2https插件

    frp内网穿透访问家里的Esxi8.0服务器 frpc如何配置http2https插件

    ITGeeker技术奇客这次计划给家里的Esxi 8.0服务器搞个公网访问,查了一下看到网上有篇文章介绍说frpc用的type = tcp,然后还要用Haproxy 二次转发,因为Esxi服务器要求ssl访问,再配置nginx的一大堆,觉得甚是复杂。

    ITGeeker技术奇客按照自己对frpc插件http2https的理解,参考官方 https://github.com/fatedier/frp#example-usage 文档,实践后一次成功,分享一下给大家。关键是穿透后实现内网https访问!

    1. 添加frpc配置文件(关键)

    [esxi]
    type = http
    subdomain = esxi # 公网的二级域名
    plugin = http2https
    plugin_local_addr = 192.168.118.118:443 # Esxi8.0服务器内网ip + port
    plugin_host_header_rewrite = 192.168.118.118 # Esxi8.0服务器内网ip
    plugin_header_X-From-Where = frp # 默认为frp

    2. frps服务配置

    #####################################################
    # for esxi公网访问 by itgeeker.net
    #####################################################
    server
    {
        server_name esxi.itgeeker.net;
    
        client_max_body_size 2048M;
        location / {
            proxy_redirect off;
            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_pass http://127.0.0.1:1118; # 此处须和frps.ini的vhost_http_port端口一致
        }
        access_log /var/log/nginx/esxi.itgeeker.net-https-access.log;
        error_log /var/log/nginx/esxi.itgeeker.net-https-error.log;
    
        listen 443 ssl http2;
        ssl_certificate /etc/letsencrypt/live/esxi.itgeeker.net/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/esxi.itgeeker.net/privkey.pem; 
        include /etc/letsencrypt/options-ssl-nginx.conf;
        ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; 
    }
    # http 80自动跳转443
    server
    {
        if ($host = esxi.itgeeker.net) {
            return 301 https://$host$request_uri;
        } 
    
        listen 80;
        server_name esxi.itgeeker.net;
        return 404; 
    }

    3. 域名DNS解析esxi.itgeeker.net到frps服务器IP

    4. 重启frpc和frps服务器的nginx服务

    # frpc重启命令
    ./frpc reload -c ./frpc.ini
    
    # nginx重启命令:
    nginx -s reload 

    然后就可以愉快的用https://esxi.itgeeker.net来访问家里的Esxi8.0服务器管理页面了

    注意:Esxi8.0服务器公网访问需要ssl 443端口,非ssl 80端口是不可以访问的。

    by itgeeker.net

    如果你家里的Synology群晖NAS也启用了SSL 443端口,
    然后同样也觉得群晖的quickconnect非常不好用,
    那么也可以通过frp的http2https插件实现内网穿透来访问家里的NAS啦!

    by itgeeker.net

    最新文章

  • Synology群晖NAS如何安装iperf3内网测速工具 非Docker运行模式

    Synology群晖NAS如何安装iperf3内网测速工具 非Docker运行模式

    装了ESXi8,发现了第一个问题,华硕Z490-A自带的Interl I225-V 2.5G网卡只能被识别成100M。幸亏另加的英特尔I350T2X1双网口网卡能被正确识别成1000M的,而且显示支持SR-IOV,但是设置了好多次SR-IOV,重启后模拟网卡数量就会跳回0个,无法正确启用。不知道是ESXi版本问题还是别的什么原因

    因为低配高价,放弃升级群晖NAS的想法 转而 来玩玩ESXi 8.0吧

    趁着这个机会,把所有ESXi的虚拟机和路由器的速度都测了一遍,果然只要把虚拟机的网络适配器改为英特尔I350T2X1网卡的端口组,速度马上就从百兆变为千兆。

    100M速度
    1K速度

    这个时候想到测试一下我的群晖DS418play到路由器的速度,结果一下子还找不到iperf3在Synology的应用,网上又编译的spk是针对DSM6.3的,而且无法下载,DSM7又提到的一般是用Docker运行,而我的群晖DS418play无法运行Docker。

    几经搜索,发现了群晖的Diagnosis Tool工具,里面有78个工具,其中就包括iperf3,方法很简单。

    群晖NAS内网速度测试

    1. SSH登录群晖NAS,并切换到管理员权限sudo -i
    2. 安装Diagnosis Tool,sudo synogear install
    3. 运行/var/packages/DiagnosisTool/target/tool/iperf3 -c 192.168.188.1

    群晖NAS外网速度测试

    • 运行:/var/packages/DiagnosisTool/target/tool/speedtest-cli.py
    • 会在结果可以找到Download: 138.89 Mbit/s;Upload: 63.01 Mbit/s(这是我千兆移动的测试结果)

    如果不想使用synogear了, 一个命令就可移除:

    sudo synogear remove

    78个群晖的Diagnosis Tool工具命令行参考

    1. /var/packages/DiagnosisTool/target/tool/addr2name
    2. /var/packages/DiagnosisTool/target/tool/arping
    3. /var/packages/DiagnosisTool/target/tool/ash
    4. /var/packages/DiagnosisTool/target/tool/bash
    5. /var/packages/DiagnosisTool/target/tool/cifsiostat
    6. /var/packages/DiagnosisTool/target/tool/clockdiff
    7. /var/packages/DiagnosisTool/target/tool/dig
    8. /var/packages/DiagnosisTool/target/tool/domain_test.sh
    9. /var/packages/DiagnosisTool/target/tool/file
    10. /var/packages/DiagnosisTool/target/tool/fix_idmap.sh
    11. /var/packages/DiagnosisTool/target/tool/free
    12. /var/packages/DiagnosisTool/target/tool/gcore
    13. /var/packages/DiagnosisTool/target/tool/gdb
    14. /var/packages/DiagnosisTool/target/tool/gdbserver
    15. /var/packages/DiagnosisTool/target/tool/iftop
    16. /var/packages/DiagnosisTool/target/tool/iostat
    17. /var/packages/DiagnosisTool/target/tool/iotop
    18. /var/packages/DiagnosisTool/target/tool/iperf
    19. /var/packages/DiagnosisTool/target/tool/iperf3
    20. /var/packages/DiagnosisTool/target/tool/kill
    21. /var/packages/DiagnosisTool/target/tool/killall
    22. /var/packages/DiagnosisTool/target/tool/ldd
    23. /var/packages/DiagnosisTool/target/tool/lsof
    24. /var/packages/DiagnosisTool/target/tool/ltrace
    25. /var/packages/DiagnosisTool/target/tool/mpstat
    26. /var/packages/DiagnosisTool/target/tool/name2addr
    27. /var/packages/DiagnosisTool/target/tool/ncat
    28. /var/packages/DiagnosisTool/target/tool/ndisc6
    29. /var/packages/DiagnosisTool/target/tool/nethogs
    30. /var/packages/DiagnosisTool/target/tool/nfsiostat-sysstat
    31. /var/packages/DiagnosisTool/target/tool/nmap
    32. /var/packages/DiagnosisTool/target/tool/nping
    33. /var/packages/DiagnosisTool/target/tool/nslookup
    34. /var/packages/DiagnosisTool/target/tool/perf-check.py
    35. /var/packages/DiagnosisTool/target/tool/pgrep
    36. /var/packages/DiagnosisTool/target/tool/pidof
    37. /var/packages/DiagnosisTool/target/tool/pidstat
    38. /var/packages/DiagnosisTool/target/tool/ping6
    39. /var/packages/DiagnosisTool/target/tool/ping
    40. /var/packages/DiagnosisTool/target/tool/pkill
    41. /var/packages/DiagnosisTool/target/tool/pmap
    42. /var/packages/DiagnosisTool/target/tool/ps
    43. /var/packages/DiagnosisTool/target/tool/pstree
    44. /var/packages/DiagnosisTool/target/tool/pwdx
    45. /var/packages/DiagnosisTool/target/tool/rarpd
    46. /var/packages/DiagnosisTool/target/tool/rdisc6
    47. /var/packages/DiagnosisTool/target/tool/rdisc
    48. /var/packages/DiagnosisTool/target/tool/rltraceroute6
    49. /var/packages/DiagnosisTool/target/tool/sa1
    50. /var/packages/DiagnosisTool/target/tool/sa2
    51. /var/packages/DiagnosisTool/target/tool/sadc
    52. /var/packages/DiagnosisTool/target/tool/sadf
    53. /var/packages/DiagnosisTool/target/tool/sar
    54. /var/packages/DiagnosisTool/target/tool/sh
    55. /var/packages/DiagnosisTool/target/tool/sid2ugid.sh
    56. /var/packages/DiagnosisTool/target/tool/slabtop
    57. /var/packages/DiagnosisTool/target/tool/sockstat
    58. /var/packages/DiagnosisTool/target/tool/speedtest-cli.py
    59. /var/packages/DiagnosisTool/target/tool/strace
    60. /var/packages/DiagnosisTool/target/tool/sysctl
    61. /var/packages/DiagnosisTool/target/tool/sysstat
    62. /var/packages/DiagnosisTool/target/tool/tcpdump
    63. /var/packages/DiagnosisTool/target/tool/tcpdump_wrapper
    64. /var/packages/DiagnosisTool/target/tool/tcpspray6
    65. /var/packages/DiagnosisTool/target/tool/tcptraceroute6
    66. /var/packages/DiagnosisTool/target/tool/telnet
    67. /var/packages/DiagnosisTool/target/tool/tload
    68. /var/packages/DiagnosisTool/target/tool/top
    69. /var/packages/DiagnosisTool/target/tool/tracepath
    70. /var/packages/DiagnosisTool/target/tool/traceroute6
    71. /var/packages/DiagnosisTool/target/tool/tracert6
    72. /var/packages/DiagnosisTool/target/tool/uptime
    73. /var/packages/DiagnosisTool/target/tool/vmstat
    74. /var/packages/DiagnosisTool/target/tool/w
    75. /var/packages/DiagnosisTool/target/tool/watch
    76. /var/packages/DiagnosisTool/target/tool/zblacklist
    77. /var/packages/DiagnosisTool/target/tool/zmap
    78. /var/packages/DiagnosisTool/target/tool/ztee
  • 群晖DSM7.1 Emby中文字幕插件–Emby.MeiamSub替换subfinder 插件路径及权限问题已解决

    群晖DSM7.1 Emby中文字幕插件–Emby.MeiamSub替换subfinder 插件路径及权限问题已解决

    Emby自带的一些字幕插件TheTVDB, TheMovieDb, The Open Movie Database, Open Subtitles等往往无法满足中文字幕的需求,ITGeeker技术奇客之前也使用subfinder来搜索中文字幕,在群晖里新建一个任务计划,定时可以搜索相应字幕,安装和使用也非常简单:

    
    #适用DSM7.1
    #首先安装
    pip install subfinder
    
    #然后每次运行
    export PATH="/var/services/homes/YOURUSERNAME/.local/bin:$PATH"
    subfinder /volume1/video/film_path -m zimuku shooter subhd
    

    subfinder已有一年有余未更新了,对于新的电影已经时常搜不到字幕了

    那就试试中文字幕插件–Emby.MeiamSub

    Emby中文字幕插件–Emby.MeiamSub

    开源插件地址:https://github.com/91270/Emby.MeiamSub

    如果要安装插件,先去https://github.com/MediaBrowser/Emby.Releases/下载并解压缩

    群晖7.1安装方法

    群晖

    复制插件文件到 /var/packages/EmbyServer/target/var/plugins

    复制插件文件到 /var/packages/EmbyServer/target/system/plugins

    重启服务

    这是作者原始里的说明

    如果按照这种方法操作过的小伙伴就会发现,/var/packages/EmbyServer/target/var/plugins在DSM7.1里面其实是找不到的,那么只要复制插件文件到 /var/packages/EmbyServer/target/system/plugins就可以了。

    然后按要求重启Emby Server服务,再去插件目录查看,其实发现并没有找到Emby.MeiamSub.Shooter和Emby.MeiamSub.Thunder。

    去Emby日志里查看,会找到一条错误信息:

    System.UnauthorizedAccessException: System.UnauthorizedAccessException: Access to the path '/volume1/@appstore/EmbyServer/system/plugins/Emby.MeiamSub.Shooter.dll' is denied.

    登入:/volume1/@appstore/EmbyServer/system/plugins目录发现,刚才的两个dll插件文件都已再目录,但权限不对:

    Emby.MeiamSub.Thunder.dll
    Emby.MeiamSub.Shooter.dll
    更改文件所有权及权限

    其实就是更改成和/volume1/@appstore/EmbyServer/system/plugins目录中其他插件一样的权限:

    cd /volume1/@appstore/EmbyServer/system/plugins
    chown -R emby:emby Emby*.dll
    sudo chmod 644 Emby*.dll

    然后再重启就可以再插件目录发现字幕插件了

    如何使用中文字幕插件–Emby.MeiamSub

    在菜单-媒体库新建或选择编辑已有的库,然后找到字幕下载部分,勾选这两个字幕,默认是选上的。如图:

    然后就默默的等待字幕更新吧

    如果心急,那么尝试重新创建媒体库然后等待更新

    ITGeeker技术奇客也是刚刚启用,后续有问题会继续更新此文。

    后续,发现字幕获取失败后,会重复下载字幕

    Github也也已有人递交了issue: https://github.com/91270/MeiamSubtitles/issues/61

    但似乎没人更新,所以就先用折中的版办法吧:

    #看了一下重复的文件都是没获取成功产生的,大小在300字节左右,可以用命令先列出来看一下
    find /volume1/video/film -size -500c -size +200c -type f -name "*.srt" -exec ls -ld {} ;
    
    #然后直接删除,也可以添加一个计划任务吧
    find /volume1/video/film -size -500c -size +200c -type f -name "*.srt" -exec rm -f {} ;

    再等等应该有大神更新一下源代码,彻底解决问题。

  • Synology群辉NAS Python 3如何安装PIP

    Synology群辉NAS Python 3如何安装PIP

    Python 3通过API给NAS里的电源获取电影字幕碰到的第一个问题就是:你的群辉NAS没有安装PIP,无法安装Python模块。

    通过群辉应用商店安装的python 3,pip path:cd /volume1/@appstore/py3k/usr/local/lib/python3.8/site-packages

    确认没有,那么开始安装吧:

    curl -k https://bootstrap.pypa.io/get-pip.py | python3

    或者

    curl -O https://bootstrap.pypa.io/get-pip.py
    sudo python3 get-pip.py

    如果发现网络连不上pypa.io, 连接超时错误,如果有代理的话就:

    export http_proxy=http://192.168.1.X:1080
    export https_proxy=http://192.168.1.X:1080

    没有的话也不要急,用镜像地址也可以:

    python3 get-pip.py -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

    确认一下pip或者pip3的安装路径,如果是/var/packages/py3k/target/usr/local/bin,那么:

    export PATH=$PATH:/var/packages/py3k/target/usr/local/bin

    或者

    echo "PATH=\$PATH:/var/packages/py3k/target/usr/local/bin" >> ~/.bashrc
    source ~/.bashrc 

    然后就可以用pip安装需要的模块了

  • 群晖Synology NAS CLI如何添加PHP Module on DSM6.2

    群晖Synology NAS CLI如何添加PHP Module on DSM6.2

    ITGeeker技术奇客用群晖Synology安装了私有云服务Nextcloud,但升级的时候始终碰到缺少pho module的问题,尽管你已经在web station当中打勾了相关的modules,还是会提示缺少相关模块。例如:

    PHP module zip not installed.
    Please ask your server administrator to install the module.
    
    PHP module OpenSSL not installed.
    Please ask your server administrator to install the module.
    

    群晖的DSM6.2同时支持PHP7.0和PHP5.6,根据你要使用的版本,相对应的更改一下版本数字就可以了。

    查看PHP相关参数和配置

    php --ini

    编辑PHP config

    sudo vi /usr/local/etc/php70/php.ini

    替换php module的正确路径及添加需要激活的Modules

    For PHP7.0

    #更改
    extension_dir = "/usr/local/lib/php70/modules"
    #为(ITGeeker技术奇客提醒你检查您系统的正确路径)
    extension_dir = "/volume1/@appstore/PHP7.0/usr/local/lib/php70/modules"
    #添加modules
    extension =  posix.so
    extension =  zip.so
    extension =  openssl.so

    For PHP5.6

    #更改
    extension_dir = "/usr/local/lib/php56/modules"
    #为(ITGeeker技术奇客提醒你检查您系统的正确路径)
    extension_dir = "/volume1/@appstore/PHP5.6/usr/local/lib/php56/modules"
    #添加modules
    extension =  posix.so
    extension =  zip.so
    extension =  openssl.so

    Synology重启PHP

    理论上是不需要,群辉每次调用PHP Cli时会重新读取php.ini文件。如果你要重启webstation,可以用cmd命令重启或者去管理面板通过gui重新启动。

    可以先查询一下你的php版本名称:

    sudo -i #管理员权限才行
    synoservicecfg --list | grep -i PHP
    synoservice --restart pkgctl-PHP7.2
    #或者重启Webstation
    synoservice --restart pkgctl-WebStation
奇客罗方公众号 奇客罗方小程序 奇客罗方客服 ITGeeker Telegram

网站由ITGeeker技术奇客开发并管理;隶属于GeekerCloud奇客罗方智能科技
Site designed and developed by ITGeekerwhich is a sub-website of GeekerCloud
网站地图 | 沪ICP备2021031434号-4