telnet: Unable to connect to remote host: Connection refused

Posted qq_34132502

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了telnet: Unable to connect to remote host: Connection refused相关的知识,希望对你有一定的参考价值。

客户端使用telnet尝试连接服务端的23456端口,运行

$ telnet 192.168.136.122 23456

时出现此错误

在这里插入图片描述

首先使用netstat -nt | grep 23456检查端口23546的使用情况,没有输出。再使用netstat -napt检查所有tcp端口的使用情况
在这里插入图片描述
发现没有这个程序,更没有这个使用端口。

检查之后发现是忘了写listen语句……,加上

ret = listen(sorck, backlog);
assert(ret != -1);

之后,再次使用命令netstat -napt发现已经有了这个程序
请添加图片描述
请添加图片描述
但是端口号不是23456,且每次的端口号都不一样。虽然客户端使用telnet连接这几个端口号都可以连通,说明应该是端口号设置有问题,且不是端口号冲突,因为冲突的话assert语句就会直接报错了。

检查后发现是忘了给给address.sin_port赋值……将int port转换成网络字节序之后赋给address.sin_port

address.sin_port = htons(port)

在这里插入图片描述
在这里插入图片描述

编译运行,之后就都正常了

【注】
netstat使用示例
1)列出所有端口
netstat -anp

2)列出所有 tcp 端口
netstat -antp

3)列出所有 udp 端口
netstat -anup

4)只显示所有监听端口
netstat -lnp

5)只列出所有监听 tcp 端口
netstat -ltnp

6)只列出所有监听 udp 端口
netstat -lunp

7)只列出所有监听 UNIX 端口
netstat -lxnp

8)找出程序运行的端口
netstat -anp | grep ssh

NOTE:并不是所有的进程都能找到,没有权限的会不显示,使用 root 权限查看所有的信息。

10)找出运行在指定端口的进程
netstat -anp | grep ‘:3306’

11)持续输出 netstat 信息(每隔一秒输出网络信息)
netstat -cnp

12)显示所有端口的统计信息
netstat -s

以上是关于telnet: Unable to connect to remote host: Connection refused的主要内容,如果未能解决你的问题,请参考以下文章

[python] disconnected: unable to connect to renderer解决方法

RedisConnectionException: Unable to connect

RedisConnectionException: Unable to connect

start: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart:

Unable to connect to CUPS server localhost:631

cdh报 Unable to acquire JDBC Connection