CentOS 开放端口 7000

CentOS 开放端口 7000

我有两个盒子,一个是 ubuntu v10.10(IP:192.168.12.128),另一个是 centos v5.5(IP:192.168.12.131)

我能够从 ubuntu box ping centos,反之亦然。

当我从 centos 使用端口 7000 远程登录 UBUNTUIP 时,它可以工作

当我从 ubuntu 使用端口 7000 远程登录 CENTOSIP 时,出现错误“无法连接到远程主机:没有到主机的路由”

我尝试使用命令在 centOS 中打开端口iptables -A INPUT -p tcp --dport 7000 -j ACCEPT,但仍然无法通过该端口 telnet centos。

我想打开端口 7000 的原因是因为我正在尝试设置一个cassandra 集群

请让我知道我在这里做错了什么以及我可以做些什么来使其发挥作用。


更新

sudo iptables --list 的输出

链输入(策略接受)
目标 保护 优化 源 目标         
RH-Firewall-1-INPUT 全部 -- 任何地方 任何地方            

链转发(策略接受)
目标 保护 优化 源 目标         
RH-Firewall-1-INPUT 全部 -- 任何地方 任何地方            

链输出(策略接受)
目标 保护 优化 源 目标         

链 RH-Firewall-1-INPUT(2 个引用)
目标 保护 优化 源 目标         
接受所有 -- 任何地方 任何地方            
接受 icmp -- 任何地方 任何地方 icmp 任何
接受 esp -- 任何地方            
接受啊--任何地方任何地方            
接受 udp -- 任何地方 224.0.0.251 udp dpt:mdns
接受 udp -- 任何地方 udp dpt:ipp
接受 tcp -- 任何地方 任何地方 tcp dpt:ipp
接受所有 -- 任何地方任何地方状态 RELATED,ESTABLISHED
接受 tcp -- 任何地方任何地方状态新 tcp dpt:ssh
拒绝所有 - 任何地方任何地方拒绝 - 使用 icmp-host-prohibited
接受 tcp -- 任何地方任何地方状态新 tcp dpt:afs3-fileserver

netstat -putna 的输出更新对于 centOS,当 cassandra 正在运行时

活动互联网连接(服务器和已建立)
Proto Recv-Q Send-Q 本地地址 外部地址 状态 PID/程序名称   
tcp 0 0 0.0.0.0:800 0.0.0.0:* 监听 3586/rpc.statd      
tcp 0 0 0.0.0.0:111 0.0.0.0:* 侦听 3554/端口映射        
tcp 0 0 0.0.0.0:8080 0.0.0.0:* 监听 4592/java           
tcp 0 0 127.0.0.1:631 0.0.0.0:* 监听 3812/cupsd          
tcp 0 0 192.168.12.131:7000 0.0.0.0:* 侦听 4592/java           
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 3835/sendmail:acce
tcp 0 0 0.0.0.0:54650 0.0.0.0:* 侦听 4592/java           
tcp 0 0 0.0.0.0:59802 0.0.0.0:* 侦听 4592/java           
tcp 0 0 127.0.0.1:51116 127.0.0.1:39490 TIME_WAIT -                   
tcp 0 0 192.168.12.131:51779 192.168.12.128:7000 已建立 4592/java           
tcp 0 0 192.168.12.131:52929 192.168.12.128:7000 已建立 4592/java           
tcp 0 0 :::22 :::* 监听 3803/sshd           
udp 0 0 0.0.0.0:33161 0.0.0.0:* 3936/avahi-守护进程:  
udp 0 0 0.0.0.0:794 0.0.0.0:* 3586/rpc.statd      
udp 0 0 0.0.0.0:797 0.0.0.0:* 3586/rpc.statd      
udp 0 0 0.0.0.0:68 0.0.0.0:* 3415/dhclient       
udp 0 0 0.0.0.0:5353 0.0.0.0:* 3936/avahi-守护进程:  
udp 0 0 0.0.0.0:111 0.0.0.0:* 3554/端口映射        
udp 0 0 0.0.0.0:631 0.0.0.0:* 3812/cupsd          
udp 0 0 :::51370 :::* 3936/avahi 守护进程:  
udp 0 0 :::5353 :::* 3936/avahi 守护进程:    

更新 当 cassandra 在两个盒子上运行时,Ubuntu 盒子中的 netstat -putna 的输出

活动互联网连接(服务器和已建立)
Proto Recv-Q Send-Q 本地地址 外部地址 状态 PID/程序名称
tcp 0 0 127.0.0.1:3306 0.0.0.0:* 监听 865/mysqld      
tcp 0 0 0.0.0.0:40333 0.0.0.0:* 侦听 2019/java       
tcp 0 0 0.0.0.0:8080 0.0.0.0:* 侦听 2019/java       
tcp 0 0 0.0.0.0:80 0.0.0.0:* 监听 1675/apache2    
tcp 0 0 127.0.0.1:631 0.0.0.0:* 监听 942/cupsd       
tcp 0 0 192.168.12.128:7000 0.0.0.0:* 监听 2019/java       
tcp 0 0 127.0.0.1:5432 0.0.0.0:* 监听 881/postgres    
tcp 0 0 0.0.0.0:443 0.0.0.0:* 监听 1675/apache2    
tcp 0 0 0.0.0.0:53412 0.0.0.0:* 侦听 2019/java       
tcp 0 0 127.0.0.1:9160 0.0.0.0:* 监听 2019/java       
tcp 1 0 192.168.12.128:37629 203.197.174.87:80 CLOSE_WAIT 1918/时钟小程序
tcp 1 0 192.168.12.128:37630 203.197.174.87:80 CLOSE_WAIT 1918/时钟小程序
tcp 0 1 192.168.12.128:49373 192.168.12.131:7000 SYN_SENT 2019/java       
tcp 0 0 192.168.12.128:7000 192.168.12.131:46356 已建立 2019/java       
tcp 0 0 192.168.12.128:7000 192.168.12.131:56337 已建立 2019/java       
tcp 1 0 192.168.12.128:54117 203.197.174.80:80 CLOSE_WAIT 1918/时钟小程序
tcp6 0 0 ::1:631 :::* 监听 942/cupsd       
tcp6 0 0 ::1:5432 :::* 监听 881/postgres    
udp 0 0 0.0.0.0:60819 0.0.0.0:* 713/avahi 守护进程:r
udp 0 0 0.0.0.0:68 0.0.0.0:* 753/dhclient    
udp 0 0 0.0.0.0:5353 0.0.0.0:* 713/avahi 守护进程:r
udp6 0 0 ::1:51637 ::1:51637 已建立 881/postgres    
udp6 0 0 :::52390 :::* 713/avahi 守护进程:r
udp6 0 0 :::5353 :::* 713/avahi 守护进程:r

停止 iptables 服务后 telnet localhost 7000 的输出

尝试 127.0.0.1...
telnet:连接到地址 127.0.0.1:连接被拒绝
telnet:无法连接到远程主机:连接被拒绝

以上是输出,因为 cassandra 不会开始尝试查找种子节点(ubuntu box),错误是“连接被拒绝”,而来自 ubuntu telnet 的错误是“没有到主机的路由”

更新

我能够解决这个问题 - 端口被防火墙阻止了,如果添加一个像我这样对端口绑定一无所知的人(当可以访问端口时 - 只有当某个应用程序正在监听它@dyasny,它帮助我诊断并学习一些基础知识)和 Linux 操作系统,问题就会变得更加严重。

感谢大家对我的帮助。

苏德什

答案1

CentOS 中的默认规则不是INPUT, 它是RH-Firewall-1-INPUT

输入以下规则/etc/sysconfig/iptables

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 7000 -j ACCEPT

然后,通过以下方式重启 iptables/etc/init.d/iptables restart

答案2

  1. 尝试禁用 iptables,进行测试iptables -Fservice iptables stop
  2. 确保服务正在运行 service $servicename status
  3. 确保服务正在监听正确的端口netstat -putna
  4. 本地 telnettelnet localhost 7000

相关内容