HZX185162 2025-07-13 11:00 采纳率: 0%
浏览 26

我在本地搭建一个幸福工厂的服务器,并在一台云服务器上搭建了frp来实现公网访问,直接使用服务器ip时可以正常连接,但将域名解析到这个ip再使用域名访问时出现报错,如何解决?

我在本地搭建一个幸福工厂的服务器,并在一台云服务器上搭建了frp来实现公网访问,直接使用服务器ip时可以正常连接,但将域名解析到这个ip再使用域名访问时出现报错。

LogSocketsSSL: Warning: Failed to initialize SSL state for Socket HttpRequest
LogHttpListener: Error: Error accepting expected connection [0] SE_NO_ERROR

域名有SSL证书

img


这是服务端截图

  • 写回答

6条回答 默认 最新

  • 檀越@新空间 2025-07-13 11:01
    关注

    上午好☀️☀️☀️️
    本答案参考通义千问

    你遇到的问题是:使用 IP 地址可以正常访问幸福工厂服务器,但使用域名时出现 SSL 相关错误。这通常与 SSL 证书配置、FRP 配置或服务端对域名的处理方式有关


    问题分析

    1. 域名解析是否正确?

    • 确保你的域名已经正确解析到云服务器的公网 IP。
    • 可以通过 ping 域名nslookup 域名 检查域名是否指向正确的 IP。

    2. SSL 证书是否有效?

    • 虽然你说“域名有 SSL 证书”,但需要确认:
      • 证书是否已正确安装在云服务器上(例如 Nginx、Apache 或 FRP 的 SSL 配置);
      • 证书是否包含该域名(比如域名是 example.com,而证书是 *.example.com);
      • 证书是否过期
      • 证书链是否完整(缺少中间证书也可能导致 SSL 握手失败)。

    3. FRP 配置是否支持域名访问?

    • 如果你是通过 FRP 的 HTTP/HTTPS 隧道来转发请求,那么需要确保:
      • frp.ini 中配置了 host_header(用于反向代理);
      • 使用的是 httphttps 类型的隧道;
      • 域名被正确绑定到对应的 tunnel。

    解决方案

    第一步:检查域名解析是否正确

    ping yourdomain.com
    nslookup yourdomain.com
    

    如果返回的 IP 不是你预期的云服务器 IP,请检查 DNS 设置。


    第二步:验证 SSL 证书配置

    1. 检查证书文件路径和内容

    确保你的 SSL 证书文件(如 fullchain.pemprivkey.pem)位于正确位置,并且权限设置为 600(只允许 root 读取)。

    2. 测试 SSL 证书

    使用以下命令测试证书是否可用:

    openssl s_client -connect yourdomain.com:443
    

    查看输出中是否有如下信息:

    • Verify return code: 0 (ok)
    • Certificate chain 正确显示

    3. 如果使用 Nginx 反向代理

    确保 Nginx 配置中正确设置了 SSL 参数:

    server {
        listen 443 ssl;
        server_name yourdomain.com;
    
        ssl_certificate /path/to/fullchain.pem;
        ssl_certificate_key /path/to/privkey.pem;
    
        location / {
            proxy_pass http://localhost:8080; # 假设本地幸福工厂服务器运行在 8080 端口
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }
    

    第三步:检查 FRP 配置

    如果你使用的是 FRP 的 HTTP 隧道,请确保 frp.ini 配置如下:

    [common]
    server_addr = 云服务器IP
    server_port = 7000
    
    [web]
    type = http
    local_ip = 127.0.0.1
    local_port = 8080
    custom_domains = yourdomain.com
    

    注意: 如果使用 HTTPS,应将 type = https,并确保 SSL 证书在 FRP 服务器上正确配置。


    第四步:检查幸福工厂服务器是否支持域名访问

    有些游戏服务器(如《幸福工厂》)可能默认只监听 IP 地址,不支持域名访问。你可以尝试以下方法:

    1. 修改服务器监听地址

    如果服务器支持自定义监听地址,尝试将其绑定到 0.0.0.0(即所有网络接口):

    ./start.sh --ip 0.0.0.0
    

    2. 检查防火墙设置

    确保云服务器的防火墙(如 ufwiptables)允许来自域名的连接。


    总结:关键点加粗

    • 域名必须正确解析到云服务器 IP
    • SSL 证书必须正确安装且包含域名
    • FRP 配置需支持域名访问(HTTP/HTTPS 类型)
    • 幸福工厂服务器需支持监听域名或绑定到 0.0.0.0
    • 检查防火墙规则,确保端口开放

    修改后的 FRP 配置示例(适用于 HTTPS)

    [common]
    server_addr = 云服务器IP
    server_port = 7000
    
    [web]
    type = https
    local_ip = 127.0.0.1
    local_port = 8080
    custom_domains = yourdomain.com
    ssl_cert_file = /path/to/fullchain.pem
    ssl_key_file = /path/to/privkey.pem
    

    如果你能提供更具体的错误日志或 FRP 配置内容,我可以进一步帮你定位问题。

    评论

报告相同问题?

问题事件

  • 创建了问题 7月13日