Tricky Mars

趁国庆这几天,帮实验室搭建了一下网络环境,弄好了一个可用的系统,感觉还是很有趣的,记录一下。

# 突破设备限制

校园网有一个很让我不能接受的限制,就是对设备的限制,一个校园网账户限制3个在线设备。 不说实验设备,光我自己的设备,就不只3个了,这样的限制很苛刻,而且对于在线的判定也是有延迟的,每次都需要登录管理页面手动下线一个设备,这样的操作真的是很麻烦。

这次想搭建一个实验室的网络系统,就需要一个路由,来当作内网的网络终端, 利用这个终端,自然也可以突破校园网的设置限制。

不过设备限制是突破了,但是带宽还是有些小,用的人多了的时候,可以想到网络会变得多慢。 下一步考虑升级一下带宽吧。

# 软路由

也想着, 要不要弄一个软路由,这样的话,就可以进行更精细的设置,也可以全局上网。 不过既然现在带宽都这么小,其实没有什么意义。

# 树莓派

正好手里有一个闲置的树莓派3B+,就拿来装了DockerOpenWRT,作为旁路网关配合主路由来使用。

使用体验其实蛮好的,可以自定义DNS,过滤广告,全局上网。 但可能是树莓派散热跟不上,运行一段时间后,会产生网络不稳定的情况发生。

考虑换4B或者是加一个散热模块吧。

# Git

Git还是很重要的,虽然自己搭了gitlab,但可能内网里的gitlab更方便些,速度,容量什么的。 于是将gitlab加入到搭建的计划中。

# 遇到的问题

其实没有遇到什么大的问题,一方面有之前搭建的经验,过程很顺利,对整个系统的理解也深了 另一方面,不用考虑处理URL,ssl,省了好多事。

# ssh

不过还是有一个问题,就是发现http可以用,但是ssh不行, 原因是windows的文件系统和linux的不同,权限也不同,ssh认为可写的文件不安全,所以拒绝了访问。 于是切换到了wsl下,更加稳定了一些。

# Wiki

之前用Notion一直比较舒服,所以想着能不能找到一个类似Notion的self-hosted的应用,然后就找到了Outline[1]。 Outline确实和Notion挺像的,感觉很好。 而且,不仅仅可以自己搭建自用,而且开源的话,也可以好好学习一下Outline类似应用的架构。

# 架构

和直觉相同,Outline有如下的组件:

  1. Fronted | React
  2. Backend | Koa
  3. Databse | PostgreSQL
  4. Cache | redis
  5. Object Storage | Minio

搭建时完全docker化,还是比较整在的。

# 问题

遇到的问题,都是由于docker使用不熟练,网络,存储方面的问题,所以还好,学习一下就好了。

# Nginx

服务多了起来,一直访问端口还是不太优雅,所以利用nginx来反代。 之前也折腾了很长时间nginx,所以这次还算顺利。 就是很简单的反代。

# NextCloud

想了想,还是加入了网盘的功能,从 owncloud 和 nextcloud 中选择了较新的 nextcloud,虽然是内网的网盘 但也许共享和保存一些资料的话会比较方便吧。

# 一些想法

这件事,其实还是偏实践的,做一遍会有新的感受。 包括自己平时看到的一些理论,只有实践才能加深自己的印象啊。


  1. An open, extensible, wiki (opens new window) ↩︎