freenom icon indicating copy to clipboard operation
freenom copied to clipboard

bug_report 脚本执行出错 "cURL error 35"

Open sean908 opened this issue 3 years ago • 11 comments

描述问题

推送至tg bot消息显示 "cURL error 35: OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to my.freenom.com:443"
在服务器上使用 docker logs 查询无当日日志信息

已确认 VERIFY_SSL=0

截图&日志 image

image

你做了哪些尝试

1. 重启容器, 报错还是会出现
2. 手动登录问题账号, 账号可以登录

环境信息

  • 系统: OpenWrt R22.8.18 by lean & lienol
  • PHP 版本: 未知
  • 脚本版本: 0.5
  • 是否 Docker:

额外的备注 前几天重启过几次服务器, 其中一个freenom账号频繁报相同的错误(cURL error 35), 其它账号则正常

sean908 avatar Sep 20 '22 01:09 sean908

奇怪的是为什么第二个账户就正常,你能进到 docker 容器里吗?试试 docker exec -it freenom /bin/bash

luolongfei avatar Sep 20 '22 01:09 luolongfei

在容器里手动执行 php /app/run看看是不同样的错误输出

luolongfei avatar Sep 20 '22 01:09 luolongfei

在容器里手动执行 php /app/run看看是不同样的错误输出

输出结果跟前几天的情况一致(频繁失败的账号还是失败了) image

sean908 avatar Sep 20 '22 01:09 sean908

我猜可能跟你账号没关系,你试试把两个账号的位置互换,看看是不是永远都是第一次发起请求的账号会失败?

luolongfei avatar Sep 20 '22 01:09 luolongfei

另外你在容器里,执行curl -v https://my.freenom.com看看输出的内容

luolongfei avatar Sep 20 '22 01:09 luolongfei

另外你在容器里,执行curl -v https://my.freenom.com看看输出的内容

/app # curl -v https://my.freenom.com
*   Trying 63.33.210.48:443...
* Connected to my.freenom.com (63.33.210.48) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*  CAfile: /etc/ssl/certs/ca-certificates.crt
*  CApath: none
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256
* ALPN, server accepted to use h2
* Server certificate:
*  subject: CN=my.freenom.com
*  start date: Apr 19 00:00:00 2022 GMT
*  expire date: Apr 29 23:59:59 2023 GMT
*  subjectAltName: host "my.freenom.com" matched cert's "my.freenom.com"
*  issuer: C=GB; ST=Greater Manchester; L=Salford; O=Sectigo Limited; CN=Sectigo RSA Domain Validation Secure Server CA
*  SSL certificate verify ok.
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
* Using Stream ID: 1 (easy handle 0x7f92345b00)
> GET / HTTP/2
> Host: my.freenom.com
> user-agent: curl/7.76.1
> accept: */*
> 
* Connection state changed (MAX_CONCURRENT_STREAMS == 128)!
< HTTP/2 302 
< date: Tue, 20 Sep 2022 02:01:19 GMT
< content-type: text/html; charset=UTF-8
< content-length: 0

sean908 avatar Sep 20 '22 02:09 sean908

我猜可能跟你账号没关系,你试试把两个账号的位置互换,看看是不是永远都是第一次发起请求的账号会失败?

确实. 对调之后还是第一个账号失败

sean908 avatar Sep 20 '22 02:09 sean908

试试构建一个更新的镜像,把 Dockerfile 里的 FROM php:7.4.19-alpine3.13 改为 FROM php:8.1.11RC1-alpine3.16,然后使用 docker 构建一个新的容器,看看新容器里能否重现

luolongfei avatar Sep 20 '22 03:09 luolongfei

我手边没有软路由,有没有办法在虚拟机或者用其它任何方式装一个跟你一模一样的环境?

luolongfei avatar Sep 20 '22 03:09 luolongfei

试试构建一个更新的镜像,把 Dockerfile 里的 FROM php:7.4.19-alpine3.13 改为 FROM php:8.1.11RC1-alpine3.16,然后使用 docker 构建一个新的容器,看看新容器里能否重现

这个具体该如何操作? 没搞过Dockfile.. 我下午尝试把账号信息都写在multi配置项中, 跑了一遍没报错. 接下来几天再观察观察

sean908 avatar Sep 20 '22 09:09 sean908

配置写的位置跟网络没关系

luolongfei avatar Sep 20 '22 10:09 luolongfei

想了个曲线救国法,配置文件中第一条随便瞎写个账号。 没弄过Dockerfile

sean908 avatar Sep 29 '22 07:09 sean908