版本
20250419
本文可能不是最新,且仅作为备份出现。如有更新的版本,请按那个版本为准。
写在前面
本指南实际写于2024年11月20日,为确保触及更多学弟而公开。
本指南用于填补运维断代造成的运维空缺,并为后人提供维护思路。
4月18日,服务器出现了严重问题,4月19日为该特殊状况更新指南。
服务器概况
本服务器使用Xeon E5(二代),拥有80GB内存。其上运行Debian Testing,为确保效率未安装任意桌面环境。
该服务器仅对校园网内网用户提供服务。如需要对外提供服务,请向机房老师、学校信息中心报备。
本服务器拥有一个实际上已不可用的域名: ctf.xatu.edu.cn 。如需使用该域名,请联系信息中心或机房老师更改DNS解析。
联网
初始化
通常,您使用该条目的原因是学长毕业了,学校查无此人,通不过验证,无法联网。
服务器连接的网线连通校园网,校园网(和常规校园网一样)需要验证。但是不同的是,校园网使用PPPoE进行拨号上网操作。您可以通过克隆MAC的方式实现连通外网,但是该校园网还可使用拨号的方式。
在该服务器上命令是这样的:(需预先安装ppp,该服务器应当已经安装)
nmcli connection add type pppoe username 你的上网账号/学号 password 你的账号密码
你的账号密码为新系统显示的登录方法。该校园网验证可能还在使用旧系统,但是账号密码体系是互通的,也就是说,旧系统的登录方案不适用于新系统。(密码旧系统默认为xatu+后四位学号,新系统默认为身份证号后六位)
可能会显示pppoe-x,x为其它数字,假设为pppoe-1
nmcli connection up pppoe-1
此时即可连接校园网。但是,ctf.xatu.edu.cn解析仍为旧IP,这个该文档撰写者无思路修改,可能需要联系信息中心。
nmcli connection delete pppoe-y # 删除旧pppoe连接,如可能有的其他学长的账号
获取pppoe连接的IP地址的方法:
ip addr | grep ppp #获取所有连接的IP地址,并通过管道送给grep筛选出PPPoE连接使用的IP
当然,如果你需要断开连接,请:
nmcli connection down pppoe-1
关于为什么非要使用nmcli:
虽然服务器环境不应该使用它,但是服务器无法获取固定IP,需要NetworkManager辅助。如未来无使用NetworkManager的必要,请尽量换掉它。本指南提到它的原因是这是我们现在使用的解决方案,不代表它是最优选。
重启后联网
您的配置仍然保存。
重启之后需重新启动PPPoE连接并记下IP,不要作死在未获取IP的情况下离开机房,更不要未经允许使用老师的账户登录PPPoE,除非你手里有钥匙。
以下为需使用的命令。
nmcli connection up pppoe-1
ip addr | grep ppp #获取所有连接的IP地址,并通过管道送给grep筛选出PPPoE连接使用的IP
如果很不幸你遇到了学长毕业的状况,请按初始化网络的步骤重新走一遍。
启动CTF环境
目前在使用的环境现为GZ::CTF。
GZ::CTF
GZ::CTF使用docker环境。
GZ::CTF的docker compose文件使用两个,请不要修改compose文件,而是选择修改配置文件。配置文件中IP会影响平台显示的IP,请将其设置为与主机IP相同。
docker启动及停止的命令:
docker-compose up -d # "-d"指的是以daemon方式运行,这允许你令其默默在后台运行,而非占用一个控制台(tty)
docker-compose down
CTFd(已经弃用)
自2023年后,我们的默认CTF环境已经改变为GZ::CTF。目前我们手里没有任何相关部署文档,未来也可能不再维护该条目。
CTFd可以使用传统方案部署,也可使用Docker进行部署,同时也允许使用Docker Compose部署。
使用Docker Compose的部署方法如上。
严重问题排错指南
本条目为应对4月18日严重问题而生。
PPPoE无法联网
首先考虑拔下网线,插你的电脑上看看是否可以联网。如果不可以,请找到网线上游的傻瓜交换机(不要试图拔掉其它线缆),以下的灯会亮:
- 联通服务器的灯
- 连接服务器出口的灯
前者不亮:请更换网线!
后者不亮:首先考虑更换网线,第二考虑迁移环境。
Plan B方案
如果你已经发现服务器出口不联通的状况,恭喜你,你需要迁移了。
迁移所需服务器配置:
- 公网IP(建议IPv4)
- KVM/物理机型
迁移分以下几步:
- Docker Compose安装(GZ::CTF环境依赖)
- 环境迁移
- Docker启动
环境迁移/打包环境后迁移
请自备可写存储设备!服务器后方存在USB 3 Type-A接口,存储设备可插于后方,服务器会自动识别该设备。
插入存储设备后,请挂载它,并在复制文件后等待至少一分钟,并卸载它,拔出存储设备。
sudo fdisk -l #查看现有的存储设备
sudo mount /dev/sdz9 /mnt # 假设该存储设备为/dev/sdz9,将其挂载到/mnt这个目录
tar -czf gzctf-backup-yyyymmdd.tar.gz ./gzctf #c为创建,z为使用gunzip压缩,f为使用归档;后gzctf-*-tar.gz为文件名称,后“./*”为要归档的目录;出现无法读取的情况请sudo
cp gzctf-* ./mnt #复制刚刚创建的文件至存储设备的目录
umount /mnt #取消挂载存储设备
迁移到新地方时,按同样流程操作即可,除了tar:
tar -xf gzctf-*.tar.gz /your/desired/destination #x为解压缩,f意义如上,后gzctf-*.tar.gz为待解压的归档文件,后目录为待解压到的目标目录
提示
服务器系统维护
服务器更新与重启
目前需要注意的是,接手服务器后可能会发现软件包过老,你需要自己先在获得机房访问权后跑一遍更新,以确保之后使用不会造成系统爆炸。
至于为什么需要获取机房访问权,更新后可能会导致SSH连接失效,需要手动重启。重启之后需重新启动PPPoE连接并记下IP,不要作死在未获取IP的情况下离开机房,更不要未经允许使用老师的账户登录PPPoE,除非你手里有钥匙。
不要配置unattended-upgrades里的自动重启功能,原因如上。
更新命令为:
sudo apt update # 目前已经配置cron-apt,该指令目前没有必要使用,虽然我个人仍然强烈建议你更新前跑一下
sudo apt full-upgrade
同时,若需要更简化些的包管理器,可以试试oma(AOSC OS默认使用的包管理器前端)。需要注意的是,本服务器未安装oma,若需安装,请按照AOSC安同开源社区提供的指引安装。
管理员指令
关于ifconfig等管理员指令,它们处在/sbin下,这些工具并不在path里。如需使用,请加上sudo。
替代的更好用但兼容性烂的shell
如果对指令记忆实在困难,你可以从默认的bash切换到fish:
fish
但是fish不兼容bash语法,也就是说,通配符等众所周知的东西可能会在fish下报告语法错误,这一点需要注意。这也是我们未将默认shell更改为fish的原因。
服务器机房使用
意外关闭机架门
按下锁孔即可重新弹出把手。
控制终端收回于机架
不建议大力出奇迹,必要时刻请向机房老师寻求帮助。
首先合上屏幕,然后向里推。推不动后左侧有显眼的白色活动部分塑料件,向内拉动它,并继续将整个终端向里推。按下屏幕上方的把手向里推以做好固定。
回复 TuskedEvening0 取消回复