42、X Window与远程服务器管理全攻略

X Window与远程服务器管理全攻略

1. 停止X服务器

在Linux或Solaris服务器上,有时为了节省资源,如GUI软件应用消耗的内存,需要停止X服务器。不同系统有不同的停止方法:
- Solaris服务器 :使用 svcadm disable gdm 命令停止X服务器。之后可通过 svcs gdm 命令确认GDM服务是否已禁用。示例如下:

# svcadm disable gdm
# svcs gdm
STATE          STIME    FMRI
disabled       11:18:03 svc:/application/graphical-login/gdm:default
  • Linux服务器 :有三种方式可以停止X服务器:
    1. 运行 init 3 telinit 3
      • 若X Window系统正在运行,按 Ctrl+Alt+F1 切换到文本控制台。
      • 若提示登录,以root身份登录。
      • 执行 init 3 telinit 3 停止X服务器,示例:
# init 3
2. **按`Ctrl+Alt+Backspace`**:
    - 按`Alt+F7`切换到图形控制台(若已在图形控制台可跳过此步)。
    - 按`Ctrl+Alt+Backspace`停止X服务器。
3. **修改`/etc/inittab`并重启服务器**:将`/etc/inittab`文件中`initdefault`变量的值改为3,示例:
id:3:initdefault:

然后重启Linux服务器使更改生效。

这三种方法与当前运行级别有关。若当前运行级别为5,使用第二种方法会回到图形登录界面,此时应使用第一种方法;否则,可使用第二种方法。可通过 runlevel 命令查看之前和当前的运行级别,示例:

# runlevel
N 5
2. 在远程服务器上显示X客户端

当本地Linux服务器的X服务器未运行,但想运行X客户端或GUI软件应用时,可将图形显示重定向到运行X服务器的远程Linux/Solaris服务器。以下是具体步骤:
假设用户 oracle 登录在本地Linux服务器 RAC1 上,想运行如 dbca 创建Oracle数据库的应用,而X服务器未运行,远程Solaris服务器 BLSOL01 运行着X服务器。
1. 在Linux服务器 RAC1 上,设置环境变量 DISPLAY 指向Solaris服务器 BLSOL01

[oracle@RAC1 ~]$ export DISPLAY=BLSOL01:0.0
  1. 在Linux服务器 RAC1 上运行 dbca
[oracle@RAC1 ~]$ dbca

若未设置 DISPLAY 环境变量,会出现错误信息“DISPLAY not set. Set DISPLAY environment variable, then re-run.”,需确保将 DISPLAY 设置为运行X服务器的服务器。

可能会遇到“ No protocol specified ”和“ Error: Can't open display: BLSOL01:0.0 ”错误,原因是本地服务器可能未获得远程服务器的访问权限。可在Solaris服务器 BLSOL01 上运行 xhost 命令确认是否授予访问权限:

bslopuz@BLSOL01:~$ xhost
access control enabled, only authorized clients can connect
INET: BLSOL02
INET: RAC1

解决方法有两种:
- 在Solaris服务器 BLSOL01 上运行 xhost +RAC1 ,仅允许来自 RAC1 的客户端连接:

bslopuz@BLSOL01:~$ xhost +RAC1
RAC1 being added to access control list
bslopuz@BLSOL01:~$ xhost
access control enabled, only authorized clients can connect
INET: RAC1
  • 在Solaris服务器 BLSOL01 上运行 xhost + ,允许所有直接访问 BLSOL01 的服务器连接,但不建议这样做,因为会允许任何服务器访问:
bslopuz@BLSOL01:~$ xhost +
access control disabled, clients can connect from any host

若要撤销访问权限,可运行 xhost -RAC1 撤销特定服务器 RAC1 的权限,示例:

bslopuz@BLSOL01:~$ xhost
access control enabled, only authorized clients can connect
INET:BLSOL02
INET:RAC1
bslopuz@BLSOL01:~$ xhost -RAC1
RAC1 being removed from access control list
bslopuz@BLSOL01:~$ xhost
access control enabled, only authorized clients can connect
INET:BLSOL02

若之前运行了 xhost + ,可运行 xhost - 撤销所有服务器的访问权限:

bslopuz@BLSOL01:~$ xhost -
access control enabled, only authorized clients can connect
bslopuz@BLSOL01:~$ xhost
access control enabled, only authorized clients can connect
3. 通过SSH隧道传输X

若想在远程Linux/Solaris服务器上运行X客户端或GUI软件应用,且希望通过安全连接登录并加密服务器间传输的数据,可通过SSH隧道实现。

假设用户 oracle 登录在本地Linux服务器 BLSOL01 上,远程Solaris服务器为 BLSOL02 ,具体步骤如下:
1. 在本地Solaris服务器 BLSOL01 上,使用 -X (大写X)选项运行 ssh 命令连接到 BLSOL02 ,可能会提示输入 BLSOL02 上用户的密码:

bslopuz@BLSOL01:~$ ssh -X BLSOL02
Password:
Last login: Mon Nov 16 02:17:46 2015
Oracle Corporation      SunOS 5.11      11.2    June 2014
  1. X11Forwarding 设置正确,成功连接到远程服务器后, DISPLAY 变量会自动设置,示例:
bslopuz@BLSOL02:~$ echo $DISPLAY
localhost:10.0
  1. 成功连接到服务器 BLSOL02 后,可在该服务器上运行X客户端或GUI软件应用。建议先运行简单的X客户端,如 xeyes 进行测试。

X服务器的默认端口是6000,若该端口被阻止,可使用 -X 选项运行 ssh 来显示应用。

运行X客户端或GUI软件应用时,可能会收到“ Warning: Remote host denied X11 forwarding. ”和“ Error: Can't open display. ”错误。要解决这些错误,需确保远程Linux/Solaris服务器的 /etc/ssh/sshd_config 文件中 X11Forwarding 设置为 yes

若要排查SSH连接问题,可使用 -v 选项运行 ssh 命令显示调试信息,使用 -vvv 选项可显示更多调试信息,同时建议查看 /var/log/secure /var/log/messages 文件。

4. 操作X Windows的终端模拟器

若想启动默认的X终端并改变外观以适应不同的数据库环境(开发、质量保证和生产数据库环境),可使用 xterm 命令。以下是不同数据库环境的 xterm 示例:

xterm -sl 32000 -sb -title "Production" -geometry 128x40 -bg red -fg white &
xterm -sl 32000 -sb -title "QA" -geometry 128x40 -bg yellow -fg black &
xterm -sl 32000 -sb -title "Development" -geometry 128x40 -bg blue -fg white &

各参数说明如下:
|参数|说明|
|----|----|
| -sl |指定滚动缓冲区长度,这里设置为32000行|
| -sb |显示滚动条|
| -title |设置窗口标题,用双引号括起来|
| -geometry |定义窗口大小和位置|
| -bg |设置背景颜色|
| -fg |设置前景颜色|

通过不同的背景颜色可以区分不同的数据库环境,如蓝色窗口代表开发环境,黄色窗口代表QA环境,红色窗口代表生产环境。

还可使用 -font 参数定义特定的字体、字号和其他属性。最简单的方法是执行 xfontsel 命令,选择字体类型和大小属性后,点击“select”按钮并粘贴到 xterm 命令中,示例:

xterm -font -adobe-courier-bold-*-*-*-12-*-*-*-*-*-*-*

满意字体外观后,可回到 xfontsel 窗口点击“quit”按钮。

-e 参数可指定在 xterm 窗口中运行的程序和参数,示例:

xterm -e "ssh rac3 -l root"

xterm 是X Windows中标准的终端模拟器,在所有UNIX操作系统中表现一致。在 xterm 窗口中,可通过高亮显示文字自动复制到内存缓冲区,通过按中间鼠标按钮(两键鼠标通常为轨迹球)粘贴,同时按下左右键也可粘贴。按住 Ctrl 键并同时按下左、中、右键会出现不同的菜单选项:
- 按 Ctrl 和鼠标左键:主选项。
- 按 Ctrl 和鼠标右键:VT字体。
- 按 Ctrl 和鼠标中键:VT选项。

通过VT字体菜单可改变字体大小,通过VT选项菜单可修改如启用或禁用滚动条、启用反向视频等简单设置。若需要 xterm 参数的帮助,可执行 xterm -help 命令。

5. 使用VNC管理远程服务器

如今,越来越少的数据库管理员(DBA)在托管Oracle数据库的服务器控制台前工作,数据库服务器或数据中心与DBA可能位于不同地理位置。DBA可通过 telnet rsh rlogin ssh 等协议,以及 PuTTY Virtual Network Computing (VNC) 等工具远程访问数据库服务器。

PuTTY 可让用户从Windows客户端通过 telnet ssh 远程访问服务器,还能配置代理设置和 ssh 端口隧道,并保存配置。但有时需要运行GUI软件,如Oracle的数据库配置助手(DBCA)创建Oracle数据库或其他基于X Window System的软件,此时 VNC 就很有用。

VNC 是英国剑桥的 RealVNC 公司的瘦客户端产品,可让用户以图形方式访问数据库服务器。对于DBA来说很有用,因为Oracle需要X服务器来显示基于Java的安装、创建、配置和监听设置界面。也就是说,可在本地的 VNC 客户端计算机上运行与数据库服务器控制台相同的GUI应用程序。

运行 VNC 需要两个组件:服务器和查看器。 VNC Server 组件运行在要监控的计算机上, VNC Viewer 组件运行在要监控远程服务器的计算机上。在启动 VNC 会话前,必须安装这两个组件。 VNC 可在大多数操作系统上运行,包括UNIX(如Solaris)、Linux、Windows和Mac OS。

以下是操作流程的mermaid流程图:

graph LR
    classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
    classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px;

    A([开始]):::startend --> B{选择操作}:::decision
    B -->|停止X服务器| C(确定服务器类型):::process
    C -->|Solaris| D(执行svcadm disable gdm):::process
    C -->|Linux| E{选择停止方式}:::decision
    E -->|init 3或telinit 3| F(切换到文本控制台):::process
    F --> G(以root身份登录):::process
    G --> H(执行init 3或telinit 3):::process
    E -->|Ctrl+Alt+Backspace| I(切换到图形控制台):::process
    I --> J(按Ctrl+Alt+Backspace):::process
    E -->|修改inittab并重启| K(修改inittab文件):::process
    K --> L(重启服务器):::process
    B -->|显示X客户端在远程服务器| M(设置DISPLAY变量):::process
    M --> N(运行X客户端应用):::process
    N --> O{是否有权限错误}:::decision
    O -->|是| P(执行xhost命令):::process
    O -->|否| Q(正常显示应用):::process
    B -->|通过SSH隧道传输X| R(使用ssh -X连接远程服务器):::process
    R --> S(检查DISPLAY变量):::process
    S --> T(运行X客户端应用):::process
    T --> U{是否有X11转发错误}:::decision
    U -->|是| V(修改sshd_config文件):::process
    U -->|否| W(正常运行应用):::process
    B -->|操作X Windows终端模拟器| X(使用xterm命令启动终端):::process
    X --> Y{是否需要调整外观}:::decision
    Y -->|是| Z(使用xterm参数调整):::process
    Y -->|否| AA(正常使用终端):::process
    B -->|使用VNC管理远程服务器| AB(安装VNC Server和Viewer):::process
    AB --> AC(启动VNC会话):::process
    AC --> AD(远程访问服务器):::process

以上就是关于X Window管理和远程服务器管理的详细内容,涵盖了停止X服务器、在远程服务器显示X客户端、通过SSH隧道传输X、操作X Windows终端模拟器以及使用VNC管理远程服务器等方面的知识和操作步骤。

X Window与远程服务器管理全攻略

6. 各操作的综合对比与注意事项

为了更清晰地了解前面介绍的各项操作,下面对它们进行综合对比,并列出一些注意事项。

操作类型 适用场景 操作步骤 注意事项
停止X服务器 节省资源,如内存 Solaris: svcadm disable gdm ;Linux:
1. init 3 telinit 3 (需先切换到文本控制台并以root身份登录)
2. Ctrl + Alt + Backspace (需在图形控制台)
3. 修改 /etc/inittab 并重启服务器
当前运行级别会影响操作效果,可通过 runlevel 命令查看
在远程服务器上显示X客户端 本地X服务器未运行,想运行X客户端或GUI应用 1. 设置 DISPLAY 环境变量指向远程服务器
2. 运行X客户端应用
可能会出现权限问题,可通过 xhost 命令解决
通过SSH隧道传输X 需要安全连接并加密数据 1. 使用 ssh -X 连接远程服务器
2. 检查 DISPLAY 变量
3. 运行X客户端应用
确保远程服务器 X11Forwarding 设置为 yes ,可通过 ssh -v ssh -vvv 调试
操作X Windows的终端模拟器 适应不同数据库环境 使用 xterm 命令,可通过参数调整外观和功能 不同参数有不同作用,可通过 xterm -help 查看帮助
使用VNC管理远程服务器 需要图形化访问远程服务器 1. 安装 VNC Server VNC Viewer
2. 启动 VNC 会话
3. 远程访问服务器
确保两台计算机都安装相应组件
7. 常见问题及解决方案总结

在进行上述操作时,可能会遇到一些常见问题,下面总结了这些问题及相应的解决方案。

问题描述 可能原因 解决方案
停止X服务器后又回到图形登录界面 当前运行级别为5,使用了不恰当的停止方法 若当前运行级别为5,使用 init 3 telinit 3 方法
在远程服务器显示X客户端时出现“ No protocol specified ”和“ Error: Can't open display ”错误 本地服务器未获得远程服务器的访问权限 在远程服务器上运行 xhost +RAC1 xhost + (不建议),可通过 xhost -RAC1 xhost - 撤销权限
通过SSH隧道传输X时出现“ Warning: Remote host denied X11 forwarding. ”和“ Error: Can't open display. ”错误 远程服务器 X11Forwarding 设置不正确 确保远程服务器 /etc/ssh/sshd_config 文件中 X11Forwarding 设置为 yes
8. 操作技巧与最佳实践

在实际操作中,掌握一些技巧和最佳实践可以提高效率和安全性。

  • 停止X服务器

    • 在执行 init 3 telinit 3 前,先保存好当前正在进行的工作,以免数据丢失。
    • 若需要频繁停止和启动X服务器,可编写脚本实现自动化操作。
  • 在远程服务器上显示X客户端

    • 尽量使用 xhost +RAC1 的方式授予权限,避免使用 xhost + ,以提高安全性。
    • 定期检查远程服务器的访问权限列表,及时撤销不必要的权限。
  • 通过SSH隧道传输X

    • 配置密钥认证,避免每次登录都输入密码,提高连接效率。
    • 定期更新远程服务器的 sshd_config 文件,确保安全设置的有效性。
  • 操作X Windows的终端模拟器

    • 可将常用的 xterm 命令保存为脚本,方便快速启动不同环境的终端。
    • 根据不同的数据库环境,设置不同的快捷键,提高操作效率。
  • 使用VNC管理远程服务器

    • VNC 设置强密码,避免被他人轻易破解。
    • 定期备份 VNC 服务器的数据,以防数据丢失。
9. 未来趋势与拓展应用

随着技术的不断发展,X Window管理和远程服务器管理也会有一些新的趋势和拓展应用。

  • 安全性增强 :未来会有更多的安全机制和加密技术应用到这些操作中,如多因素认证、零信任架构等,以提高数据传输和访问的安全性。
  • 自动化管理 :通过脚本和自动化工具,实现X服务器和远程服务器的自动化配置、监控和维护,减少人工干预。
  • 云环境集成 :随着云计算的普及,X Window管理和远程服务器管理将与云环境更好地集成,实现更灵活的资源分配和管理。
10. 总结

本文详细介绍了X Window管理和远程服务器管理的相关知识和操作步骤,包括停止X服务器、在远程服务器显示X客户端、通过SSH隧道传输X、操作X Windows终端模拟器以及使用VNC管理远程服务器等内容。通过对这些操作的学习和实践,数据库管理员(DBA)可以更高效地管理服务器,提高工作效率和安全性。

同时,我们还总结了常见问题及解决方案,提供了操作技巧和最佳实践,并展望了未来的发展趋势。希望这些内容对读者有所帮助,让大家在实际工作中能够更好地应对各种挑战。

以下是一个简单的mermaid流程图,展示了整个管理流程的大致框架:

graph LR
    classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;

    A([开始管理]):::startend --> B(选择管理方式):::process
    B -->|X Window管理| C(停止/显示X服务器等操作):::process
    B -->|远程服务器管理| D(通过SSH或VNC访问):::process
    C --> E(处理可能出现的问题):::process
    D --> E
    E --> F(优化与维护):::process
    F --> G([结束管理]):::startend

通过这个流程图,我们可以更清晰地看到整个管理过程的主要步骤和环节。希望大家在实际操作中能够灵活运用这些知识,不断提升自己的管理能力。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值