转载请注明出处:
当使用telnet
命令连接远程主机的时候,如果出现 Unable to connect to remote host: Connection refused
的错误提示,通常有以下几种原因:
telnet
命令连接某个主机的某个端口,那么这个端口必须是开启的。如果目标主机没有开启这个端口,那么连接就会被拒绝。如何开启端口
在Linux系统中,开启端口的具体步骤取决于你使用的是哪种防火墙软件。以下是两种常见的防火墙软件的开启端口方法:
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
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 是否安装
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,因此需要根据具体情况进行确认。