问题描述
当同时使用 sing-box Hysteria2(UDP 443)和 Xray VLESS Reality(TCP 443)时,Xray安装脚本会检测到443端口已被占用,并自动将 Xray Reality 的端口修改为8443。
但是,在 Linux 系统中,TCP 443 和 UDP 443 属于不同的 socket,可以同时监听,并不存在端口冲突。
期望支持以下常见部署方式:
TCP 443 → Xray VLESS Reality
UDP 443 → sing-box Hysteria2
环境信息
- 脚本版本:1.33
- Xray版本:26.3.27
- 系统:Ubuntu/Debian Linux
- sing-box:233boy/sing-box
复现步骤
- 首先安装 sing-box Hysteria2,并配置监听 UDP 443。
查看端口:
ss -lunp | grep :443
输出:
udp UNCONN 0 0 *:443 : users:(("sing-box",pid=xxxx))
- 安装 Xray VLESS Reality。
- 脚本检测到443端口已被占用,并提示端口不可用。
期望行为
脚本应该区分 TCP 和 UDP 端口。
当检测 Xray Reality 所需端口时,只需要检查 TCP 443 是否被占用。
以下配置应该被允许:
TCP 443 → Xray VLESS Reality
UDP 443 → sing-box Hysteria2
因为 TCP 443 和 UDP 443 在 Linux 中是两个独立的网络监听。
当前实际行为
脚本将 UDP 443 的占用也判断为443端口冲突:
UDP 443 已被 sing-box 使用
↓
脚本认为443不可用
当前解决方法
手动修改:
/etc/xray/conf/*.json
将:
"port": XXXX
修改为:
"port": 443
然后重启 Xray:
systemctl restart xray
修改后可以正常运行:
TCP 443 → Xray VLESS Reality
UDP 443 → sing-box Hysteria2
建议改进
建议修改端口检测逻辑:
当前逻辑可能只判断端口号是否存在:
443 已使用 → 禁止使用
建议改为区分协议:
- 检查 TCP 443 是否被占用
- 忽略 UDP 443 占用情况
这样可以支持:
- Xray Reality + Hysteria2
- Xray Reality + TUIC
- HTTPS TCP服务 + QUIC UDP服务
等常见多协议共用443端口的部署方式。
感谢维护项目。
问题描述
当同时使用 sing-box Hysteria2(UDP 443)和 Xray VLESS Reality(TCP 443)时,Xray安装脚本会检测到443端口已被占用,并自动将 Xray Reality 的端口修改为8443。
但是,在 Linux 系统中,TCP 443 和 UDP 443 属于不同的 socket,可以同时监听,并不存在端口冲突。
期望支持以下常见部署方式:
TCP 443 → Xray VLESS Reality
UDP 443 → sing-box Hysteria2
环境信息
复现步骤
查看端口:
ss -lunp | grep :443
输出:
udp UNCONN 0 0 *:443 : users:(("sing-box",pid=xxxx))
期望行为
脚本应该区分 TCP 和 UDP 端口。
当检测 Xray Reality 所需端口时,只需要检查 TCP 443 是否被占用。
以下配置应该被允许:
TCP 443 → Xray VLESS Reality
UDP 443 → sing-box Hysteria2
因为 TCP 443 和 UDP 443 在 Linux 中是两个独立的网络监听。
当前实际行为
脚本将 UDP 443 的占用也判断为443端口冲突:
UDP 443 已被 sing-box 使用
↓
脚本认为443不可用
当前解决方法
手动修改:
/etc/xray/conf/*.json
将:
"port": XXXX
修改为:
"port": 443
然后重启 Xray:
systemctl restart xray
修改后可以正常运行:
TCP 443 → Xray VLESS Reality
UDP 443 → sing-box Hysteria2
建议改进
建议修改端口检测逻辑:
当前逻辑可能只判断端口号是否存在:
443 已使用 → 禁止使用
建议改为区分协议:
这样可以支持:
等常见多协议共用443端口的部署方式。
感谢维护项目。