From 09cf8d37aec4992f0219fc0412f88e01d7a931a6 Mon Sep 17 00:00:00 2001 From: FintyLemming Date: Mon, 23 Jan 2023 10:56:29 +0800 Subject: [PATCH 1/2] New post --- .../index.zh-cn.md | 103 ++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 content/post/76f452a4f64e45e081d4c282f754ee93/index.zh-cn.md diff --git a/content/post/76f452a4f64e45e081d4c282f754ee93/index.zh-cn.md b/content/post/76f452a4f64e45e081d4c282f754ee93/index.zh-cn.md new file mode 100644 index 0000000..8f47070 --- /dev/null +++ b/content/post/76f452a4f64e45e081d4c282f754ee93/index.zh-cn.md @@ -0,0 +1,103 @@ ++++ +author = "FlintyLemming" +title = "NAS 只用后台网页 SSH 本机 Shell" +slug = "76f452a4f64e45e081d4c282f754ee93" +date = "2022-01-23" +description = "" +categories = ["HomeLab"] +tags = ["NAS", "Docker"] +image = "https://img.mitsea.com/blog/posts/2023/01/NAS%20%E5%8F%AA%E7%94%A8%E5%90%8E%E5%8F%B0%E7%BD%91%E9%A1%B5%20SSH%20%E6%9C%AC%E6%9C%BA%20Shell/thai-an-7esp-3K0z28-unsplash.jpg?x-oss-process=style/ImageCompress" ++++ + +有的人 NAS 远程可能只用了官方提供的网页穿透或者只映射了后台网页,此时如果有临时访问 NAS Shell 命令行的话就麻烦了,毕竟没有映射 22 SSH 端口。本篇文章介绍下解决方法,并在 QNAP 和 Synology 上实际演示操作。该方法需要用到 Docker。 + +## 原理 + +Docker 的子网实际上是从 NAS 自己桥接出来的,你可以理解 NAS 自己是一个路由器,Docker 每个容器都是一个子网设备。那子网设备去连接网关设备,实际上就连接到了 NAS 本身。 + +## 实际操作演示 + +### QNAP + +1. 安装 Container Station 容器工作站。需要设备至少有 4G 内存,arm64 和 x86_64 都可以。 +2. 在 创建 选项卡里搜索 `arangodb/ssh-client` 这个镜像,然后点 安装。这个镜像是 arm64 和 x86_64 都兼容的。 + + ![](https://img.mitsea.com/blog/posts/2023/01/NAS%20%E5%8F%AA%E7%94%A8%E5%90%8E%E5%8F%B0%E7%BD%91%E9%A1%B5%20SSH%20%E6%9C%AC%E6%9C%BA%20Shell/Untitled.png?x-oss-process=style/ImageCompress) + +3. 命令 这里一定要改,它原来是 ssh,要改成 /bin/sh。他原来的意思是我们直接在 进入点 那里输入 ssh 参数直接连接,但是在 QNAP WebUI 上不好操作,所以我们先从它的 shell 启动起来。 + + ![](https://img.mitsea.com/blog/posts/2023/01/NAS%20%E5%8F%AA%E7%94%A8%E5%90%8E%E5%8F%B0%E7%BD%91%E9%A1%B5%20SSH%20%E6%9C%AC%E6%9C%BA%20Shell/Untitled%201.png?x-oss-process=style/ImageCompress) + +4. 回到 总览,点击启动的容器右侧的 终端机 图标 + + ![](https://img.mitsea.com/blog/posts/2023/01/NAS%20%E5%8F%AA%E7%94%A8%E5%90%8E%E5%8F%B0%E7%BD%91%E9%A1%B5%20SSH%20%E6%9C%AC%E6%9C%BA%20Shell/Untitled%202.png?x-oss-process=style/ImageCompress) + +5. 命令你可以直接写 ssh 的命令,不过我这里先进 shell,一样的 + + ![](https://img.mitsea.com/blog/posts/2023/01/NAS%20%E5%8F%AA%E7%94%A8%E5%90%8E%E5%8F%B0%E7%BD%91%E9%A1%B5%20SSH%20%E6%9C%AC%E6%9C%BA%20Shell/Untitled%203.png?x-oss-process=style/ImageCompress) + +6. 点击连接后,就会新打开一个标签页,这个无论你是用的 QNAP 自己的穿透,还是自己通过 nginx 反代到公网都是可以打开的。打开就是这个容器内部的 shell。 + + + + ![](https://img.mitsea.com/blog/posts/2023/01/NAS%20%E5%8F%AA%E7%94%A8%E5%90%8E%E5%8F%B0%E7%BD%91%E9%A1%B5%20SSH%20%E6%9C%AC%E6%9C%BA%20Shell/Untitled%204.png?x-oss-process=style/ImageCompress) + +7. 在 SSH 至本机前,要先找一下 Docker 容器的网关地址是什么。在 属性 - 网络设置 - docker0 可以看到。我的是 10.0.5.1。 + + ![](https://img.mitsea.com/blog/posts/2023/01/NAS%20%E5%8F%AA%E7%94%A8%E5%90%8E%E5%8F%B0%E7%BD%91%E9%A1%B5%20SSH%20%E6%9C%AC%E6%9C%BA%20Shell/Untitled%205.png?x-oss-process=style/ImageCompress) + +8. 回到刚才的终端,ssh 这个地址,就进入到了 NAS 自己的 shell 了。 + + ![](https://img.mitsea.com/blog/posts/2023/01/NAS%20%E5%8F%AA%E7%94%A8%E5%90%8E%E5%8F%B0%E7%BD%91%E9%A1%B5%20SSH%20%E6%9C%AC%E6%9C%BA%20Shell/Untitled%206.png?x-oss-process=style/ImageCompress) + + +### Synology + +1. 在 Docker - 注册表 中搜索 `arangodb/ssh-client` 并双击,选择 latest 下载镜像 + + ![](https://img.mitsea.com/blog/posts/2023/01/NAS%20%E5%8F%AA%E7%94%A8%E5%90%8E%E5%8F%B0%E7%BD%91%E9%A1%B5%20SSH%20%E6%9C%AC%E6%9C%BA%20Shell/Untitled%207.png?x-oss-process=style/ImageCompress) + +2. 下载完后在 映像 里找到,双击启动,网络选择默认的 bridge + + ![](https://img.mitsea.com/blog/posts/2023/01/NAS%20%E5%8F%AA%E7%94%A8%E5%90%8E%E5%8F%B0%E7%BD%91%E9%A1%B5%20SSH%20%E6%9C%AC%E6%9C%BA%20Shell/Untitled%208.png?x-oss-process=style/ImageCompress) + + 高级设置 - 执行命令 - 命令 这里改成 `/bin/sh` + + ![](https://img.mitsea.com/blog/posts/2023/01/NAS%20%E5%8F%AA%E7%94%A8%E5%90%8E%E5%8F%B0%E7%BD%91%E9%A1%B5%20SSH%20%E6%9C%AC%E6%9C%BA%20Shell/Untitled%209.png?x-oss-process=style/ImageCompress) + + 其他不用动,一路下一步启动容器 + + ![](https://img.mitsea.com/blog/posts/2023/01/NAS%20%E5%8F%AA%E7%94%A8%E5%90%8E%E5%8F%B0%E7%BD%91%E9%A1%B5%20SSH%20%E6%9C%AC%E6%9C%BA%20Shell/Untitled%2010.png?x-oss-process=style/ImageCompress) + +3. 启动后,打开容器详情,在 终端机 就可以进入容器的 shell 了。 + + + + ![](https://img.mitsea.com/blog/posts/2023/01/NAS%20%E5%8F%AA%E7%94%A8%E5%90%8E%E5%8F%B0%E7%BD%91%E9%A1%B5%20SSH%20%E6%9C%AC%E6%9C%BA%20Shell/Untitled%2011.png?x-oss-process=style/ImageCompress) + + + +4. 连接前,需要找一下容器网关地址,在 网络 - bridge 展开后可以看到。我这边是 172.17.0.1。 + + ![](https://img.mitsea.com/blog/posts/2023/01/NAS%20%E5%8F%AA%E7%94%A8%E5%90%8E%E5%8F%B0%E7%BD%91%E9%A1%B5%20SSH%20%E6%9C%AC%E6%9C%BA%20Shell/Untitled%2012.png?x-oss-process=style/ImageCompress) + +5. 在刚才打开的容器 Shell 窗口中 ssh 网关,就连接到了本机 Shell + + ![](https://img.mitsea.com/blog/posts/2023/01/NAS%20%E5%8F%AA%E7%94%A8%E5%90%8E%E5%8F%B0%E7%BD%91%E9%A1%B5%20SSH%20%E6%9C%AC%E6%9C%BA%20Shell/Untitled%2013.png?x-oss-process=style/ImageCompress) + + + +> Photo by [Thái An](https://unsplash.com/@johnn21?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText) on [Unsplash](https://unsplash.com/?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText) + \ No newline at end of file From 761e2d18228c3ef5fc068cd794b0d050c1ba4e53 Mon Sep 17 00:00:00 2001 From: FintyLemming Date: Mon, 23 Jan 2023 11:00:24 +0800 Subject: [PATCH 2/2] Fix post --- .../index.zh-cn.md | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/content/post/76f452a4f64e45e081d4c282f754ee93/index.zh-cn.md b/content/post/76f452a4f64e45e081d4c282f754ee93/index.zh-cn.md index 8f47070..a184e5a 100644 --- a/content/post/76f452a4f64e45e081d4c282f754ee93/index.zh-cn.md +++ b/content/post/76f452a4f64e45e081d4c282f754ee93/index.zh-cn.md @@ -2,7 +2,7 @@ author = "FlintyLemming" title = "NAS 只用后台网页 SSH 本机 Shell" slug = "76f452a4f64e45e081d4c282f754ee93" -date = "2022-01-23" +date = "2023-01-23" description = "" categories = ["HomeLab"] tags = ["NAS", "Docker"] @@ -38,11 +38,8 @@ Docker 的子网实际上是从 NAS 自己桥接出来的,你可以理解 NAS 6. 点击连接后,就会新打开一个标签页,这个无论你是用的 QNAP 自己的穿透,还是自己通过 nginx 反代到公网都是可以打开的。打开就是这个容器内部的 shell。 - - ![](https://img.mitsea.com/blog/posts/2023/01/NAS%20%E5%8F%AA%E7%94%A8%E5%90%8E%E5%8F%B0%E7%BD%91%E9%A1%B5%20SSH%20%E6%9C%AC%E6%9C%BA%20Shell/Untitled%204.png?x-oss-process=style/ImageCompress) 7. 在 SSH 至本机前,要先找一下 Docker 容器的网关地址是什么。在 属性 - 网络设置 - docker0 可以看到。我的是 10.0.5.1。 @@ -74,18 +71,12 @@ Docker 的子网实际上是从 NAS 自己桥接出来的,你可以理解 NAS 3. 启动后,打开容器详情,在 终端机 就可以进入容器的 shell 了。 - - + ![](https://img.mitsea.com/blog/posts/2023/01/NAS%20%E5%8F%AA%E7%94%A8%E5%90%8E%E5%8F%B0%E7%BD%91%E9%A1%B5%20SSH%20%E6%9C%AC%E6%9C%BA%20Shell/Untitled%2011.png?x-oss-process=style/ImageCompress) - - + 4. 连接前,需要找一下容器网关地址,在 网络 - bridge 展开后可以看到。我这边是 172.17.0.1。 ![](https://img.mitsea.com/blog/posts/2023/01/NAS%20%E5%8F%AA%E7%94%A8%E5%90%8E%E5%8F%B0%E7%BD%91%E9%A1%B5%20SSH%20%E6%9C%AC%E6%9C%BA%20Shell/Untitled%2012.png?x-oss-process=style/ImageCompress) @@ -94,10 +85,7 @@ Docker 的子网实际上是从 NAS 自己桥接出来的,你可以理解 NAS ![](https://img.mitsea.com/blog/posts/2023/01/NAS%20%E5%8F%AA%E7%94%A8%E5%90%8E%E5%8F%B0%E7%BD%91%E9%A1%B5%20SSH%20%E6%9C%AC%E6%9C%BA%20Shell/Untitled%2013.png?x-oss-process=style/ImageCompress) - - > Photo by [Thái An](https://unsplash.com/@johnn21?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText) on [Unsplash](https://unsplash.com/?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText) \ No newline at end of file