我的NAS+HTPC折腾之旅 篇九:搞定可道云和内网穿透

2020-05-17 12:06:52 15点赞 117收藏 7评论

抱歉拖这么久才更新,前段时间家里发生变故,五一前刚回来。这段时间不能上班,收拾下心情把之前挖的坑填一下。虽然这么久没写东西但是我的折腾一直没停,受害者当然是这台赛扬1017u的一体机。自从libreelec以后我又尝试了下unraid做jellyfin加lede软路由,发现这个u不支持vt-d还是对网速有些影响。所以又尝试了一下直接装lede的固件,悲催的是默认的固件不管是openwrt还是koolshare的lede都不能识别这台一体机的JMicron的千兆网卡,所以我又这几天连夜折腾lean大的编译固件终于弄出些眉目了,所以这台1017u的小主机以后就不会频繁的去折腾。趁着5.1假期的间隙我买了一套新的G4600的小主机,我的专辑后面的部分会围绕这个小主机来写All in one和一些更高级的内容。而1017u的这台一体机我已经把它作为家里的软路由来使用,我考虑开一个软路由的坑和大家一起分享编译固件以及配置的过程。这一篇把之前在评论区立的flag补上,通过docker安装可道云和蒲公英内网穿透。

我最早折腾可道云还是2013年弄omv系统,当时跟着群里的大佬在omv下通过ngnix部署可道云和nextcloud,那份折腾真的不堪回首,而且omv本身还不算太稳定,说不定哪天一个apt-get upgrade就各种报错,也是让我有了心理阴影,当时我还不会用docker,对端口映射以及文件夹映射都不了解,从入坑到放弃用了不到一个月时间就转到黑群晖系统了,学习了色魔张大妈平台上很多群晖的docker教程之后也算入门,所以现在回头又重新折腾各种基于linux的系统方案。趁着我这台一体机还没刷软路由,还是在libreelec系统的docker环境下部署可道云和蒲公英内网穿透。

首先还是建议大家到hub.docker.com网站上注册一个账号,免费的。在上面的搜索栏里输入kodexplorer里面会出来很多各路大神发布的镜像文件,如果认真一点的会写上部署环境中需要注意的点,比如端口号,映射文件夹这些。

搞定可道云和内网穿透

这里我选择的是yangxuan8282/kodexplorer这位作者的镜像文件,他的github主页里还有arm版本的镜像请大家根据自己的情况选择。我这台是x86_64的一体机,所以直接用默认的镜像。其他镜像请看tags里面的连接。

这个默认的镜像拉取是采用这样一个命令:docker run -d -p 80:80 --name kodexplorer -v "$PWD":/var/www/html yangxuan8282/kodexplorer。前面的文章中提到过docker一些参数的说明这里再啰嗦一遍:

-p 80:80 是docker端口映射的参数,默认情况下输入网址的时候不需要输入80端口默认可以进入。例如你在局域网中输入192.168.1.89就可以直接打开可道云的页面。不过目前运营商大多把80端口给屏蔽了,所以从外网访问的时候或者你有其他服务占用80端口的时候这里就需要改了,比如我改成83,这里就输入成-p 83:80,这样我输入192.168.1.89:83的时候就可以访问可道云了。

- v "$PWD":/var/www/html 这段代码是docker镜像内和你所在主机之间的文件夹映射关系,前面这里填写可道云默认需要访问的文件夹即可,比如我在libreelec中数据盘所在的位置是/stroage这里就可以填写成-v /stroage :/var/www/html。如果是mnt挂载的硬盘比如我外挂的第二块硬盘是新加卷,这块硬盘所在的路径是/var/media/新加卷,那么在-v后面就需要输入 /var/media/新加卷。这里需要注意的是一定要输入绝对路径,也就是我们从winscp中进入文件夹以后上面显示的一串路径。因为从ssh登录后默认是进入到/storage目录的,这里我在默认的storage目录下创建一个kodexplorer目录用来挂在可道云。在ssh终端中输入mkdir kodexplorer

搞定可道云和内网穿透

所以这段代码在我这里改成了:docker run -d -p 83:80 --name kodexplorer -v /storage/kodexplorer:/var/www/html yangxuan8282/kodexplorer,我们用ssh命令登录进去后粘贴进去。后等待拉取镜像完成,然后在浏览器中输入IP地址:83即可访问

搞定可道云和内网穿透

进入界面以后可以发现,可道云的默认路径就是docker镜像中/var/www/html这个字段,我们把这个文件夹映射到了宿主主机的/storage/kodexplorer目录下。但是假如我需要访问宿主主机的其他目录该怎么办,如果是外挂了第二块硬盘可以考虑通过mount命令把硬盘挂载到kodexplorer目录下面的一个文件夹里,比如kodexplorer/sdb1,具体mount命令在我lubuntu和libreelec兼做htpc+nas的文章中有具体的步骤,但是需要注意需要在ssh下用chmod +x命令或者在winscp下赋予该文件夹0755权限,以便kodexplorer能够正常的读写该文件夹。如果是本地不在kodexplorer文件夹下的其他文件夹。目前docker环境下的这个可道云的文件权限范围仅限于data文件目录下,大家可以考虑在可道云下创建aira2,xware,transmission等工具的下载目录,在portainer中把docker映射到主机的目录映射到这些文件夹中就可以了。

后面要说的就是上海贝锐科技的蒲公英内网穿透工具了,官网上给linux系统的包只有debian,ubuntu以及树莓派。其他系统就只能通过docker来部署了,这里还是需要到dockerhub上查找相关的镜像,搜索pgyvpn。

下载这个下载这个

进入作者的介绍页面,按照里面说的步骤一步一步操作就行了。推荐在命令行下搞定,复制粘贴不废什么劲,在portainer下操作很多参数都不好找。蒲公英是上海贝锐科技推出的一款内网穿透工具,它的原理是在异地网络中每个客户端上创建一个虚拟网卡,用户通过用户名和密码登录以后这些主机通过蒲公英的服务器建立虚拟局域网,通过客户端就可以看到虚拟局域网中其他主机的IP地址,在windows的客户端中可以很容易的查询本机和其他主机的IP地址和连通情况。蒲公英的官网提供了windows,mac,树莓派以及ubuntu的安装包。在lubuntu中通过浏览器下载deb的安装包,打开下载目录后右键选择gdebi工具安装,该工具可以自动处理好依赖。安装好以后在命令行中任何位置输入pgyvpn即可运行,第一次登录需要输入账号和密码,登录时候默认保存账户信息,以后登录就不需要了。

Ubuntu下安装包毕竟是官方原生的,稳定性肯定很好,可惜没办法兼容我折腾的libreelec以及软路由系统,所以Docker部署的方式很好的满足了我跨平台的需求,这里介绍下docker版本的安装方式。首先安装docker,libreelec中在插件源,libreelec插件库中的服务里找到docker安装,如果当时没有启用就重启下。然后进入ssh按照作者介绍页面去输入。

(1)docker pull benzbrake/pgyvpn

(2)docker run -d
(3)--restart=always
(4)--device=/dev/net/tun
(5)--net=host
(6)--cap-add=NET_ADMIN
(7)--cap-add=SYS_ADMIN
(8)--env PGY_USERNAME=蒲公英用户名
(9)--env PGY_PASSWORD=蒲公英密码
(10)--name pgyvpn
(11)benzbrake/pgyvpn

蒲公英用户名和密码如果没有需要去官网申请一下,蒲公英官网链接

登录成功以后就可以在windows的pgyvpn客户端看到libreelec登录的ip地址,我这里把自己在用的主机名处理了一下,正常应该像下面那样有主机名和IP地址。我们可以复制这个IP地址,来使用SSH或者samba等服务。

搞定可道云和内网穿透


xshell里面填写ip地址的位置xshell里面填写ip地址的位置

putty中填写ip地址的位置putty中填写ip地址的位置

填写后登陆就可以用了,xshell和putty不同的地方是可以保存用户名密码,

xshell正常登陆xshell正常登陆

不过Docker的pgyvpn还是有点瑕疵,我使用的过程中平均一天能遇到一次断线,需要通过ssh远程通过命令重启pgyvpn的docker环境。所以这里我给这个docker环境安排了一个计划任务,这个任务的目的是定时检查进程中是否包含pgyvpn,如果有就啥都不用做,如果没了就知道断线了,执行重启pgyvpn的容器。这里我主要介绍思路和脚本,大家可以根据自己的系统情况进行修改。 在libreelec下,系统文件分区是无法编辑的,所以我在storage目录下创建了一个scripts的目录用来存放配置文件,pgyvpn.sh

(1)mkdir scritps

(2)cd scritps

(3)vi pgyvpn.sh

用vi编辑器进入以后要按键盘上的i键进入编辑模式,然后将下面的这段代码复制粘贴到ssh终端中。

#!/bin/bash

flag=$(ps | grep dockerd | grep -v"grep" | wc -l)

if [ $flag = "1" ]

then

echo "docker RUNNING!"

else

sudo docker restart pgyvpn

#docker start up

fi

粘贴完成后,按键盘的Esc键,接着输入:wq保存退出

(4) chmod u+x pgyvpn.sh

(5)./pgyvpn.sh


正常运行后回返回一个pgyvpn说明进程正常运行,下面要配置cron文件做计划任务。正常运行后回返回一个pgyvpn说明进程正常运行,下面要配置cron文件做计划任务。

找到libreelec最好使用winscp,比较方便。我们登陆winscp输入用户名root和密码,默认是libreelec。

进入软件界面后按ctrl+alt+h显示隐藏文件。

搞定可道云和内网穿透

逐级进入.cache cron crontab目录,新建一个文件pgyvpn,用winscp的编辑器编辑,输入以下代码:

*/20 * * * * /storage/scritps/pgyvpn.sh

这段的含义是每20分钟运行一次,pgyvpn.sh用来检测pgyvpn的进程是否存在,如果不在就通过通过命令重启容器,如果在就输出pgyvpn。这样就基本实现pgyvpn正常挂机了。

以上就是libreelec做NAS+HTPC的最后一个章节了,因为1017u的这台一体机的性能确实不够,无法满足网卡直通的需要,所以我趁着5.1假期组了一台G4600的平台,下一节我将介绍硬件平台的搭建和使用中的一些问题。至于1017u这台一体机,由于不支持网卡直通,做ALL IN ONE平台确实比较吃力,性能上也有很大的不足,我已经拔掉了液晶的屏幕接线让它安心做一台单臂软路由了,欢迎朋友们继续关注我的文章。

展开 收起

UGREEN 绿联 DX4600 Pro 4盘位NAS(奔腾N6005、8GB)

UGREEN 绿联 DX4600 Pro 4盘位NAS(奔腾N6005、8GB)

1849元起

ZSpace 极空间 私有云 Z4Pro 8G版 4盘位NAS存储(N97、8GB)

ZSpace 极空间 私有云 Z4Pro 8G版 4盘位NAS存储(N97、8GB)

2485.01元起

UGREEN 绿联 DX4600 四盘位NAS存储 (赛扬N5105、8GB)

UGREEN 绿联 DX4600 四盘位NAS存储 (赛扬N5105、8GB)

1799元起

ZSpace 极空间 私有云 Z4Pro 性能版 NAS存储(N305、16GB)

ZSpace 极空间 私有云 Z4Pro 性能版 NAS存储(N305、16GB)

3499元起

UGREEN 绿联 DX4600+ 4盘位NAS(赛扬N5105、8GB)

UGREEN 绿联 DX4600+ 4盘位NAS(赛扬N5105、8GB)

1999元起

QNAP 威联通 TS-464C2 四盘位 NAS网络存储(赛扬N5095、8GB)黑色

QNAP 威联通 TS-464C2 四盘位 NAS网络存储(赛扬N5095、8GB)黑色

2582.5元起

ZSpace 极空间 私有云 Z423 旗舰版 8盘位NAS存储(锐龙R7-5825U、64GB)

ZSpace 极空间 私有云 Z423 旗舰版 8盘位NAS存储(锐龙R7-5825U、64GB)

5899元起

Synology 群晖 DS224+ 双盘位NAS(赛扬J4125、2GB)

Synology 群晖 DS224+ 双盘位NAS(赛扬J4125、2GB)

2849元起

ZSpace 极空间 私有云 Z4Pro 16G版 4盘位NAS存储(N97、16GB)

ZSpace 极空间 私有云 Z4Pro 16G版 4盘位NAS存储(N97、16GB)

2799元起

QNAP 威联通 TS-466C 四盘位NAS(奔腾N6005、8GB)

QNAP 威联通 TS-466C 四盘位NAS(奔腾N6005、8GB)

3199元起

UGREEN 绿联 DH2600 双盘位NAS (N5105、4GB)

UGREEN 绿联 DH2600 双盘位NAS (N5105、4GB)

1299元起

Synology 群晖 DS220+ 2盘位NAS (赛扬J4025、2GB)

Synology 群晖 DS220+ 2盘位NAS (赛扬J4025、2GB)

2179元起

TERRAMASTER 铁威马 F4-424 Pro 四盘位NAS(Intel Core i3、32GB)黑色

TERRAMASTER 铁威马 F4-424 Pro 四盘位NAS(Intel Core i3、32GB)黑色

2499元起

ZSpace 极空间 私有云Z2Pro 四核2盘位NAS家庭个人云网络存储服务器手机平板扩容适用iPhone15 水

ZSpace 极空间 私有云Z2Pro 四核2盘位NAS家庭个人云网络存储服务器手机平板扩容适用iPhone15 水

1290.51元起

ZSpace 极空间 私有云 T2 2盘位NAS存储(RK 3568、4GB)

ZSpace 极空间 私有云 T2 2盘位NAS存储(RK 3568、4GB)

1699元起

ASUS 华硕 AS6702T 4盘位NAS存储 黑色(Core2 Quad Q8300、4GB)

ASUS 华硕 AS6702T 4盘位NAS存储 黑色(Core2 Quad Q8300、4GB)

4299元起
7评论

  • 精彩
  • 最新
  • 请教一下这个内网穿透的方案,下载速度大概有多少

    校验提示文案

    提交
    这个速度取决于你这两个点之间的网速,蒲公英利用的p2p连接方式,服务器保底有2M的带宽,比如我家里服务器上传速度是5M,客户端是100M的网络,可以用jellyfin转码4M的码流流畅播放1080p

    校验提示文案

    提交
    蒲公英的这个连接方式影响总体速度吗,比如付费更多的就更快?

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 楼主,JMicron的千兆网卡驱动最后怎么打上去啊

    校验提示文案

    提交
    这个是linux内核的驱动,只是在mk文件里加了这段说明,解释了调用驱动的位置。我当时在lean大的github上问大神给我解答的,你可以在issue里搜下jmicron,注意看一下我的贴图和介绍,如果再不明白可以加我,我帮你远程。

    校验提示文案

    提交
    收起所有回复
  • 不错。。。回去后折腾一下

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
117
扫一下,分享更方便,购买更轻松