我正在努力克服port 9000: Connection refused
错误。
我在尝试以非分布式模式(作为单个 Java 进程)Ubuntu 14.04
运行时遇到了问题(比较Hadoop
Hadoop 2.4.1 文档)。我尝试按照 Hadoop Wiki 的建议解决此错误(hadoop/连接被拒绝)但我没有成功(我是初学者Ubuntu
,甚至很难 100% 理解给出的建议)。我发布了一个 stackoverflow 问题由此我得出结论,我对此存在一些普遍的问题port 9000 Connection
。
远程登录输出:
martakarass@marta-komputer:~$ telnet localhost 9000
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused
nmap输出:
martakarass@marta-komputer:~$ nmap localhost
Starting Nmap 6.40 ( http://nmap.org ) at 2015-04-27 11:09 CEST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00022s latency).
Not shown: 995 closed ports
PORT STATE SERVICE
22/tcp open ssh
139/tcp open netbios-ssn
445/tcp open microsoft-ds
631/tcp open ipp
902/tcp open iss-realsecure
Nmap done: 1 IP address (1 host up) scanned in 0.08 seconds
网猫配置:
我尝试使用以下命令强制打开 9000 端口:
nc -k -l 9000
但效果不太好(我仍然无法执行上面提到和链接的独立操作)。
从我的谷歌研究结果来看,我发现这个问题相当普遍,并且给那些不擅长“管理工作相关问题”的人带来了巨大的困扰。由于我属于这些人,因此我恳请回答以下问题:
问题 1:一般来说,这种问题的根源是什么?(一些对于门外汉来说关于与端口/连接等相关的基本问题的介绍性文字/参考将非常受欢迎)。
第二季度:该如何处理这个问题?
更新。
sudo netstat -nlp | grep :9000
不返回任何内容。
答案1
首先是 TL;DR,更多详细信息如下:
“连接被拒绝”是当您尝试连接到计算机或服务器上的服务(或您自己的本地计算机)时收到的错误,当所述服务未在指定的 TCP 端口上侦听(错误端口或服务未启动),或者当防火墙明确拒绝连接而不是忽略请求(不太常见的行为)时。
现在再详细讲一下:
它只能发生在 TCP 上(UDP 服务是无会话的),并且这种错误对于系统管理员来说确实非常常见。
当客户端应用程序连接到 TCP 服务时,它将发送设置了 SYN 标志的第一个数据包。如果我们简化一下,则有两个可能的答案:
- 服务器实际上会侦听所需的 TCP 端口,并使用 SYN-ACK 数据包进行回复以确认 SYN 数据包,之后客户端会发送 ACK 数据包以向服务器“确认”已收到 SYN-ACK。此时您已建立 TCP 会话,并且可以开始与服务器“对话”。
- 服务器接收到您的 SYN 数据包,但未监听所请求的端口。连接被拒绝,数据包设置了 RST(重置)标志。99% 的情况下,您都会收到臭名昭著的“连接被拒绝”信息。
我该如何解决 ?
嗯,您可以检查以下几点:您是否在客户端查询正确的端口?您的服务是否已启动?它是否在正确的端口上监听?
这三个问题通常会帮助您解决问题。
在服务器(运行该服务的机器)
检查服务是否正在侦听预期端口
ss -nat | grep <enter port number here> | grep LISTEN
使用旧系统的某些人可能也会使用这个
netstat -an | grep <enter port number here> | grep LISTEN
如果在这里您没有看到任何类似于您的端口号的内容,则表示您的服务未启动或未监听您指定的端口号。
检查服务是否正在运行
service <service name> status
答案2
尝试禁用 iptables:
sudo service iptables stop && sudo service ip6tables stop
然后重新启动 Hadoop。如果这有帮助,您需要对防火墙进行适当的配置。
答案3
最终,我制作我的服务监听端口 9000在文件中添加/etc/ssh/sshd_config
以下行:
Port 9000
我关注了服务器指南/openssh-服务器(它还包含有关复制原始文件、重新启动 sshd 服务器应用程序等的一些重要说明。)
此后我可以看到:
远程登录输出:
martakarass@marta-komputer:~$ telnet localhost 9000
Trying 127.0.0.1...
Connected to localhost.
nmap输出:
martakarass@marta-komputer:~$ nmap localhost
Starting Nmap 6.40 ( http://nmap.org ) at 2015-05-01 18:28 CEST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00023s latency).
Not shown: 994 closed ports
PORT STATE SERVICE
22/tcp open ssh
139/tcp open netbios-ssn
445/tcp open microsoft-ds
631/tcp open ipp
902/tcp open iss-realsecure
9000/tcp open cslistener
Nmap done: 1 IP address (1 host up) scanned in 0.05 seconds
网络状态输出:
martakarass@marta-komputer:~$ sudo netstat -nlp | grep :9000
tcp 0 0 0.0.0.0:9000 0.0.0.0:* LISTEN 16397/sshd
tcp6 0 0 :::9000 :::* LISTEN 16397/sshd