28
2024
11
15:47:46

OCServ DTLS 连接异常

问题症状

环境:Ubuntu 16.04 x64

版本:OCServ 0.10.11-1build1

今日重置了阿里云 ECS 后,选择从 APT 源直接安装 OCServ 而非从官网手动下载安装,随后便发生了一些诡异事情。

service ocserv start 所启动的 OCServ 服务在 IPv4 网络中进行连接时,尽管网络状态良好,仍然回退到了 TLS 链路。而使用 ocserv 命令直接启动服务却能正常建立 DTLS 连接。

使用 lsof -i:443 检查 443 号端口监听状态时发现,前者会由 systemd 与 ocserv-main 共四个进程监听 IPv6 协议类型上的 443 号端口的 UDP/TCP,而后者由 ocserv 共两个进程监听 IPv4 协议类型上的 443 号端口的 UDP/TCP。

查看 /etc/init.d/ocserv 文件发现,OCserv Daemon 在启动时会正确调用位于 /etc/ocserv/ocserv.conf 的配置文件,但却没有根据配置文件中的设定进行监听。

解决方案-1" style="margin: 24px 0px 16px; padding: 0px 0px 0.3em; box-sizing: border-box; line-height: 1.25; color: rgb(36, 41, 46); font-family: Consolas, "liberation mono", Menlo, Monaco, "noto serif sc", serif; letter-spacing: 0.1px; text-wrap: wrap; background-color: rgb(255, 255, 255);">解决方案 1

早在 2016 年便有人指出这个缺陷(现已修复),而阿里云 APT 源中的包版本较老,所以没有修复此问题。

Try to go to “/lib/systemd/system/” and modify the file of “ocserv.service”,

1.use vim to change two lines,

2.Remove the line of “Requires=ocserv.socket”

3.Remove the line of “Also=ocserv.socket”

4.save the file,

execute “systemctl daemon-reload”,

then reload the service “service ocserv start”

  1. 编辑 /lib/systemd/system/ocserv.service,移除 Requires=ocserv.socket 和 Also=ocserv.socket

  2. 重新加载 Systemd 配置文件:执行 systemctl daemon-reload

  3. 重启 OCServ 服务:执行service ocserv start

服务重启后,DTLS 连接可以正常建立,且未与 OpenVZ-BBR 冲突,至此问题得到了完美解决。

解决方案 2

使用 apt remove ocserv 移除旧版本的 OCServ,从 OCServ 项目官网 下载最新版本的 OCServ,然后手动安装。




推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

本文链接:https://hqyman.cn/post/8652.html 非本站原创文章欢迎转载,原创文章需保留本站地址!

分享到:
打赏





休息一下~~


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

请先 登录 再评论,若不是会员请先 注册

您的IP地址是: