{"id":2863,"date":"2019-11-09T22:05:24","date_gmt":"2019-11-09T14:05:24","guid":{"rendered":"https:\/\/www.liangliang.org.cn\/?p=2863"},"modified":"2020-06-25T16:46:03","modified_gmt":"2020-06-25T08:46:03","slug":"%e7%94%a8debian%e5%ae%9e%e7%8e%b0%ef%bc%9a%e8%99%9a%e6%8b%9f%e5%8c%96%e5%b9%b6%e6%8c%82%e8%bd%bd%e5%b0%8f%e7%b1%b3%e8%b7%af%e7%94%b1%e5%99%a8%e7%a1%ac%e7%9b%98%e7%89%88%ef%bc%8c%e5%ae%9e%e7%8e%b0","status":"publish","type":"post","link":"https:\/\/www.liangliang.org.cn\/?p=2863","title":{"rendered":"\u752810\u5e74\u524d\u7684x61t\u505a\u4e86\u4e2adlna\u670d\u52a1\u5668"},"content":{"rendered":"<p>\u752810\u5e74\u524d\u7684x61t\u505a\u4e86\u4e2adlna\u670d\u52a1\u5668<\/p>\n<\/p>\n<p>\u786c\u4ef6\uff1a<br \/>\n2010\u5e74\u4ea7x61t\u7b14\u8bb0\u672c<br \/>\n\u5c0f\u7c73\u8def\u7531\u56681\u4ee3 1T\u786c\u76d8\u7248<\/p>\n<h3>\n\u6700\u5c0f\u5b89\u88c5 Debian 10<\/h3>\n<p>Debian\u662f\u4e00\u4e2a\u81ea\u7531\u7684\u64cd\u4f5c\u7cfb\u7edf\uff08Linux\uff09\u3002<br \/>\n\u4e0b\u8f7d debian-10.1.0-amd64-netinst.iso<\/p>\n<pre><code>https:\/\/cdimage.debian.org\/debian-cd\/current\/amd64\/iso-cd\/debian-10.1.0-amd64-netinst.iso\n<\/code><\/pre>\n<p>\u7528\u79d1\u5927mirrors.ustc.edu.cn\u6e90\u4ee3\u66ffdeb.debian.org<\/p>\n<pre><code>sed -i 's\/deb.debian.org\/mirrors.ustc.edu.cn\/g' \/etc\/apt\/sources.list\n<\/code><\/pre>\n<p>\u5b89\u88c5\u5b9d\u5854<br \/>\n<a href=\"www.bt.cn\">www.bt.cn<\/a><\/p>\n<p>\u5b9e\u73b0apache mysql php Pure-ftp\u7ec4\u4ef6\u5177\u4f53\u6839\u636e\u81ea\u5df1\u5e94\u7528\u9009\u62e9\u5f00\u542f\u3002<br \/>\n<img decoding=\"async\" src=\"https:\/\/www.liangliang.org.cn\/wp-content\/uploads\/2019\/11\/attach-0-21.png\" alt=\"\" \/><\/p>\n<h3>\n\u4f7f\u7528dlna\u534f\u8bae\u8ba9\u5c0f\u7c73\u7535\u89c6\u81ea\u52a8\u53d1\u73b0\u670d\u52a1\u5668\u4e0a\u7684\u8d44\u6e90<\/h3>\n<p>DLNA\u662fDigital Living Network Alliance\u7684\u7f29\u5199,\u5b83\u662f\u7531 Sony\u4e3a\u9996\u7684\u591a\u5bb6\u5382\u5546\u6240\u7ec4\u6210\u7684\u8054\u76df, \u5e76\u4e14\u5236\u5b9a\u51fa\u4e00\u5957\u8fd9\u7528\u4e8e\u6570\u5b57\u5a92\u4f53\u5206\u4eab\u7684\u534f\u8bae.<\/p>\n<p>\u6700\u8fd1\u7684\u5bb6\u7528\u6570\u5b57\u4ea7\u54c1, \u6bd4\u5982\u8bf4\u624b\u673a, \u5e73\u677f\u7535\u8111, \u6570\u5b57\u7535\u89c6\u7b49\u51e0\u4e4e\u90fd\u6807\u699c\u5b83\u4eec\u662f\u7b26\u5408 DLNA \u8ba4\u8bc1\u7684\u591a\u5a92\u4f53\u8bbe\u5907.<\/p>\n<p>\u53ea\u8981\u5bb6\u4e2d\u7684\u6570\u7801\u8bbe\u5907\u8fde\u63a5\u5230\u540c\u4e00\u4e2a\u533a\u57df\u7f51\u8def, \u4f7f\u7528 DLNA \u5c31\u53ef\u4ee5\u5f88\u65b9\u4fbf\u5730\u628a\u6570\u5b57\u5a92\u4f53\u5206\u4eab\u7ed9\u4e0d\u540c\u7684\u64ad\u653e\u8bbe\u5907. \u6bd4\u5982\u8bf4\u628a\u624b\u673a\u4e2d\u7684\u5f71\u7247\u76f4\u63a5\u9001\u5230\u7535\u89c6\u4e0a\u64ad\u653e, \u6216\u662f\u628a\u7167\u7247\u9001\u8fdb\u5370\u8868\u673a\u4e2d\u5217\u5370\u7b49\u7b49.<\/p>\n<p>\u7531\u4e8e\u53ef\u4ee5\u900f\u8fc7\u65e0\u7ebf\u7f51\u8def\u8fdb\u884c\u8d44\u6599\u4f20\u8f93, \u4e0d\u9700\u8981\u63a5\u4e0a\u4f20\u8f93\u7ebf\u4e5f\u4e0d\u9700\u8981\u989d\u5916\u7684\u8bbe\u5b9a\u52a8\u4f5c, \u76f8\u5f53\u65b9\u4fbf.<\/p>\n<p>\u8fd9\u7bc7\u6587\u7ae0\u4f1a\u95f4\u5355\u4ecb\u7ecd\u5982\u4f55\u5728 Linux \u4e0a\u67b6\u8bbe DLNA server \u6765\u5206\u4eab\u5a92\u4f53, \u540c\u65f6\u4f7f\u7528 ebtables \u6765\u9650\u5236\u4f7f\u7528\u8bbe\u5907.<br \/>\n\u9996\u5148\u662f\u5b89\u88c5 DLNA server, \u6211\u4f7f\u7528\u7684\u662f minidlna \u8fd9\u4e2a\u5f88\u95f4\u5355\u7684\u8f6f\u4ef6. \u5728 Debian \u4e0a\u53ea\u8981\u7528apt \u5c31\u53ef\u4ee5\u5b89\u88c5\u4e86.<\/p>\n<pre><code>apt-get install minidlna\nvi \/etc\/minidlna.conf\n\n\/etc\/minidlna.conf \u6765\u8bbe\u5b9a\u5206\u4eab\u76ee\u5f55:\n\nmedia_dir=\/srv\/media\n\u7b2c\u4e00\u884c\u4f1a\u628a \/srv\/media \u5e95\u4e0b\u6240\u6709\u7684\u5a92\u4f53\u6587\u4ef6(\u7167\u7247, \u5f71\u7247, \u97f3\u4e50)\u5206\u4eab\u51fa\u53bb. \u5982\u679c\u60f3\u8981\u9650\u5236\u5a92\u4f53\u7684\u79cd\u7c7b, \u53ef\u4ee5\u5728\u76ee\u5f55\u524d\u52a0\u4e0a V(\u5f71\u7247), A(\u58f0\u97f3)\u6216 P(\u7167\u7247)\u6765\u6307\u5b9a\u79cd\u7c7b:\n\nmedia_dir=V,\/srv\/video\n\u53e6\u5916\u4e5f\u522b\u5fd8\u4e86\u6307\u5b9a port \u4ee5\u53ca server \u7684\u540d\u79f0:\n\nport=8200\nmodel_name=My DLNA Server\n\u7136\u540e\u66f4\u65b0 cache\n\nservice minidlna force-reload\n<\/code><\/pre>\n<p>\u8fd9\u4e48\u4e00\u6765, \u652f\u6301 DLNA \u7684\u64ad\u653e\u7a0b\u5e8f\u5982 media player \u5c31\u53ef\u4ee5\u76f4\u63a5\u6d4f\u89c8 server \u4e0a\u7684\u5a92\u4f53, \u5e76\u4e14\u4e32\u6d41\u64ad\u653e. \u5f53\u7136, \u5e73\u677f\u6216\u624b\u673a\u4e5f\u80fd\u8f7b\u6613\u64ad\u653e\u5206\u4eab\u51fa\u6765\u7684\u5a92\u4f53.<\/p>\n<p>Sony \u7684\u624b\u673a\u548c\u5e73\u677f\u591a\u534a\u90fd\u6709\u9644\u4e0a DLNA browser, App \u540d\u79f0\u662f\u300c\u5df2\u8fde\u7ebf\u7684\u8bbe\u5907\u300d, \u6253\u5f00\u540e\u4fbf\u4f1a\u81ea\u52a8\u641c\u5bfb\u533a\u57df\u7f51\u8def\u4e2d\u7684 DLNA server. \u5982\u679c\u4f60\u7684\u624b\u673a\u6216\u5e73\u677f\u6ca1\u6709\u5185\u5efa\u8fd9\u7c7b\u8f6f\u4ef6, \u53ef\u4ee5\u5b89\u88c5 MediaHouse UPnP\/DLNA Browser. \u9700\u8981\u6ce8\u610f\u7684\u662f, \u8fd9\u4e9b DLNA browser \u7684\u529f\u80fd\u6bd4\u8f83\u7c7b\u4f3c\u6587\u4ef6\u7ba1\u7406\u5668, \u70b9\u9009\u5a92\u4f53\u540e\u5b83\u4eec\u4f1a\u542f\u52a8\u7cfb\u7edf\u4e2d\u7684\u5a92\u4f53\u64ad\u653e\u7a0b\u5e8f (\u6bd4\u5982\u8bf4 mx player \u6216 poweramp). \u81f3\u4e8e iOS \u7684\u7528\u62a4\u5219\u6709 AirPlayer \u6216\u662f media:connect \u7b49\u9009\u62e9, \u5b83\u4eec\u591a\u534a\u672c\u8eab\u5c31\u5177\u5907\u4e86\u5a92\u4f53\u64ad\u653e\u529f\u80fd.<\/p>\n<h3>\n\u6302\u8f7d\u5c0f\u7c73\u8def\u7531\u5668<\/h3>\n<p>\u4f7f\u7528\u5c0f\u7c73\u8def\u7531\u5668\u624b\u673aapp\u5efa\u7acb\u88abmount\u7684\u76ee\u5f55\uff0c\u5e76\u8bbe\u7f6e\u4e3a\u5206\u4eab\u6743\u9650\u3002<br \/>\n\u7136\u540emount<\/p>\n<pre><code>mount -t cifs \/\/xxx.xxx.xxx.xxx\/youpath \/you\/loaclpath -o guest,rw,uid=1001,gid=1001\n<\/code><\/pre>\n<p>\u7ed3\u5408\/etc\/passwd\u9009\u62e9\u7528\u6237\u4f7f\u7528uid\u548cgid\uff0c\u8fd9\u6837\u5c31\u53ef\u653e\u5fc3\u7684\u5229\u7528http ftp\u7b49\u65b9\u5f0f\u8fdb\u884c\u8bfb\u5199\u6743\u9650\u4e86\u3002<\/p>\n<p>\u5c06mount\u653e\u5165<br \/>\n\/etc\/rc.local<\/p>\n<pre><code>#Add by liang\n#mount -t cifs \/\/xxx.xxx.xxx.xxx\/youpath1 \/you\/localpath1 -o guest\nmount -t cifs \/\/xxx.xxx.xxx.xxx\/youpath2 \/you\/localpath2 -o guest,rw,uid=1001,gid=1001\n#\u8ba9debian\u5f00\u673a\u540e\u53ef\u4ee5\u81ea\u52a8\u606f\u5c4f\nsetterm -blank 1\nexit 0\n<\/code><\/pre>\n<h3>\n\u5229\u7528docker\u865a\u62df\u5316\u8fd0\u884c\u4e0b\u8f7d\u5bb9\u5668<\/h3>\n<p>\u4ec0\u4e48\u662f Docker<br \/>\nDocker \u6700\u521d\u662f dotCloud \u516c\u53f8\u521b\u59cb\u4eba Solomon Hykes \u5728\u6cd5\u56fd\u671f\u95f4\u53d1\u8d77\u7684\u4e00\u4e2a\u516c\u53f8\u5185\u90e8\u9879\u76ee\uff0c\u5b83\u662f\u57fa\u4e8e dotCloud \u516c\u53f8\u591a\u5e74\u4e91\u670d\u52a1\u6280\u672f\u7684\u4e00\u6b21\u9769\u65b0\uff0c\u5e76\u4e8e 2013 \u5e74 3 \u6708\u4ee5 Apache 2.0 \u6388\u6743\u534f\u8bae\u5f00\u6e90\uff0c\u4e3b\u8981\u9879\u76ee\u4ee3\u7801\u5728 GitHub \u4e0a\u8fdb\u884c\u7ef4\u62a4\u3002Docker \u9879\u76ee\u540e\u6765\u8fd8\u52a0\u5165\u4e86 Linux \u57fa\u91d1\u4f1a\uff0c\u5e76\u6210\u7acb\u63a8\u52a8 \u5f00\u653e\u5bb9\u5668\u8054\u76df\uff08OCI\uff09\u3002<\/p>\n<p>Docker \u81ea\u5f00\u6e90\u540e\u53d7\u5230\u5e7f\u6cdb\u7684\u5173\u6ce8\u548c\u8ba8\u8bba\uff0c\u81f3\u4eca\u5176 GitHub \u9879\u76ee \u5df2\u7ecf\u8d85\u8fc7 5 \u4e07 4 \u5343\u4e2a\u661f\u6807\u548c\u4e00\u4e07\u591a\u4e2a fork\u3002\u751a\u81f3\u7531\u4e8e Docker \u9879\u76ee\u7684\u706b\u7206\uff0c\u5728 2013 \u5e74\u5e95\uff0cdotCloud \u516c\u53f8\u51b3\u5b9a\u6539\u540d\u4e3a Docker\u3002Docker \u6700\u521d\u662f\u5728 Ubuntu 12.04 \u4e0a\u5f00\u53d1\u5b9e\u73b0\u7684\uff1bRed Hat \u5219\u4ece RHEL 6.5 \u5f00\u59cb\u5bf9 Docker \u8fdb\u884c\u652f\u6301\uff1bGoogle \u4e5f\u5728\u5176 PaaS \u4ea7\u54c1\u4e2d\u5e7f\u6cdb\u5e94\u7528 Docker\u3002<\/p>\n<p>Docker \u4f7f\u7528 Google \u516c\u53f8\u63a8\u51fa\u7684 Go \u8bed\u8a00 \u8fdb\u884c\u5f00\u53d1\u5b9e\u73b0\uff0c\u57fa\u4e8e Linux \u5185\u6838\u7684 cgroup\uff0cnamespace\uff0c\u4ee5\u53ca AUFS \u7c7b\u7684 Union FS \u7b49\u6280\u672f\uff0c\u5bf9\u8fdb\u7a0b\u8fdb\u884c\u5c01\u88c5\u9694\u79bb\uff0c\u5c5e\u4e8e \u64cd\u4f5c\u7cfb\u7edf\u5c42\u9762\u7684\u865a\u62df\u5316\u6280\u672f\u3002\u7531\u4e8e\u9694\u79bb\u7684\u8fdb\u7a0b\u72ec\u7acb\u4e8e\u5bbf\u4e3b\u548c\u5176\u5b83\u7684\u9694\u79bb\u7684\u8fdb\u7a0b\uff0c\u56e0\u6b64\u4e5f\u79f0\u5176\u4e3a\u5bb9\u5668\u3002\u6700\u521d\u5b9e\u73b0\u662f\u57fa\u4e8e LXC\uff0c\u4ece 0.7 \u7248\u672c\u4ee5\u540e\u5f00\u59cb\u53bb\u9664 LXC\uff0c\u8f6c\u800c\u4f7f\u7528\u81ea\u884c\u5f00\u53d1\u7684 libcontainer\uff0c\u4ece 1.11 \u5f00\u59cb\uff0c\u5219\u8fdb\u4e00\u6b65\u6f14\u8fdb\u4e3a\u4f7f\u7528 runC \u548c containerd\u3002<\/p>\n<p>\u5378\u8f7d\u65e7\u7248\u672c<br \/>\n\u65e7\u7248\u672c\u7684 Docker \u79f0\u4e3a docker \u6216\u8005 docker-engine\uff0c\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u5378\u8f7d\u65e7\u7248\u672c\uff1a<\/p>\n<pre><code>$ sudo apt-get remove docker \\\n               docker-engine \\\n               docker.io\n<\/code><\/pre>\n<p>\u4f7f\u7528 APT \u5b89\u88c5<br \/>\n\u7531\u4e8e apt \u6e90\u4f7f\u7528 HTTPS \u4ee5\u786e\u4fdd\u8f6f\u4ef6\u4e0b\u8f7d\u8fc7\u7a0b\u4e2d\u4e0d\u88ab\u7be1\u6539\u3002\u56e0\u6b64\uff0c\u6211\u4eec\u9996\u5148\u9700\u8981\u6dfb\u52a0\u4f7f\u7528 HTTPS \u4f20\u8f93\u7684\u8f6f\u4ef6\u5305\u4ee5\u53ca CA \u8bc1\u4e66\u3002<\/p>\n<pre><code>$ sudo apt-get update\n\n$ sudo apt-get install \\\n     apt-transport-https \\\n     ca-certificates \\\n     curl \\\n     gnupg2 \\\n     lsb-release \\\n     software-properties-common\n<\/code><\/pre>\n<p>\u9274\u4e8e\u56fd\u5185\u7f51\u7edc\u95ee\u9898\uff0c\u5f3a\u70c8\u5efa\u8bae\u4f7f\u7528\u56fd\u5185\u6e90\uff0c\u5b98\u65b9\u6e90\u8bf7\u5728\u6ce8\u91ca\u4e2d\u67e5\u770b\u3002<\/p>\n<p>\u4e3a\u4e86\u786e\u8ba4\u6240\u4e0b\u8f7d\u8f6f\u4ef6\u5305\u7684\u5408\u6cd5\u6027\uff0c\u9700\u8981\u6dfb\u52a0\u8f6f\u4ef6\u6e90\u7684 GPG \u5bc6\u94a5\u3002<\/p>\n<pre><code>$ curl -fsSL https:\/\/mirrors.ustc.edu.cn\/docker-ce\/linux\/debian\/gpg | sudo apt-key add -\n<\/code><\/pre>\n<pre><code># \u5b98\u65b9\u6e90\n# $ curl -fsSL https:\/\/download.docker.com\/linux\/debian\/gpg | sudo apt-key add -\n<\/code><\/pre>\n<p>\u7136\u540e\uff0c\u6211\u4eec\u9700\u8981\u5411 source.list \u4e2d\u6dfb\u52a0 Docker CE \u8f6f\u4ef6\u6e90\uff1a<\/p>\n<pre><code>$ sudo add-apt-repository \\\n   &quot;deb [arch=amd64] https:\/\/mirrors.ustc.edu.cn\/docker-ce\/linux\/debian \\\n   $(lsb_release -cs) \\\n   stable&quot;\n<\/code><\/pre>\n<pre><code># \u5b98\u65b9\u6e90\n# $ sudo add-apt-repository \\\n#    &quot;deb [arch=amd64] https:\/\/download.docker.com\/linux\/debian \\\n#    $(lsb_release -cs) \\\n#    stable&quot;\n<\/code><\/pre>\n<p>\u4ee5\u4e0a\u547d\u4ee4\u4f1a\u6dfb\u52a0\u7a33\u5b9a\u7248\u672c\u7684 Docker CE APT \u6e90\uff0c\u5982\u679c\u9700\u8981\u6d4b\u8bd5\u6216\u6bcf\u65e5\u6784\u5efa\u7248\u672c\u7684 Docker CE \u8bf7\u5c06 stable \u6539\u4e3a test \u6216\u8005 nightly\u3002<\/p>\n<p>\u5b89\u88c5 Docker CE<br \/>\n\u66f4\u65b0 apt \u8f6f\u4ef6\u5305\u7f13\u5b58\uff0c\u5e76\u5b89\u88c5 docker-ce\u3002<\/p>\n<pre><code>$ sudo apt-get update\n\n$ sudo apt-get install docker-ce\n<\/code><\/pre>\n<p>\u4f7f\u7528\u811a\u672c\u81ea\u52a8\u5b89\u88c5<br \/>\n\u5728\u6d4b\u8bd5\u6216\u5f00\u53d1\u73af\u5883\u4e2d Docker \u5b98\u65b9\u4e3a\u4e86\u7b80\u5316\u5b89\u88c5\u6d41\u7a0b\uff0c\u63d0\u4f9b\u4e86\u4e00\u5957\u4fbf\u6377\u7684\u5b89\u88c5\u811a\u672c\uff0cDebian \u7cfb\u7edf\u4e0a\u53ef\u4ee5\u4f7f\u7528\u8fd9\u5957\u811a\u672c\u5b89\u88c5\uff0c\u53e6\u5916\u53ef\u4ee5\u901a\u8fc7 --mirror \u9009\u9879\u4f7f\u7528\u56fd\u5185\u6e90\u8fdb\u884c\u5b89\u88c5\uff1a<\/p>\n<pre><code>$ curl -fsSL get.docker.com -o get-docker.sh\n$ sudo sh get-docker.sh --mirror Aliyun\n# $ sudo sh get-docker.sh --mirror AzureChinaCloud\n<\/code><\/pre>\n<p>\u6267\u884c\u8fd9\u4e2a\u547d\u4ee4\u540e\uff0c\u811a\u672c\u5c31\u4f1a\u81ea\u52a8\u7684\u5c06\u4e00\u5207\u51c6\u5907\u5de5\u4f5c\u505a\u597d\uff0c\u5e76\u4e14\u628a Docker CE \u7684\u7a33\u5b9a(stable)\u7248\u672c\u5b89\u88c5\u5728\u7cfb\u7edf\u4e2d\u3002<\/p>\n<p>\u542f\u52a8 Docker CE<\/p>\n<pre><code>$ sudo systemctl enable docker\n$ sudo systemctl start docker\n<\/code><\/pre>\n<p>\u5efa\u7acb docker \u7528\u6237\u7ec4<br \/>\n\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0cdocker \u547d\u4ee4\u4f1a\u4f7f\u7528 Unix socket \u4e0e Docker \u5f15\u64ce\u901a\u8baf\u3002\u800c\u53ea\u6709 root \u7528\u6237\u548c docker \u7ec4\u7684\u7528\u6237\u624d\u53ef\u4ee5\u8bbf\u95ee Docker \u5f15\u64ce\u7684 Unix socket\u3002\u51fa\u4e8e\u5b89\u5168\u8003\u8651\uff0c\u4e00\u822c Linux \u7cfb\u7edf\u4e0a\u4e0d\u4f1a\u76f4\u63a5\u4f7f\u7528 root \u7528\u6237\u3002\u56e0\u6b64\uff0c\u66f4\u597d\u5730\u505a\u6cd5\u662f\u5c06\u9700\u8981\u4f7f\u7528 docker \u7684\u7528\u6237\u52a0\u5165 docker \u7528\u6237\u7ec4\u3002<\/p>\n<p>\u5efa\u7acb docker \u7ec4\uff1a<\/p>\n<pre><code>$ sudo groupadd docker\n<\/code><\/pre>\n<p>\u5c06\u5f53\u524d\u7528\u6237\u52a0\u5165 docker \u7ec4\uff1a<\/p>\n<pre><code>$ sudo usermod -aG docker $USER\n<\/code><\/pre>\n<p>\u9000\u51fa\u5f53\u524d\u7ec8\u7aef\u5e76\u91cd\u65b0\u767b\u5f55\uff0c\u8fdb\u884c\u5982\u4e0b\u6d4b\u8bd5\u3002<\/p>\n<p>\u6d4b\u8bd5 Docker \u662f\u5426\u5b89\u88c5\u6b63\u786e<\/p>\n<pre><code>$ docker run hello-world\n\nUnable to find image 'hello-world:latest' locally\nlatest: Pulling from library\/hello-world\nd1725b59e92d: Pull complete\nDigest: sha256:0add3ace90ecb4adbf7777e9aacf18357296e799f81cabc9fde470971e499788\nStatus: Downloaded newer image for hello-world:latest\n\nHello from Docker!\nThis message shows that your installation appears to be working correctly.\n\nTo generate this message, Docker took the following steps:\n 1. The Docker client contacted the Docker daemon.\n 2. The Docker daemon pulled the &quot;hello-world&quot; image from the Docker Hub.\n    (amd64)\n 3. The Docker daemon created a new container from that image which runs the\n    executable that produces the output you are currently reading.\n 4. The Docker daemon streamed that output to the Docker client, which sent it\n    to your terminal.\n\nTo try something more ambitious, you can run an Ubuntu container with:\n $ docker run -it ubuntu bash\n\nShare images, automate workflows, and more with a free Docker ID:\n https:\/\/hub.docker.com\/\n\nFor more examples and ideas, visit:\n https:\/\/docs.docker.com\/get-started\/\n<\/code><\/pre>\n<p>\u82e5\u80fd\u6b63\u5e38\u8f93\u51fa\u4ee5\u4e0a\u4fe1\u606f\uff0c\u5219\u8bf4\u660e\u5b89\u88c5\u6210\u529f\u3002<\/p>\n<p>\u955c\u50cf\u52a0\u901f\u5668<br \/>\n\u56fd\u5185\u4ece Docker Hub \u62c9\u53d6\u955c\u50cf\u6709\u65f6\u4f1a\u9047\u5230\u56f0\u96be\uff0c\u6b64\u65f6\u53ef\u4ee5\u914d\u7f6e\u955c\u50cf\u52a0\u901f\u5668\u3002\u56fd\u5185\u5f88\u591a\u4e91\u670d\u52a1\u5546\u90fd\u63d0\u4f9b\u4e86\u56fd\u5185\u52a0\u901f\u5668\u670d\u52a1\uff0c\u4f8b\u5982\uff1a<\/p>\n<p>Azure \u4e2d\u56fd\u955c\u50cf https:\/\/dockerhub.azk8s.cn<br \/>\n\u963f\u91cc\u4e91\u52a0\u901f\u5668(\u9700\u767b\u5f55\u8d26\u53f7\u83b7\u53d6)<br \/>\n\u4e03\u725b\u4e91\u52a0\u901f\u5668 https:\/\/reg-mirror.qiniu.com<br \/>\n\u7531\u4e8e\u955c\u50cf\u670d\u52a1\u53ef\u80fd\u51fa\u73b0\u5b95\u673a\uff0c\u5efa\u8bae\u540c\u65f6\u914d\u7f6e\u591a\u4e2a\u955c\u50cf\u3002<\/p>\n<p>\u56fd\u5185\u5404\u5927\u4e91\u670d\u52a1\u5546\u5747\u63d0\u4f9b\u4e86 Docker \u955c\u50cf\u52a0\u901f\u670d\u52a1\uff0c\u5efa\u8bae\u6839\u636e\u8fd0\u884c Docker \u7684\u4e91\u5e73\u53f0\u9009\u62e9\u5bf9\u5e94\u7684\u955c\u50cf\u52a0\u901f\u670d\u52a1\uff0c\u5177\u4f53\u8bf7\u53c2\u8003\u5b98\u65b9\u6587\u6863\u3002<\/p>\n<p>\u672c\u8282\u6211\u4eec\u4ee5 Azure \u4e2d\u56fd\u955c\u50cf https:\/\/dockerhub.azk8s.cn \u4e3a\u4f8b\u8fdb\u884c\u4ecb\u7ecd\u3002<\/p>\n<pre><code>Ubuntu 16.04+\u3001Debian 8+\u3001CentOS 7\n\u5bf9\u4e8e\u4f7f\u7528 systemd \u7684\u7cfb\u7edf\uff0c\u8bf7\u5728 \/etc\/docker\/daemon.json \u4e2d\u5199\u5165\u5982\u4e0b\u5185\u5bb9\uff08\u5982\u679c\u6587\u4ef6\u4e0d\u5b58\u5728\u8bf7\u65b0\u5efa\u8be5\u6587\u4ef6\uff09\n\n{\n  &quot;registry-mirrors&quot;: [\n    &quot;https:\/\/dockerhub.azk8s.cn&quot;,\n    &quot;https:\/\/reg-mirror.qiniu.com&quot;\n  ]\n}\n\u6ce8\u610f\uff0c\u4e00\u5b9a\u8981\u4fdd\u8bc1\u8be5\u6587\u4ef6\u7b26\u5408 json \u89c4\u8303\uff0c\u5426\u5219 Docker \u5c06\u4e0d\u80fd\u542f\u52a8\u3002\n\n\u4e4b\u540e\u91cd\u65b0\u542f\u52a8\u670d\u52a1\u3002\n\n$ sudo systemctl daemon-reload\n$ sudo systemctl restart docker\n<\/code><\/pre>\n<p>\u6ce8\u610f\uff1a\u5982\u679c\u60a8\u4e4b\u524d\u67e5\u770b\u65e7\u6559\u7a0b\uff0c\u4fee\u6539\u4e86 docker.service \u6587\u4ef6\u5185\u5bb9\uff0c\u8bf7\u53bb\u6389\u60a8\u6dfb\u52a0\u7684\u5185\u5bb9<\/p>\n<pre><code>\uff08--registry-mirror=https:\/\/dockerhub.azk8s.cn\uff09\n<\/code><\/pre>\n<h3>\n\u5b89\u88c5rrshare<\/h3>\n<p><a href=\"\">https:\/\/github.com\/koolob\/rrshare<\/a><\/p>\n<pre><code>docker run -d -p 3001:3001 \\\n  -v \/www\/rrshare:\/opt\/work\/store --add-host=www.zmzfile.com:127.0.0.1 --name rrshare koolob\/rrshare:latest\n\nxxxx\u4f60\u7684\u6620\u5c04\u7aef\u53e3\u53ef\u4ee5\u91c7\u7528 3333:3333\u4e4b\u7c7b\u7684\n<\/code><\/pre>\n<p>\u7531\u4e8edocker rrshare\u5bf9cpu\u5360\u7528\u7387\u6bd4\u8f83\u9ad8\u5199\u4e86\u4e24\u4e2a\u811a\u672c\u65b9\u4fbf\u6c14\u542f\u52a8\u548c\u505c\u6b62\u3002<\/p>\n<pre><code>runrr.sh\ndocker run rrshare\nstoprr.sh\ndocker stop rrshare\ndocker container rm rrshare\n<\/code><\/pre>\n<p>\u8fd9\u91cc\u53ef\u4ee5\u8bbe\u7f6e\u8def\u5f84\u5e94\u7edf\u4e00\u4e3a\uff1a<br \/>\ndlna<br \/>\n\u5c0f\u7c73\u8def\u7531\u786c\u76d8mount\u8def\u5f84<\/p>\n<p>http:\/\/ip:xxxx<br \/>\n\u9ed8\u8ba4\u5bc6\u7801\uff1a123456<br \/>\n\u8bf7\u53ca\u65f6\u4fee\u6539<\/p>\n<h3>\n\u8bbe\u7f6eUFW\u9632\u706b\u5899<\/h3>\n<p>UFW \u5168\u79f0\u4e3aUncomplicated Firewall\uff0c\u662fUbuntu \u7cfb\u7edf\u4e0a\u9ed8\u8ba4\u7684\u9632\u706b\u5899\u7ec4\u4ef6, \u4e3a\u4e86\u8f7b\u91cf\u5316\u914d\u7f6eiptables \u800c\u5f00\u53d1\u7684\u4e00\u6b3e\u5de5\u5177\u3002 UFW \u63d0\u4f9b\u4e00\u4e2a\u975e\u5e38\u53cb\u597d\u7684\u754c\u9762\u7528\u4e8e\u521b\u5efa\u57fa\u4e8eIPV4\uff0cIPV6\u7684\u9632\u706b\u5899\u89c4\u5219\u3002<\/p>\n<p>\u5b89\u88c5bt\u540e\uff0c\u4f1a\u5f71\u54cdufw\u7684\u914d\u7f6e\uff0c\u6240\u4ee5\u5148\u6e05\u7a7a\u5b9d\u5854\u914d\u7f6e\uff0c\u5728\u624b\u52a8\u914d\u7f6eufw\u548c\u5b9d\u5854\u7684\u7ba1\u7406\u53ef\u4ee5\u540c\u6b65\u3002<\/p>\n<pre><code>ufw reset#\u91cd\u7f6e\u9632\u706b\u5899\n<\/code><\/pre>\n<p>\u4f7f\u7528\u5982\u4e0b\u547d\u4ee4\u8fdb\u884c\u7aef\u53e3\u7ba1\u7406\uff0c\u5c06\u4f60\u5f00\u653e\u7684dlna\u7aef\u53e3rrshare64\u7684\u7aef\u53e3\u4ee5\u53ca\u5b9a\u4e49\u7684ssh vpn web ftp \u7b49\u7aef\u53e3\u8fdb\u884c\u5f00\u653e\u3002\u4e3a\u4e86dlna\u7684\u5b89\u5168\u6027\uff0c\u8bf7\u4f7f\u7528ufw allow from xx.xx.xx.xx to any port xxxx\u4ec5\u53ef\u7535\u89c6dlna\u4f7f\u7528\uff0c\u5207\u8bb0\u3002<\/p>\n<pre><code>ufw enable\nufw disable\nufw allow xx\/tcp\nufw delete allow xx\/tcp\nufw allow from xx.xx.xx.xx to any port xxxx\nufw deny from xxx.xxx.xxx.xxx\n<\/code><\/pre>\n<p>(\u53ef\u4ee5\u7ed3\u5408lastd\u8fdb\u884c\u8bbe\u7f6e\uff0clastd\u4e3a\u8bbf\u95ee\/var\/log\/ \u65e5\u5fd7)<\/p>\n<p>ufw verlose#\u67e5\u770bufw\u8bbe\u7f6e<\/p>\n<pre><code>Status: active\nTo                         Action      From\n--                         ------      ----\nxxxx\/tcp                   ALLOW       Anywhere                  \nxx\/tcp                     ALLOW       Anywhere                  \nxxxxx:xxxxx\/tcp            ALLOW       Anywhere                  \nxx\/tcp                     ALLOW       Anywhere                  \nxx\/tcp                     ALLOW       Anywhere                  \n88\/tcp                     ALLOW       Anywhere                  \nxxxx\/tcp                   ALLOW       Anywhere                  \nxxxx                       ALLOW       xxx.xxx.xxx.xxx             \nxxxx\/tcp                   ALLOW       Anywhere                  \nxxxx\/tcp (v6)              ALLOW       Anywhere (v6)             \nxx\/tcp (v6)                ALLOW       Anywhere (v6)             \nxxxxx:xxxxx\/tcp (v6)       ALLOW       Anywhere (v6)             \nxx\/tcp (v6)                ALLOW       Anywhere (v6)             \nxx\/tcp (v6)                ALLOW       Anywhere (v6)             \nxx\/tcp (v6)                ALLOW       Anywhere (v6)             \nxxxx\/tcp (v6)              ALLOW       Anywhere (v6)             \nxxxx\/tcp (v6)              ALLOW       Anywhere (v6)            \n<\/code><\/pre>\n<p>ufw\u53ef\u4ee5\u5feb\u901f\u7b80\u4fbf\u7684\u914d\u7f6eiptables\uff0cufw\u914d\u7f6e\u540e\u751f\u6210\u7684\u914d\u7f6e\u6587\u4ef6\u98ce\u683c\u4e0eiptables\u4e00\u81f4\u3002\u914d\u7f6e\u6587\u4ef6\u89c1\uff1a<\/p>\n<pre><code>liang@thinkpad:~$ cat \/etc\/ufw\/\nafter6.rules                   \nbefore6.rules                  \nufw.conf\nafter6.rules.20191106_230830 \nbefore6.rules.20191106_230830\nuser6.rules\nafter.init\nbefore.init\nuser6.rules.20191106_230830\nafter.rules\nbefore.rules                   \nuser.rules\nafter.rules.20191106_230830\nbefore.rules.20191106_230830\nuser.rules.20191106_230830\napplications.d\/\nsysctl.conf   \n<\/code><\/pre>\n<p>\u53e6\u5916\u4e00\u4e9bufw\u4e00\u5e76\u8bb0\u5f55\u5728\u6b64\uff1a<br \/>\n1 \u542f\u7528<\/p>\n<pre><code> sudo ufw enable\n sudo ufw default deny \n<\/code><\/pre>\n<p>\u4f5c\u7528\uff1a\u5f00\u542f\u4e86\u9632\u706b\u5899\u5e76\u968f\u7cfb\u7edf\u542f\u52a8\u540c\u65f6\u5173\u95ed\u6240\u6709\u5916\u90e8\u5bf9\u672c\u673a\u7684\u8bbf\u95ee\uff08\u672c\u673a\u8bbf\u95ee\u5916\u90e8\u6b63\u5e38\uff09\u3002<br \/>\n2 \u5173\u95ed<\/p>\n<pre><code> sudo ufw disable \n<\/code><\/pre>\n<p>2 \u67e5\u770b\u9632\u706b\u5899\u72b6\u6001<\/p>\n<pre><code> sudo ufw status \n<\/code><\/pre>\n<p>3 \u5f00\u542f\/\u7981\u7528\u76f8\u5e94\u7aef\u53e3\u6216\u670d\u52a1\u4e3e\u4f8b<\/p>\n<pre><code> sudo ufw allow 80 \u5141\u8bb8\u5916\u90e8\u8bbf\u95ee80\u7aef\u53e3\n sudo ufw delete allow 80 \u7981\u6b62\u5916\u90e8\u8bbf\u95ee80 \u7aef\u53e3\n sudo ufw allow from 192.168.1.1 \u5141\u8bb8\u6b64IP\u8bbf\u95ee\u6240\u6709\u7684\u672c\u673a\u7aef \n sudo ufw deny smtp \u7981\u6b62\u5916\u90e8\u8bbf\u95eesmtp\u670d\u52a1\n sudo ufw delete allow smtp \u5220\u9664\u4e0a\u9762\u5efa\u7acb\u7684\u67d0\u6761\u89c4\u5219\n sudo ufw deny proto tcp from 10.0.0.0\/8 to 192.168.0.1 port 22 \u8981\u62d2\u7edd\u6240\u6709\u7684TCP\u6d41\u91cf\u4ece10.0.0.0\/8 \u5230192.168.0.1\u5730\u5740\u768422\u7aef\u53e3\n\u53ef\u4ee5\u5141\u8bb8\u6240\u6709RFC1918\u7f51\u7edc\uff08\u5c40\u57df\u7f51\/\u65e0\u7ebf\u5c40\u57df\u7f51\u7684\uff09\u8bbf\u95ee\u8fd9\u4e2a\u4e3b\u673a\uff08\/8,\/16,\/12\u662f\u4e00\u79cd\u7f51\u7edc\u5206\u7ea7\uff09\uff1a\nsudo ufw allow from 10.0.0.0\/8\nsudo ufw allow from 172.16.0.0\/12\nsudo ufw allow from 192.168.0.0\/16\n\n sudo apt-get install ufw\n sudo ufw enable\n sudo ufw default deny \n<\/code><\/pre>\n<p>\u53c2\u89c1\uff1a[https:\/\/wiki.ubuntu.org.cn\/ufw\u4f7f\u7528\u6307\u5357]<\/p>\n<h3>\nVPN\u7a7f\u900f\u6d89\u53cafq\u6682\u65f6\u6ee4\u8fc7<\/h3>\n<p>\u7ed3\u5408isp\u8be2\u95ee\u548c\u8fdb\u884cvpn\u8bbe\u7f6e\uff0c\u56fd\u60c5\u539f\u56e0\u4e0d\u65b9\u4fbf\u900f\u9732\u4e86\u3002\u8c05\u89e3\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u752810\u5e74\u524d\u7684x61t\u505a\u4e86\u4e2adlna\u670d\u52a1\u5668 \u786c\u4ef6\uff1a 2010\u5e74\u4ea7x61t\u7b14\u8bb0\u672c \u5c0f\u7c73\u8def\u7531\u56681\u4ee3 1T\u786c\u76d8\u7248 \u6700\u5c0f\u5b89\u88c5 Debian 10 Debian\u662f\u4e00\u4e2a\u81ea\u7531\u7684\u64cd\u4f5c\u7cfb\u7edf\uff08Linux\uff09\u3002 \u4e0b\u8f7d debi&#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-2863","post","type-post","status-publish","format-standard","hentry","category-debian"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/www.liangliang.org.cn\/index.php?rest_route=\/wp\/v2\/posts\/2863","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.liangliang.org.cn\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.liangliang.org.cn\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.liangliang.org.cn\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.liangliang.org.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2863"}],"version-history":[{"count":40,"href":"https:\/\/www.liangliang.org.cn\/index.php?rest_route=\/wp\/v2\/posts\/2863\/revisions"}],"predecessor-version":[{"id":3339,"href":"https:\/\/www.liangliang.org.cn\/index.php?rest_route=\/wp\/v2\/posts\/2863\/revisions\/3339"}],"wp:attachment":[{"href":"https:\/\/www.liangliang.org.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2863"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.liangliang.org.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2863"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.liangliang.org.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2863"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}