愚蠢的地球人

威联通Container Station安装Gateone踩坑笔记

通常情况下,在Windows系统下通过SSH登录家里的NAS系统或者是登录Openwrt路由器,我一般使用Putty。家里内网中NAS主机或者Openwrt路由器想要从外网SSH登录的话需要在路由器上做端口映射,但是把NAS跟路由器的的SSH端口暴露在公网上可能会有一些安全性的问题。后来我发现了一个叫Gateone的神器,这是一个能在浏览器上运行的SSH客户端。只要有一个支持HTML5的现代浏览器你就能SSH登录到linux服务器。而且如果你把Gateone部署在内网中,你就可以在外网的浏览器上先连接到gateone,然后直接输入内网的IP来登录内网中的linux主机。其实说实话,除了装B之外并没有多大的实际意义,想象一下你在高铁上或者咖啡厅里优雅的拿出ipad打开safari然后SSH登录家里NAS的情景。

正文开始
1.添加Docker Hub的镜像服务器。
Gateone的docker镜像文件有好几百MB,国内连接Docker官方服务器比较慢,所以最好是使用国内的镜像服务器。
打开Container Station,在属性的Registry里面添加镜像服务器,我使用的是阿里云的镜像服务。



2.下载安装Gateone容器。
在Container Station左侧菜单里点创建,然后搜索gateone,会出现很多个版本:

下载量最多的叫liftoff/gateone,一开始我安装的是这个版本,但是运行之后会报错。后来我换了dezota/gateone这个版本,终于成功运行了。这是我踩的第一个坑。
然后在安装的时候我又踩到了第二个坑:安装的时候一定要注意,在网络设置里一定要选Host模式,不要使用NAT模式。

Host模式下容器的IP地址和端口直接使用宿主机(威联通)的网络,NAT模式下容器先接入到一个虚拟交换机上,然后通过NAT把某一个端口映射到宿主机上。我第一次安装的时候使用的是NAT模式,把容器的8000端口映射到威联通(192.168.1.2)的8000号端口,打开浏览器输入https://192.168.1.2:8000/能正常访问,然后我在主路由器上又做了个端口映射,把威联通(192.168.1.2)的8000号端口映射到WAN口(公网IP)的8000号端口,然后使用https://公网IP:8000/却无法访问,使用https://动态域名:8000/也无法访问,浏览器显示PR_CONNECT_RESET_ERROR,研究了很久,怀疑是两次NAT的问题。后来我把网络模式设置为Host,docker直接监听威联通的8000号端口,内网使用https://192.168.1.2:8000/能正常访问,外网使用https://公网IP:8000/和https://动态域名:8000/也都能正常访问。

到这里,gateone的安装就算已经完成了,如果你想使用自己的域名证书那就继续往下看:
先停止Gateone容器的运行,然后创建一个Dockerfile文件(文件名就叫Dockerfile,没有后缀名,严格区分大小写),写入以下内容:

FROM liftoff/gateone
ADD gateone-ssl/certificate.pem /etc/gateone/ssl/certificate.pem
ADD gateone-ssl/keyfile.pem /etc/gateone/ssl/keyfile.pem
CMD [ "gateone" ]


然后在Dockerfile文件的同目录下创建gateone-ssl文件夹,将你的证书和密钥复制到这个文件夹:
用WinSCP将Dockerfile文件和gateone-ssl文件夹上传到威联通的任意目录下,为了方便操作我直接传到了/root目录下
然后执行命令:

docker build -t="gateone-ssl" .


请注意命令后面有个英文点,不要漏掉了,出现Successfully Built表示重建成功。
这时候再回到Container Station,点左下角的镜像文件,你会发现多了一个名为gateone-ssl的镜像,用这个镜像创建一个Container,方法跟上面一样,创建完运行。

打开浏览器输入https://动态域名:8000/,开始装B吧。

Just 评论于
回复
您好,我在外网用ddns可以成功访问nas,但是一直没法访问container station里的应用,不管是用nat还是host模式加端口号都不行。在内网就可以,问威联通客服也不知道为啥,,,对这种问题您有啥思路吗?
愚蠢的地球人 评论于
回复
我在container station里面建立了一个aria2,用的nat模式将aria2的端口映射到nas上,然后在路由器上做了一个端口转发,将nas的端口转发到wan口。然后在外网上通过ddns的域名和端口就可以访问aria2的服务。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

相关推荐

友情链接

网站分类

最新留言

最近发表