curl: (35) OpenSSL SSL_connect: 连接被对方重设 in connection to raw.githubusercontent.com:443

Ubuntu20.04安装nvm

root@parallels-Parallels-Virtual-Platform:/tmp# curl https://raw.githubusercontent.com/creationix/nvm/v0.30.2/install.sh | bash
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
curl: (35) OpenSSL SSL_connect: 连接被对方重设 in connection to raw.githubusercontent.com:443 

 

成功处理的方案(通过修改hosts解决此问题的办法)

  1. 在 www.ipaddress.com 查询 raw.githubusercontent.com 的真实为IP 185.199.108.133 (以实际为准)
  2. sudo vi /etc/hosts
  3. 185.199.108.133     raw.githubusercontent.com
  4. wq
  5. curl https://raw.githubusercontent.com/creationix/nvm/v0.30.2/install.sh | bash
  6. 成功

 

成功示例

root@parallels-Parallels-Virtual-Platform:/tmp# curl https://raw.githubusercontent.com/creationix/nvm/v0.30.2/install.sh | bash
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  7750  100  7750    0     0   4574      0  0:00:01  0:00:01 --:--:--  4572
=> Downloading nvm from git to '/root/.nvm'
=> 正克隆到 '/root/.nvm'...
fatal: 无法访问 'https://github.com/creationix/nvm.git/':Failed to connect to github.com port 443: 拒绝连接
fatal: 不是 git 仓库(或者任何父目录):.git
fatal: 不是 git 仓库(或者任何父目录):.git

=> Appending source string to /root/.bashrc
=> You currently have modules installed globally with `npm`. These will no
=> longer be linked to the active version of Node when you install a new node
=> with `nvm`; and they may (depending on how you construct your `$PATH`)
=> override the binaries of modules installed with `nvm`:

/usr/local/lib
└── yarn@1.22.10

=> If you wish to uninstall them at a later point (or re-install them under your
=> `nvm` Nodes), you can remove them from the system Node as follows:

     $ nvm use system
     $ npm uninstall -g a_module

=> Close and reopen your terminal to start using nvm

 

关闭终端 重新打开

 

 

### CentOS 8 中 `curl` 连接 `packages.gitlab.com` 出现 OpenSSL SSL_ERROR_SYSCALL 的原因分析 在 CentOS 8 上使用 `curl` 命令尝试连接到 `packages.gitlab.com` 时,如果遇到错误提示 `OpenSSL SSL_connect: SSL_ERROR_SYSCALL`,这通常是由以下几个原因之一引起的: 1. **TLS 版本不匹配**:某些服务器可能仅支持较新的 TLS 协议版本(如 TLSv1.2 或更高),而客户端默认使用的可能是旧版协议。 2. **证书验证失败**:可能存在 CA 证书过期或未正确配置的情况,导致无法完成 HTTPS 握手过程。 3. **网络环境问题**:中间代理或其他网络设备可能会干扰加密通信。 --- ### 解决方案 #### 方法一:强制指定 TLS 版本 通过命令行参数显式设置 `curl` 使用的 TLS 版本。可以尝试以下命令来排除是否因协议版本不同步引起的问题: ```bash curl --tlsv1.2 -fsSL https://packages.gitlab.com/ ``` 此操作会强制 `curl` 使用 TLS v1.2[^4]。 #### 方法二:禁用 HTTPS 并切换至 HTTP 虽然这不是推荐的安全实践,但在调试阶段可以通过临时关闭 HTTPS 来确认是否存在其他潜在问题: ```bash curl -fsSL http://packages.gitlab.com/ ``` 注意这里将 URL 中的 `https://` 替换成了 `http://`。然而这种方法并不适用于生产环境中涉及敏感数据传输的情形。 #### 方法三:更新系统中的 NSS 库及相关依赖项 由于 CentOS 默认情况下 `curl` 可能基于 Mozilla NSS 而非 OpenSSL 构建而成,因此有时即使升级了 OpenSSL ,仍然会出现兼容性难题。建议执行如下步骤确保所有必要组件处于最新状态: ```bash sudo dnf update nss curl libcurl ``` 另外还可以考虑重新编译带有 OpenSSL 支持的新版本 `curl` 工具包作为替代选项之一。 #### 方法四:调整 DNS 设置或者更换镜像源地址 有时候特定域名解析异常也会引发类似的握手失败现象。试着更改本地 `/etc/resolv.conf` 文件里的首选DNS服务器指向公共服务提供商比如 Google(8.8.8.8),再重试原请求路径;又或者是寻找官方文档里是否有提供备用下载链接供用户选择接入更稳定的区域节点。 --- ### 总结说明 上述提到的各种处理方式各有优劣之处,在实际应用当中可以根据具体情况灵活选用最合适的办法解决问题。同时也要记得定期维护操作系统及其附属软件栈保持安全补丁及时跟进以免遭受不必要的风险威胁。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值