Terracotta开发控制台监控远程服务器“Timed-out”的问题

最近把Terracotta的服务器放在Linux上,然后在Windows上启动dev-console监控远程服务器,连接的时候一直Timed-out,监控不了。但是“netstat -an”查看服务器和本机连接状态,都是ESTABLISHED。连windows上的服务器就没有任何问题。

先检查一下网络状态是否有防火墙:服务器上启动服务,然后在本机telnet一下“telnet 192.168.0.148 9520”如果连不上,把服务器的防火墙关闭:“service iptables stop”。如果telnet成功,启动dev-console,点击“Connect…”按钮:

后来使用Wireshark来抓包,发现服务器连外网了,但是没连通。

修改服务器的网关:/etc/sysconfig/network-scripts/ifcfg-eth0,配置GATEWAY参数,然后运行“service network restart”重启网络服务。ping一下外网,能连通了。

再启动dev-console连一下:

SF71FE6D_FGIZ_A[35)~)XI

还是有问题:Terracotta cluster显示已经成功连接到服务器,但是Mirror group上却显示的是127.0.0.1

推测原因可能是服务器上获取的localhost是127.0.0.1,返回到本机又从127.0.0.1取数据。(猜测可能是用InetAddress.getLocalHost()取ip,这在windows上没有问题,但是Linux上很可能取不到真实ip,结果是127.0.0.1。用NetworkInterface.getNetworkInterfaces()取各网卡的ip在Linux和Windows都没问题。)

现在来修改服务器的host文件:vi /etc/hosts,添加“192.168.0.148   tcs-test”,然后修改hostname:“hostname tcs-test”,退出shell重新登陆。重启一下network:“service network restart”。

再启动dev-console连一下,OK。

这里的关键还是在hostname上,需要指定服务器的主机名。

这种方式虽然解决了问题,但我感觉挺别扭,尤其是在配置Linux网络方面。如果有更好的解决之道,欢迎一起探讨。

你可能感兴趣的:(linux,windows,防火墙)