【问题标题】:system library:connect:No route to host [closed]系统库:连接:没有到主机的路由[关闭]
【发布时间】:2017-11-05 08:30:30
【问题描述】:

我有一个小型示例应用程序,它向服务器发送一些数据,然后关闭连接。我在我的 localhost 作为服务器和客户端 上运行它,它工作

当我在 将 IP 更改为另一台主机(在 VM 中运行 Cent OS)作为服务器和我的客户端(Ubuntu)之后运行 相同的代码,我得到以下信息来自客户端二进制文件的错误

client.c : 47 Error connection to remote machine  
139915881411416:error:02002071:system library:connect:No route to host:bss_conn.c:246:host=192.168.56.101:6001
139915881411416:error:20073067:BIO routines:CONN_STATE:connect error:bss_conn.c:249:

我可以从我的终端 ping 远程服务器。欢迎任何建议或解决方案:)。

【问题讨论】:

  • No route to host 是一个基本的套接字错误,这意味着无法从运行客户端的机器连接到该 IP 地址“192.168.56.101”。
  • 即在这个问题中没有任何与 C 相关的内容。您可以尝试 telnet、netcat 或类似的东西到 192.168.56.101:6001,并得到相同的错误。
  • 可能你需要检查服务器上的防火墙规则。
  • Stack Overflow 是一个编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参阅帮助中心的What topics can I ask about here。也许Super UserUnix & Linux Stack Exchange 会是一个更好的提问地点。

标签: sockets networking routing openssl connection


【解决方案1】:

实际上问题是因为防火墙在服务器(Cent OS)上运行。在停止防火墙l使用命令后,

service iptables stop

客户端能够与服务器建立连接。

更好的解决方案(不停止防火墙):

iptable

添加您的客户端的 IP 地址,这样客户端就可以在不停止防火墙的情况下连接到您的服务器。

iptables -I INPUT -s <client_ip_address> -j ACCEPT

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-01
    • 2019-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-10
    相关资源
    最近更新 更多