PVE终RockyLinux如何开启xterm控制台
缘由
在PVE中安装了RockyLinux,已经可以通过ssh进行连接了。但有时候不在内网环境内,我又不喜欢将内网的Linux SSH端口直接暴露在外网,通过PVE远程控制是我比较喜欢的做法,至于PVE WEB暴露在公网上的安全性问题,我是用2FA解决。
但PVE WEB操作linux很不方便的一点是不支持复制粘贴,因为默认的控制台使用的是noVPC。为了支持复制粘贴需要支持xterm.js
设置
教程参见Serial_Terminal与Enable Serial Console for Rocky Linux / CentOS / RHEL in Proxmox
为虚拟机设置串口
在宿主机上输入
1 | qm set vmid -serial0 socket |
或者在web界面配置
配置串口(一般网上教程会跳过的地方)
复制ttyS0服务
1 | cp /usr/lib/systemd/system/serial-getty@.service /etc/systemd/system/serial-getty@ttyS0.service |
修改serial-getty@ttyS0.service
将ExecStart
改为如下
1 | -/sbin/agetty --keep-baud 115200,38400,9600 %I $TERM |
将串口设置自启动
1 | ln -s /etc/systemd/system/serial-getty@ttyS0.service /etc/systemd/system/getty.target.wants/ |
更新Grub
修改/etc/default/grub
中的GRUB_CMDLINE_LINUX
1 | GRUB_CMDLINE_LINUX="quiet console=tty0 console=ttyS0,115200" |
若原本GRUB_CMDLINE_LINUX已经有内容,则将其添加最后即可
刷新grub
1 | grub2-mkconfig -o "$(readlink -e /etc/grub2.conf)" |
最后重启即可
注意点
一开始我按着中文资料做了好几回都不成功,是用dmesg | grep ttyS
进行搜索,ttyS0也是存在的,xterm控制台能打开但一直卡在starting serial terminal on interface serial0
不动,按网上说的按Enter也没反应。当时想肯定是ttyS0有问题,只是linux基础比较薄弱,最后找到设置中的第二篇教程才设置成功
题外话
当然,也可以使用异地组网来解决我最开始的问题。但异地组网方案像zerotier,为了保证稳定性最好自建planet。自建planet异地组网安全性比内网穿透暴露pve web更高(仅对你本人而言),只是如果你经常去网络管理比较完善的单位,被运维识别出来就比较尴尬了。