ないといけない状況になった。
ssh の -X とか -Y じゃなくて、生の X プロトコルで。
かなりレガシィなお題なので余裕かましてたらハマったのでメモ。
かなりレガシィなお題なので余裕かましてたらハマったのでメモ。
とりあえず xhost + して、リモート側に DISPLAY 変数設定してリモートで
firefox 起動。普通に firefox の画面が出るかと思ったら、あれ?出ない。
firefox 起動。普通に firefox の画面が出るかと思ったら、あれ?出ない。
昔だったら普通にできたよねぇ、、、と思いつつ ss -tan したら 6000 LISTEN が無い。
しかも ps すると Xorg に -nolisten tcp がついてる。
あぁ、そういや startx になんかオプション必要だったっけ。と、/usr/bin/startx を読み解
くと「--」のあとに -listen をつければ良いらしいと。
startx -- -listen
これで -nolisten 消えたろうと ps したらまだついてる。まさか...
これで良いだろうと思いまたリモートから firefox 起動したけど X に接続できないエラー。
また ss -tan したら 6000 LISTEN してないじゃん。えーー?
「Xorg -listen tcp」で確認したら 6000 は LISTEN できてる。
んーーー、こりゃ startx の問題だなぁと。
なんやら、/usr/bin/startx の中を見ると、~/.xserverrc がそのまま X のサーバとして
実行されてるので、ここにいろいろ書いてみた。
$ which startxなんだよそれ。とりあえず \startx -- -listen で起動したら -nolisten 消えたぞと。
alias startx='/usr/bin/startx -- -nolisten tcp'
/usr/bin/startx
これで良いだろうと思いまたリモートから firefox 起動したけど X に接続できないエラー。
また ss -tan したら 6000 LISTEN してないじゃん。えーー?
「Xorg -listen tcp」で確認したら 6000 は LISTEN できてる。
んーーー、こりゃ startx の問題だなぁと。
なんやら、/usr/bin/startx の中を見ると、~/.xserverrc がそのまま X のサーバとして
実行されてるので、ここにいろいろ書いてみた。
#!/bin/shしかし
/usr/bin/Xorg -listen tcp
parse_vt_settings: Cannot open /dev/tty0 (No such file or directory)
などというエラー。もう面倒なのでこれを手がかりにググる。
https://bbs.archlinux.org/viewtopic.php?id=205959
上記発見。~/.xserverrc を以下の内容にしてやっとのことで
#!/bin/sh
exec /usr/bin/X -listen tcp vt${XDG_VTNR} "${@}"
いやいや、なんだか基本的なことなのにトラップが多かったなぁ。
しかし X で飛ばした firefox の遅いこと。これはまた後で調べよう...
クライアントからssh -Xで接続すればポート開放は不要です。
返信削除