我在 Linux 环境中,能够通过 ssh 连接到另一台主机并启动基于 X Windows 的应用程序(如chromium-browser
),它将在我的主机上打开。这是使用 X Windows 应用程序的 ssh 隧道完成的(见下文)。
根据我正在执行的操作,一些 Chrome 窗口将在本地打开,一些将在远程打开。有时,我尝试通过浏览器和本地文件系统执行某些操作,却发现我使用的浏览器是在错误的主机。
我的问题是这样的:Chrome(或chromium-browser
)是否有一些设置允许它查看本地主机并查看可以识别主机的内容? 类似于本地 IP 地址、MAC 地址、主机名或者其他我还不知道的东西。
寻找答案
在 Google Chrome 浏览器中,如何设置一个系统的主题与另一个系统的主题不同?- 我尝试将浏览器主题配置为根据我所在的主机看起来不同,但这是不可能的(截至 2021 年 3 月 16 日)。
https://stackoverflow.com/questions/18572365/get-local-ip-of-a-device-in-chrome-extension- 这是我想要的但不是来自 chrome 扩展。
如果我继续寻找我可能会找到它!
如何配置 ssh 隧道以支持 X Windows(GUI 应用程序)
我使用 $HOME/.ssh/config 文件设置如下:
Host my-dev
HostName p245ud.example.com
ForwardX11 yes
ForwardX11Trusted yes
ForwardAgent yes
答案1
我必须感谢 user1686,他的评论给了我这个问题的想法和答案。解决方案是使用xprop
如下所示的方法。
xprop | grep WM_CLIENT_MACHINE
默认情况下,当 xprop 运行时,它会打开一个十字光标。接下来,将光标移动到要检查的浏览器,然后单击窗口;xprop 运行并查询底层窗口的属性。该grep
命令只是过滤掉所有其他噪音,因此只打印主机名。
输出如下:
xprop | grep WM_CLIENT_MACHINE
WM_CLIENT_MACHINE(STRING) = "myhost.example.com"
# Run it again selecting the 2nd browser
xprop | grep WM_CLIENT_MACHINE
WM_CLIENT_MACHINE(STRING) = "another-host.example.com"
我执行的示例中的输出与运行浏览器的特定机器上myhost.example.com
的输出相匹配。hostname
需要安装 xprop
我使用的 Linux 主机(EC2 实例)没有安装 xprop,因此我使用以下方法安装了它:
sudo yum install xprop
已安装xorg-x11-utils
(其中包括 xprop 以及其他命令)。