近日在Dell690上裝了Solaris Express Community Edtion b77(已升級內核到b78),但是通過Xmanager遠程登陸就是不能成功,用ps查看也確實有dtlogin進程存在。
bash-3.00# ps -ef | grep dtloginps -ef | grep dtlogin
root 23441 23357 0 07:58:11 pts/2 0:00 grep dtlogin
root 500 1 0 Nov 05 ? 5:58 /usr/dt/bin/dtlogin -daemon -udpPort 0
root 22789 500 0 14:31:31 ? 0:00 /usr/dt/bin/dtlogin -daemon -udpPort 0
但實際上問題就出在-udpPort 0上,查看dtlogin的幫助文件:
# man dtlogin
...
-udpPort port_number
Specifies the value for the requestPort resource.
This sets the port-number that dtlogin monitors for
XDMCP requests. Since XDMCP uses the registered
well-known udp port 177, this resource should prob-
ably not be changed except for debugging.
...
所以這裡系統缺省監聽udp port 0,當然就無法監聽到177端口上的XDMCP請求了。
常規解決方案如下:
# /etc/init.d/dtlogin stop #關掉服務
# /usr/dt/bin/dtlogin -daemon & #換daemon啟動方式或者顯式指定dtlogin -udpPort 177
由於Solaris 10引入了一套新的服務管理框架,因此也可以使用其服務管理命令來修改相應參數:
# ps -ef | grep dtlogin
root 101252 100995 0 15:09:01 ? 0:00 /usr/dt/bin/dtlogin -daemon -udpPort 0
root 101420 101419 0 15:13:47 pts/3 0:00 grep dtlogin
root 101267 100995 0 15:13:23 ? 0:00 /usr/dt/bin/dtlogin -daemon -udpPort 0
root 100995 1 0 15:07:59 ? 0:00 /usr/dt/bin/dtlogin -daemon -udpPort 0
# svccfg
svc:> select application/graphical-login/cde-login
svc:/application/graphical-login/cde-login> listprop dtlogin/args
dtlogin/args astring " -udpPort 0"
svc:/application/graphical-login/cde-login> setprop dtlogin/args = "\ -udpPort 177"
svc:/application/graphical-login/cde-login> listprop dtlogin/args
dtlogin/args astring " -udpPort 177"
svc:/application/graphical-login/cde-login> quit
#
# svcs | grep cde-login
online 15:07:59 svc:/application/graphical-login/cde-login:default
# svcadm restart cde-login
重新啟動服務,進入cde後再用ps命令查看dtlogin進程就可以看到-udpPort端口已經修改為177了。
Xmanager使用的都是缺省設置:
新建 New Xmanager Session
修改 屬性
xdmcp Conection Method: XDM Query
xdmcp Host: Solaris服務器的IP地址
xdmcp Port: 177
xdmcp Local Address: Auto Select