telnet: Unable to connect to remote host: Connection refused
转载请注明出处:
当使用telnet
命令连接远程主机的时候,如果出现 Unable to connect to remote host: Connection refused
的错误提示,通常有以下几种原因:
- 目标主机没有开启对应的端口。如果要使用
telnet
命令连接某个主机的某个端口,那么这个端口必须是开启的。如果目标主机没有开启这个端口,那么连接就会被拒绝。 - 防火墙拦截了连接请求。有些主机会使用防火墙来保护自己,如果你的连接请求被防火墙拦截了,那么就会出现连接被拒绝的错误提示。
- 主机之间的网络连接出现了问题。如果目标主机和你的主机之间的网络连接出现了问题,比如说网络故障、路由器故障等等,那么也可能会导致连接被拒绝。
- 该主机上没有运行对应的服务。如果你要连接的主机上并没有运行你所需要的服务,那么连接就会被拒绝。 如果出现这个错误,可以先检查目标主机上对应端口是否开启,防火墙是否有相关规则,网络连接是否正常等问题,以确定具体原因。
如何开启端口
在Linux系统中,开启端口的具体步骤取决于你使用的是哪种防火墙软件。以下是两种常见的防火墙软件的开启端口方法:
- 使用iptables开启端口 如果你使用的是iptables防火墙,可以通过以下命令开启端口:
iptables -I INPUT -p tcp --dport [端口号] -j ACCEPT
其中,
[端口号]
是你要开启的端口号。这个命令会将TCP协议的指定端口加入到iptables的规则中,允许对这个端口的访问请求。 如果你同时需要开启UDP协议的端口,可以使用以下命令:iptables -I INPUT -p udp --dport [端口号] -j ACCEPT
这个命令会将UDP协议的指定端口加入到iptables的规则中,允许对这个端口的访问请求。 最后,你需要保存iptables的规则,以保证下次系统重启后这些规则仍然有效。可以使用以下命令来保存规则:
service iptables save
- 使用firewalld开启端口 如果你使用的是firewalld防火墙,可以通过以下命令开启端口:
firewall-cmd --zone=public --add-port=[端口号]/tcp --permanent
其中,
[端口号]
是你要开启的端口号。这个命令会将TCP协议的指定端口加入到firewalld的规则中,允许对这个端口的访问请求。 如果你同时需要开启UDP协议的端口,可以使用以下命令:firewall-cmd --zone=public --add-port=[端口号]/udp --permanent
这个命令会将UDP协议的指定端口加入到firewalld的规则中,允许对这个端口的访问请求。 最后,你需要重载firewalld的规则,以保证这些规则能够立即生效,可以使用以下命令来重载规则:
firewall-cmd --reload
以上是两种常见的开启端口的方法,具体方法可能会根据不同的Linux系统和防火墙软件而有所不同。
- 如何查看服务器的防火墙是 iptables还firewall
查看 iptables 是否安装
which iptables
如果系统中已经安装 iptables,则会输出该命令的安装路径,否则不会有任何输出。
查看 firewalld 是否安装
which firewalld
如果系统中已经安装 firewalld,则会输出该命令的安装路径,否则不会有任何输出。
查看当前正在运行的防火墙
systemctl status firewalld.service
如果输出内容中包含 "Active: active (running)",则说明系统正在运行 firewalld;如果没有,则说明系统没有启动 firewalld。
systemctl status iptables.service
如果输出内容中包含 "Active: active (running)",则说明系统正在运行 iptables;如果没有,则说明系统没有启动 iptables。 通过以上命令,可以确定当前系统正在使用哪个防火墙。需要注意的是,某些 Linux 发行版的默认防火墙可能是 iptables,而某些发行版的默认防火墙可能是 firewalld,因此需要根据具体情况进行确认。