Debian 12 只安装VNC及i3桌面,就可以低成本的实现远程桌面环境
# 安装通用工具
apt-get install -y nano net-tools bzip2 procps apt-utils iputils-ping netcat-openbsd
# 安装中文字体
apt-get install -y locales fonts-wqy-microhei fonts-wqy-zenhei xfonts-wqy && \
sed -i -e "s/# zh_CN.UTF-8 UTF-8/zh_CN.UTF-8 UTF-8/" /etc/locale.gen && \
locale-gen zh_CN.UTF-8 &&\
update-locale LANG=zh_CN.UTF-8 LANGUAGE=zh_CN:zh LC_ALL=zh_CN.UTF-8
# 安装VNC
apt-get install -y tigervnc-standalone-server
# 安装i3桌面
apt-get install -y i3-wm i3status i3blocks dmenu xfonts-base terminator dbus-x11 libdbus-glib-1-2 ; apt-get purge -y pm-utils *screensaver*
apt-get clean
~/.config/i3/config
nano /etc/pve/lxc/<CTID>.conf
nano /etc/ssh/sshd_config
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
chown -R root:root ~/.ssh
apt update
# 安装 Podman
apt install podman pipx iptables # iptables必须安装,否则netavark无法运行
# 安装 podman-compose
apt install pipx \
&& pipx install podman-compose \
&& echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc \
&& . ~/.bashrc
# 验证安装
podman version ; podman-compose version
# 配置国内镜像源
sed -E -i.bak \
-e 's/^# (unqualified-search-registries = ).+$/\1["docker.io"]/' \
-e 's/^# (\[\[registry\]\])$/\1/' \
-e 's/^# (prefix = ).+"$/\1"docker.io"/' \
-e '0,\/^# (location = ).+"$/s//\1"docker.1ms.run"/' \
-e '0,\/^# (\[\[registry.mirror\]\])$/s//\1/' \
-e '0,\/^# (location = ).*"$/s//\1"registry.cn-hangzhou.aliyuncs.com"/' \
/etc/containers/registries.conf
# nano /etc/containers/registries.conf
unqualified-search-registries = ["docker.io"]
[[registry]]
prefix = "docker.io"
location = "docker.1ms.run"
[[registry.mirror]]
location = "registry.cn-hangzhou.aliyuncs.com" # 可选备用
其实命令与Docker一致,非常方便好用。
基于 CentOS 7
让Linux系统与Windows系统之间,支持机器名访问,需要Linux安装NetBIOS。 而安装NetBIOS,不一定必须安装Samba,安装过程如下:
# 注意 这里并不会安装完整的samba
$ yum install samba-winbind
; Nano /etc/nsswitch.conf
; add wins
hosts: files <wins> dns myhostname
$ ll /etc/<lib|lib64>/libnss_winbind.so
$ ldconfig
$ systemctl start winbind
$ systemctl status winbind
; ~/.tmux.conf
# 启动鼠标支持
set -g mouse on
set -g mode-keys vi
# WindTerm需在 会话 --> 首选项 --> 设置 --> 终端 --> 鼠标追踪 --> 追踪事件
# 取消勾选:
# - 移动事件
# - 点击事件
# - 右键单击事件
# WindTerm使用鼠标修改面板大小,受WindTerm限制无法实现
# 禁用 WindTerm 的默认鼠标行为(防止冲突)
set -g terminal-overrides 'xterm*:smcup@:rmcup@'
# 1. 禁用左键释放自动复制(改为仅选择)
bind -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-selection-and-cancel
# 2. 右键复制已选文本(需先左键选择)
bind -T copy-mode-vi MouseDown3Pane send-keys -X copy-pipe-and-cancel \
"xclip -i -selection clipboard 2>/dev/null || \
pbpaste 2>/dev/null || \
win32yank.exe -i 2>/dev/null"
# 3. 右键直接粘贴系统剪贴板内容(跨系统支持)
bind -n MouseDown3Pane run-shell \
"tmux set-buffer -- \"$(xclip -o -selection clipboard 2>/dev/null || \
pbpaste 2>/dev/null || \
win32yank.exe -o 2>/dev/null)\"; \
tmux paste-buffer"
# 解除默认的鼠标调整绑定(可选)
unbind-key -T root MouseDrag1Border
# 重新绑定鼠标拖动调整大小
bind -n MouseDrag1Border resize-pane -M
# status line
set -g status-justify centre
set -g status-left "#{session_name}"
set -g status-right "%F %R"
# 窗口编号自动重新排序
set -g renumber-windows on
# status line > window list
set -g window-status-format "#{window_index}:#{window_name}"
set -g window-status-separator " | "
set -g window-status-current-format "#{window_index}:#{window_name}"
set -g window-status-current-style bold,italics
# pane
set -g pane-border-format " #{pane_index}:#{pane_title} $ #{pane_current_command} "
set -g pane-border-status top
set -g history-limit 10000
# 更新配置,不需要关闭tmux,直接运行马上生效
tmux source-file ~/.tmux.conf
Prefix = Ctrl + b
Proxmox VE 官方提供的 Centos 7 模板是有问题的无法正常使用,现在给出解决方案。
安装完成后,容器可以启动,但无法关闭、网络无法使用、控制台无法使用,这些都是我们要解决的问题。
# 查看 CT 容器列表
$ pct list
# 进入 CT 容器
$ pct enter <VMID>
# 启动网络,从DHCP拿IP地址
$ ifup eth0
$ curl -o /etc/yum.repos.d/jsynacek-systemd-backports-for-centos-7-epel-7.repo https://copr.fedorainfracloud.org/coprs/jsynacek/systemd-backports-for-centos-7/repo/epel-7/jsynacek-systemd-backports-for-centos-7-epel-7.repo
$ yum update
# 安装 sshd
$ yum install -y openssh-server
$ systemctl start sshd.service
$ systemctl enable sshd.service
$ exit
$ pct stop <VMID>
NcFTP 是 Linux 上常用的 FTP客户端工具,非常好用,这里记录它的常见用法。
FTP浏览工具
$ ncftp
# 一定注意参数顺序
ncftp > open -u <username> -p <password> <remote-host>
# 使用被动模式传输
ncftp > set passive yes
ncftp > put <local-files>
FTP上传命令行工具
# 一定注意参数顺序
# 使用被动模式传输
$ ncftpput -u <username> -p <password> -F <remote-host> <remote-path> <local-files>
# or
$ ncftpput -f ftp.cfg -F <remote-path> <local-files>
; ftp.cfg
host ftp.server.com
user myusername
pass mypasswd
cat info.log error.log > merge.log.bak
cp merge.log.bak merge.log
安装 xrdp
$ sudo apt install xrdp
启动xrdp服务,并设置为开机启动
$ sudo systemctl start xrdp
$ sudo systemctl enable xrdp
解决黑屏/空屏/无画面
$ nano /etc/xrdp/startwm.sh
unset DBUS_SESSION_BUS_ADDRESS
unset XDG_RUNTIME_DIR
. $HOME/.profile
重启deepin,使用Xorg模式登录
Alpine Linux 原始安装的是 busybox,小巧精干,但毕竟与主流的 Bash 还是有区别,特别是与其它系统联动时会比较麻烦,所以还是安装 Bash,统一 Shell 环境,方便日后使用。
而且基本网上的安装教程都有问题,所以这里给出正确的安装步骤。
$ apk add bash libuser
$ touch /etc/login.defs
$ mkdir /etc/default
$ touch /etc/default/useradd
$ lchsh <root>
Changing shell for root.
Password: <root password>
New Shell [/bin/ash]: /bin/bash
Shell changed.
看完这3篇足以把服务建起来,非常方便
可直接使用 Docker 的配置进行
原本也想使用Docker镜像,但发现kvm之间通过Docker通信好像有问题,所幸在宿主机上可以直接使用release文件。 【注意:每次添加新的客户端,要同步更新服务端的端口配置】
官网下载地址【注意:s, c两端使用的版本号要相同】
$ cd ~
# 下载安装软件
$ yum install wget tar git
# 下载 frp
$ wget -c https://github.com/fatedier/frp/releases/download/v0.34.3/frp_0.34.3_linux_amd64.tar.gz
$ tar -axvf frp_0.34.3_linux_amd64.tar.gz
$ rm -rf frp_0.34.3_linux_amd64.tar.gz
# 下载 frp 配置
$ git clone https://github.com/Cuile/frp.git
# 此处只能使用硬链接,使用软链接会导致无法启动服务
# 安装配置文件
$ mkdir /etc/frp
$ ln -b ~/frp/conf/frpc-pve.ini /etc/frp/frpc.ini
# 安装运行文件
$ ln -b ~/frp_0.34.3_linux_amd64/frpc /usr/bin/frpc
# 安装服务
$ ln -b ~/frp_0.34.3_linux_amd64/systemd/frpc.service /lib/systemd/system/frpc.service
$ systemctl enable frpc.service ##设定指定服务开机开启
$ systemctl disable frpc.service ##设定指定服务开机关闭
$ systemctl start frpc.service
$ systemctl stop frpc.service
$ systemctl restart frpc.service
$ systemctl status frpc.service
$ systemctl list-units | grep frpc
通过 git 更新 frpc 的配置后,要重新链接配置文件