我安装 Ubuntu server 24.04 选择了 minimal 方式,发现不知道是忘记选了还是怎样,ssh 无法登录。
本来以为 24.04 上只会遇到和 22.04 上一样的问题,校网需要验证。经过几周分析研究,终于摸清楚了校网验证过程,然后写了golang程序,试验在 22.04 上可以使用。结果,一放到 24.04 上,直接报错 cannot execute binary file: Exec format error,因为两个虚拟机是基于同一个 esxi 的,所以,不太可能是架构问题(一开始怀疑过,22.04 上 uname -a 看到的是SMP 字样,24.04 上是 SMP preempt_dynamic字样),后来证实是golang版本问题:大概办公室的笔记本电脑golang版本早,家里电脑golang是1.22版,前者是linux下编译24.04上不能用,后者win11上交叉编译反而可以用。
等到自己的验证程序可以使用,结果发现上不了网,检查才发现好像安装是把网关写成自己的IP地址了(ssh登录不上去就是这个原因了,因为我一般不会忘记勾选安装sshd的)!!!想着改一下吧,结果发现不仅 ping/ifconfig等命令没有(略新版ubuntu都使用ip命令了),vi/nano/gedit 等统统没有!!后来就想,怎么不使用文本编辑器来编辑文本?最后,发现 awk/sed 命令都可以使用 :-|) ,然后用 sed '行号s/搜索字符串/替换字符串/' 目标文件 > 新文件 实现了修改(使用中才知道,目标文件和新文件不能是同一个文件,不然内容就被清空了!再次证实修改前 cp 备份的好处)。修改完 /etc/netplan 下的yaml格式配置文件,sudo netplan apply 就行(除了netplan,另外常用的可能是networkctl命令了,使用wifi的桌面版本可能用nmcli命令)。
用 sed 修改了 网络配置 和 源(默认源连不上,换了清华的)。等到能 apt update/upgrade 了,那就没有什么 minimal 和标准版的差别了。