You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Core应用无法远程连接单节点Cassandra服务器问题排查

问题分析与解决方案

问题根源

  • 核心问题出在Cassandra的listen_address配置上:当该参数设为localhost时,Cassandra仅绑定本地回环接口(127.0.0.1),不会监听机器的外部IP(192.168.108.198)。
  • DBeaver能通过SSH端口转发连接,是因为转发机制是将远程机器的localhost:9042映射到本地端口,相当于从远程机器内部访问Cassandra,符合listen_address的配置限制。
  • .NET Core应用直接访问192.168.108.198:9042,但Cassandra未在该IP的9042端口监听,因此触发SocketException。

解决步骤

  1. 修改Cassandra配置
    编辑cassandra.yaml文件:
    • 将listen_address改为192.168.108.198,或设为0.0.0.0(监听所有网络接口,测试环境更便捷)。
    • 同步调整rpc_address为相同值或0.0.0.0,确保客户端能通过IP访问RPC服务。
  2. 重启Cassandra服务,使配置生效。
  3. 验证端口监听
    在Cassandra机器上执行命令:
    netstat -tulpn | grep 9042
    
    确认输出中存在192.168.108.198:9042或0.0.0.0:9042。
  4. 检查应用配置
    确保.NET应用中_connectionConfig.ConnectionStrings设置为192.168.108.198,端口与Cassandra的native_transport_port(默认9042)一致。

注意事项

生产环境建议指定具体IP而非0.0.0.0,以降低安全风险;测试环境使用0.0.0.0可避免频繁调整配置。

内容的提问来源于stack exchange,提问作者Roman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 16:40:22