Windows10系统下使用FileZilla传输文件时,出现“状态: 尝试连接“ECONNREFUSED - 连接被服务器拒绝”失败。错误: 无法连接到服务器”错误,完美解决

问题描述

今天使用FileZilla软件使用ftp服务(port:21)连接远程的windows系统时,出现以下错误:
在这里插入图片描述
在网上找了一堆解决方案,最终没有解决,网文大多解决方案是换sftp服务(port:22),避免使用ftp服务(port:21)来解决问题,这当然没有什么问题。但本着打破砂锅问到底的精神,最后还是完美解决问题。

原因分析

在这里插入图片描述
从上图中可以看出ftp是普通ftp,sftp服务是SSH文件传输协议,换成sftp后FileZilla可以成功连接远程Windows的原因就是这个,因为FileZilla中的sftp本质上已经不再是ftp服务了,而是ssh文件传输协议。

仍然使用ftp服务传输文件解决方案

在远程Windows系统配置ftp服务

  1. 打开控制面板
  2. 选择"程序"
    在这里插入图片描述
  3. 点击"启用或关闭Windows功能"
    在这里插入图片描述
  4. 按照下图打开ftp相关服务,点击“确定”按钮
    在这里插入图片描述
  5. 等待完成,出现以下界面说明完成ftp服务组件的加载
    在这里插入图片描述
  6. 搜索IIS应用
    在这里插入图片描述
  7. 右键新建ftp站点
    在这里插入图片描述
  8. 配置ftp站点
    在这里插入图片描述
    物理路径是指通过ftp服务访问本远程站点时访问的根路径
    在这里插入图片描述
    在这里插入图片描述

本地电脑使用ftp服务访问远程站点

此时在本地使用FileZilla再次使用ftp服务连接远程电脑,发现已经解决问题
在这里插入图片描述
我在远程站点放了一个cpp的一个帮助文档。有需要cpp帮助文档的可以通过以下网址下载

https://download.youkuaiyun.com/download/qq_33175506/85614080?spm=1001.2014.3001.5503
### 可能的原因分析 在 Kubernetes 中部署 FireCrawl 应用并尝试连接 Redis 报 `ECONNREFUSED` 错误,通常可能由以下几个原因引起: 1. **网络配置问题**:FireCrawl 和 Redis 部署在网络隔离的情况下可能导致无法访问。 2. **Service 定义不正确**:如果 Redis 的 Service 没有正确定义或者未暴露端口,则 FireCrawl 将无法找到 Redis 实例。 3. **Pod IP 地址变化**:如果是 StatefulSet 或者其他动态分配 Pod IP 的情况,可能会导致 DNS 解析失败。 4. **Redis 启动异常**:Redis 本身启动失败或者监听地址设置错误也可能引发此问题。 --- ### 解决方案 #### 1. 网络连通性验证 确保 FireCrawl 所属的 Namespace 能够与 Redis 的 Network Policy 进行通信。可以通过以下方式测试: ```bash kubectl exec -it <firecrawl-pod-name> -- curl http://<redis-service-name>:6379/ping ``` 如果没有返回 `PONG`,则说明存在网络不通的情况[^1]。 #### 2. 检查 Redis Service 是否正常工作 确认 Redis 的 Service 已经被正确创建,并且能够解析到对应的 Pod IP 地址: ```yaml apiVersion: v1 kind: Service metadata: name: redis-service spec: selector: app: redis ports: - protocol: TCP port: 6379 targetPort: 6379 clusterIP: None # 如果是 Headless service 则需要指定为 None --- apiVersion: apps/v1 kind: Deployment metadata: name: redis-deployment spec: replicas: 1 selector: matchLabels: app: redis template: metadata: labels: app: redis spec: containers: - name: redis image: redis:latest ports: - containerPort: 6379 ``` 运行以下命令查看 Service 是否绑定到了正确的 Pod 上: ```bash kubectl get endpoints redis-service ``` 如果有输出类似于 `<pod-ip>:6379` 表明 Service 绑定成功[^2]。 #### 3. 修改 Redis 配置文件以支持远程访问 默认情况下,Redis 只会监听本地回环接口 (localhost),这会导致外部容器无法访问它。可以修改 Redis 配置文件允许其监听所有网卡地址 (`0.0.0.0`) 并禁用保护模式: ```yaml apiVersion: v1 kind: ConfigMap metadata: name: redis-config data: redis.conf: | bind 0.0.0.0 protected-mode no port 6379 ``` 更新完成后重新应用配置: ```bash kubectl delete pod -l app=redis kubectl apply -f redis-config.yaml ``` #### 4. 设置环境变量或调整客户端代码逻辑 对于 FireCrawl 来说,在初始化 Redis 客户端使用完整的 FQDN(Fully Qualified Domain Name),而不是硬编码 IP 地址。例如: ```javascript const redisClient = require('redis').createClient({ host: 'redis-service.default.svc.cluster.local', // 替换为实际的服务名称 port: 6379, }); ``` 另外还可以通过注入环境变量的方式简化配置过程: ```yaml env: - name: REDIS_HOST valueFrom: fieldRef: fieldPath: status.hostIP - name: REDIS_PORT value: "6379" ``` 最后记得重启 FireCrawl Pods 让新参数生效: ```bash kubectl rollout restart deployment firecrawl-deployment ``` --- ### 总结 综上所述,当遇到 K8S 部署的应用程序连接 Redis 出现 ECONNREFUSED 错误,可以从网络策略、服务定义以及目标资源本身的健康状况等方面逐一排查。按照上述方法逐步解决问题应该可以获得预期效果[^3]。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DA0221

各位看官您往里面瞧一瞧看一看

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值