更新:感谢@NotTheDr01ds 的评论解决了
原问题
(我使用的机器的详细信息在最后)
我使用以下方式连接到我的 Uni 的 VPN:
sudo /sbin/modprobe tun && sudo openconnect gucsasa1.cent.gla.ac.uk
我得到这个输出:
POST https://gucsasa1.cent.gla.ac.uk/
Got CONNECT response: HTTP/1.1 200 OK
CSTP connected. DPD 30, Keepalive 20
Connected as 172.20.183.165, using SSL, with DTLS in progress
Established DTLS connection (using GnuTLS). Ciphersuite (DTLS1.2)-(ECDHE-RSA)-(AES-256-GCM).
Unknown DTLS packet type 13, len 16
然后我运行以下命令通过 ssh 连接:
ssh -X mymachine
连接后,服务器上的 .bashrc 会尝试自动启动 tmux(版本 2.6):
# Launch tmux
if command -v tmux>/dev/null; then
[[ ! $TERM =~ screen ]] && [ -z $TMUX ] && tmux new-session -A -s main
fi
但它立即崩溃,让我的终端显示看起来像这样(这里我输入ls
以显示问题,但所有标准输出都会发生这种情况):
我也看不到我在终端中输入的任何内容 - 也就是说,直到我在命令上按回车键(“盲目”输入)后,它才会更新显示。
当在 ssh 中使用-X
和-Y
标志时,我对 GUI 程序没有任何问题。这是特定于 tmux 终端中的 stdout 渲染的。
经过谷歌搜索后,我发现打字reset
带来了“正常”体验,但也杀死了 tmux 服务器。这是输入的结果ls
:
当我尝试启动 tmux 时,它再次崩溃,我又回到了原来的问题。
当我使用同一台客户端机器和同一终端连接到其他服务器(运行 Debian 10 和 Ubuntu 20.04、bash 和 tmux 2.8)时,我没有遇到这个问题。
有谁知道我如何解决这个问题?我一整天都在谷歌上搜索但没有成功。
客户端机
- 操作系统:lubuntu 20.04
- 航站楼: 圣
- 外壳:bash
- 在 tmux 会话中::
echo $TERM
st-256color - 外部 tmux 会话::
echo $TERM
screen-256color
服务器机
- 操作系统:Ubuntu 18.04
- 终端: gnome 终端
- 外壳:bash
- 外部 tmux 会话::
echo $TERM
st-256color
答案1
我无法使用类似的配置自己重现这一点,但听起来(并从评论中确认)主机上的termcap 和$TERM
( ) 可能不匹配。st-256color
我会尝试以下几件事:
首先,看看不同的终端是否会出现同样的问题。在这种情况下,
gnome-terminal
工作正常。尝试不同的
TERM
设置,例如tmux-256color
、screen-256color
、 或xterm-256color
。(在这种情况下什么起作用)
export TERM=xterm-256color
在连接到主机之前在客户端上。TERM=xterm256color ssh -X mymachine
也应该有效。