加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

node.js – 最初成功进入Docker的套接字连接失败

发布时间:2020-12-16 03:35:52 所属栏目:安全 来源:网络整理
导读:在MacOS下运行我从node.js应用程序与net.Socket()连接到运行在同一主机上的Docker容器,该主机包含Centos下的C套接字服务器. Docker运行命令是: docker run -it --rm -p 14000-14010:14000-14010 -v /Users/me/Development/spdz:/spdz spdz/spdzdev 当docker

在MacOS下运行我从node.js应用程序与net.Socket()连接到运行在同一主机上的Docker容器,该主机包含Centos下的C套接字服务器. Docker运行命令是:

docker run -it --rm -p 14000-14010:14000-14010 -v /Users/me/Development/spdz:/spdz spdz/spdzdev

当docker中的c服务器没有运行时,我看到节点中的连接成功,3ms之后是socket关闭消息.

看起来好像容器前面的代理正在接受请求,将其传递给Docker,在那里它被拒绝.然而,这导致我的前端应用程序中的错误消息认为连接成功,但后来发现它不是.

我希望看到简单的连接被拒绝.关于如何纠正或更好地理解这一点的任何建议都会有所帮助.

我确信这个行为是由Docker引入的,因为在Docker之外运行组件会在连接时产生预期的即时失败.此外,我已尝试将导出的端口映射到外部网络接口而不是localhost,但看到相同的行为.

我建议您检查错误是否来自您的服务器应用程序.

您可以使用netcat命令行在Docker容器上打开套接字

nc -l 14000

这将创建一个侦听端口14000的TCP服务器套接字.

然后,从您的主机(MacOs),打开一个终端并尝试连接telnet

telnet -e q localhost 14000

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读