1. 问题
在 linux 服务器或远程服务器上,安装 Jmeter,打不开 Jmeter 的 GUI 界面。
环境:
- linux 服务器
- mac 电脑
需求:在远程服务器中,启动 jmeter(./bin/jmeter &)后,在 mac 电脑可展示 Jmeter 的 GUI 界面,即:在本地展示远程服务器上的图形界面。
步骤:
在远程服务器中,下载 jmeter 的 zip 包,并解压后,运行 jmeter(./bin/jmeter &),报错如下:
常见的报错日志如下:
报错 1:
No X11 DISPLAY variable was set
说明:linux环境需要图像界面,配置DISPLAY
报错 2:
Can't connect to X11 window server using '100.99.98.97:10.0' as the value of the DISPLAY variable
说明:X-client 客户端未配置 SSH X11 转发
根据报错日志,错误提示主要集中于:X11 和 DISPLAY 配置。
2. 原因和解决方法
说明原因:
linux 操作系统,区别于 windows 有内嵌的图形用户界面 GUI,linux 注重命令行模式 CLI,没有 GUI。
linux 操作系统,分为内核、应用程序,其中,内核是 linux 操作系统自带的系统程序,其他应用程序,比如:图形用户界面等,需要用户自行安装。
如果要展示 linux 上的图形,需要使用 X11 转发。
X11 支持将远程服务器上的图形,展示在本地。X11 是 C/S 模式,远程服务器是 X11 的客户端,负责发起请求;本地机器是 X11 的服务器端,复杂渲染图形、接收键盘鼠标输入。
所有的操作和配置,都是围绕这 2 个目的进行:
- linux 服务器安装、支持图形界面应用程序;
- 连接 linux 服务器的图形界面和本地,即:将 linux 服务器中需要展示的图形,转发到本地 mac 电脑上。
以下是配置 X11 的步骤:
2.1 X11 服务器端
1. 安装 XQuartz 应用程序,mac 专用 X-server 应用程序;
2. ssh 登陆远程服务器,-X 表示强制信任转发
ssh -X -Y root@远程服务器IP
2.2 X11 客户端
1. 切换到 root 账号
2. 安装图形界面程序,比如:Xorg
yum -y install xorg-x11-xauth xorg-x11-server-utils xorg-x11-server-Xnest libXtst
3. 打开 ssh 配置文件:/etc/ssh/sshd_config,修改配置,并重新运行
# 第1步:修改配置
X11Forwarding yes
X11UseLocalhost yes# 第2步:重启运行
sudo systemctl restart sshd
4. 配置 DISPLAY 变量,DISPLAY 变量,会连接 X11 的客户端和服务器端,即:告知 X11 客户端,其图形展示的位置
# 当前终端配置,关闭终端后,DISPLAY变量不存在;IP为本地mac的IP地址,或直接为localhost
export DISPLAY=IP:10.0
# 或
export DISPLAY=localhost:10.0# 推荐方式:永久生效,添加在配置文件中,vim /etc/bash_profile
export DISPLAY=localhost:10.0
# 执行,配置生效
source /etc/bash_profile# 可查看DISPLAY变量
echo $DISPLAY
5. 验证和测试:
xclock # 显示时钟
xeyes # 显示眼睛
以上验证和测试通过后,可在远程服务器打开 Jmeter 的 GUI 方式,即:./bin/jmeter &
,会看到在本地打开了 XQuartz 应用程序,随即 jmeter 的 GUI 界面打开。
需要说明的是:在使用 Jmeter 的 GUI 方式时,主要用于调试配置,在实际压测过程中,使用的是非 GUI 方式直接压测 jmx 文件。
以上通过 X11 转发,在本地展示远程服务器图形的方法,不仅适用于 jmeter 的图形界面,也适用于其他的图形界面,比如:打开远程服务器的 Pycharm 的 GUI 界面等。