Centos7中的套接字/绑定/监听不起作用,但在Centos6中

时间:2016-08-06 00:01:12

标签: linux sockets centos6 centos7 listen

我正在尝试运行一个似乎有Centos 7" block"或者阻止它在套接字/端口上侦听。

代码使用socket / sockoptions / bind / listen。在不同的点上,我添加了检查以输出它实际上正在收听。

以下是我用来验证其聆听的代码段。

    int val;
    socklen_t len = sizeof(val);
    if (getsockopt(s, SOL_SOCKET, SO_ACCEPTCONN, &val, &len) == -1)
      sprintf(buf,"fd %d is not a socket\n", s);
    else if (val)
      sprintf(buf,"fd %d is a listening socket(%d)\n", s,val);
    else
      sprintf(buf,"fd %d is a non-listening socket(%d)\n", s,val);
    Log(buf);

日志输出

Fri Aug  5 16:06:40 2016 :: _loop:fd 0 is a listening socket(1)

我已禁用selinux,firewalld(安装了iptables-services并在端口7777上打开了tcp)。当我启动程序时,我使用" nmap -sT -O localhost"和" netstat -anp | grep 7777"。两者都没有显示端口7777正在收听。 Telneting到端口(localhost或ip)被拒绝。我尝试以root用户身份运行应用程序。

现在,我采用完全相同的代码并在Centos 6上编译/运行它没有问题。

有没有人对Centos7干扰它的内容有任何建议?我一直在搜索所有套接字文档,并且看不到任何暗示它们之间存在差异的内容,因此我猜测有一些操作系统功能我只是没有看到会导致这种情况。< / p>

Addtional:

7777是应用程序设置使用的端口。

我正在使用的iptables版本:

# rpm -aq |grep iptables
iptables-services-1.4.21-16.el7.x86_64
iptables-1.4.21-16.el7.x86_64`

我也完全禁用了firewalld和iptables。

systemctl list-unit-files |grep firewall
firewalld.service                           disabled

systemctl list-unit-files |grep iptable
iptables.service                            disabled

0 个答案:

没有答案