高级Linux运维
基于web的vscode
通过脚本安装code-server
有时需要解决网络问题
curl -fsSL https://code-server.dev/install.sh | sh
http下code-server不能显示图片,打开chrome://flags/#unsafely-treat-insecure-origin-as-secure
web ssh
安装
sudo snap install ttyd --classic
运行
ttyd --credential shanjun:123456 bash
创建systemd服务
[Unit]
# 服务名称
Description = ttyd
After = network.target syslog.target
Wants = network.targe
[Service]
Type = simple
# 启动的命令
User=shanjun
ExecStart = /snap/bin/ttyd --credential username:password bash
[Install]
WantedBy = multi-user.target
# sudo cp ttyd.service /etc/systemd/system/ttyd.service
# sudo journalctl -f -u ttyd.service
# sudo systemctl daemon-reload
# sudo systemctl restart ttyd.service
# sudo systemctl status ttyd.service
# sudo systemctl enable ttyd.service
Vnc Web
VNC (Virtual Network Client,虚拟网络客户端)客户端软件提供了一种通过网络访问远程服务器和工作站的可靠和方便的方法。VNC 实现桌面共享,几十年来一直用于远程控制主机。桌面共享系统特别适用于远程管理服务器或嵌入式计算机、控制系统,这些系统没有图形输出设备,或者很难实际到达。用于 VNC 客户端和服务器的 RFB(Remote Framebuffer Protocol)协议通过键盘或鼠标传输输入,以及通过 TCP/IP 连接传输可视输出,以便远程控制主机。
远程桌面协议除了VNC外还有RDP,RDP的与VNC的区别在于:
VNC:
- 基于图像传输的协议,直接将远程计算机屏幕的图像捕获并传输到客户端。
- 客户端接收屏幕图像并发送键盘和鼠标输入到服务器。
- 使用的是 RFB 协议(Remote Framebuffer Protocol)。
RDP:
- 基于指令传输的协议,直接传输绘图和操作命令,而不是屏幕图像。
- 客户端根据这些指令本地渲染屏幕。
- 是微软开发的专有协议,默认用于 Windows 系统。
NoVNC 遵循标准的 VNC 协议,但与其他 VNC 客户机不同,它需要 WebSocket 支持。一些 VNC 服务器(如 x11vnc、libvncserver、QEMU 和 MobileVNC)原生支持 WebSockets,可以直接与 noVNC 兼容。但是,大多数传统 VNC 服务器仅支持 TCP 套接字(Socket)通信,不支持 WebSockets。在这种情况下,需要一种工具将 WebSockets 转换为普通的 TCP 套接字通信,才能使用 noVNC。为了解决不支持 WebSockets 的问题,noVNC 的开发团队提供了一个配套项目 websockify。websockify 的作用是充当代理,将浏览器发送的 WebSockets 请求转换为传统 VNC 服务器能够理解的 TCP 套接字数据。这种方式使得无需修改 VNC 服务器也能与 noVNC 协作。
运行vncserver
vncserver -localhost no -xstartup firefox
vncserver -geometry 800x600
vim ~/.vnc/xstartup
#!/bin/sh
export XKL_XMODMAP_DISABLE=1
export XDG_CURRENT_DESKTOP="GNOME-Flashback:GNOME"
export XDG_MENU_PREFIX="gnome-flashback-"
gnome-session --session=gnome-flashback-metacity --disable-acceleration-check &
安装并运行novnc
sudo snap install novnc
novnc --listen 6081 --vnc localhost:5902
连接到多个VCN服务
创建一个新服务,该服务在端口6082上监听,并连接到在localhost上的端口5902上运行的VNC服务器:
sudo snap set novnc services.n6082.listen=6082 services.n6082.vnc=localhost:5902
查看创建的服务
sudo snap get novnc services.n6082
禁用服务(请注意,由于snap中的限制,目前无法取消设置配置变量,将其设置为空值是禁用服务的方法):
sudo snap set novnc services.n6082.listen='' services.n6082.vnc=''