fscarmen / sing-box

Sing-box 全家桶 --- 一键多协议脚本
1.27k stars 276 forks source link

开启订阅之后稳定失败 #70

Closed sinoon closed 6 months ago

sinoon commented 6 months ago

不管是选择某个能力还是如何,nginx 都无法访问(502)

image image
脚本版本: v1.1.8 (2024.03.18)
 功能新增: 把用于订阅服务的 nginx 移到 systemd daemon,跟随 sing-box 启停
 系统信息:
     当前操作系统: CentOS Linux 7 (Core)
     内核: 6.8.1-1.el7.elrepo.x86_64
     处理器架构: amd64
     虚拟化: kvm
     IPv4: xxx
     IPv6:
     Sing-box: 开启    version: 1.9.0-beta.17
     进程ID: 7231
     运行时长: Thu 2024-03-21 05:31:07 EDT; 12min ago
     内存占用: 34.9 MB
     使用端口: 1111 - 1120
fscarmen commented 6 months ago

c7我没测过,看看nginx进程有没起来,有的话本地 curl 一下看看, 方便的话你换个debian,ubuntu或alpine看看?

fscarmen commented 6 months ago

已更新了 CentOS 7,8,9 都测过了,你重新安装试试,等你反馈。

sinoon commented 6 months ago

神奇,现在反而没发启动 sing-box 了。

cat /etc/*release
CentOS Linux release 7.9.2009 (Core)
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

CentOS Linux release 7.9.2009 (Core)
CentOS Linux release 7.9.2009 (Core)

Full Output


 Language:
 1. English (default)
 2. 简体中文

 Choose: 2

 所有依赖已存在,不需要额外安装

======================================================================================================================

 脚本版本: v1.1.11 (2024.04.01)
 功能新增: sing-box 全家桶 + argo 容器版本全新上线,详细参考: https://github.com/fscarmen/sing-box/blob/main/README.md
 系统信息:
     当前操作系统: CentOS Linux 7 (Core)
     内核: 4.10.4-1.el7.elrepo.x86_64
     处理器架构: amd64
     虚拟化: kvm
     IPv4: 1234  日本  IT7 Networks Inc
     IPv6:
     Sing-box: 未安装  

======================================================================================================================

 1.  安装 Sing-box 协议全家桶脚本
 2.  升级内核、安装BBR、DD脚本 (sb -b)
 3.  安装 ArgoX 脚本 (argo + xray) [https://github.com/fscarmen/argox]
 4.  安装 sba 脚本 (argo + sing-box) [https://github.com/fscarmen/sba]
 5.  安装 TCP brutal
 0.  退出

 请选择: 1

 (1/6) 多选需要安装协议(比如 hgbd):
 a. all (默认)
 b. XTLS + reality
 c. hysteria2
 d. tuic
 e. ShadowTLS
 f. shadowsocks
 g. trojan
 h. vmess + ws (必须在 Cloudflare 解析自有域名)
 i. vless + ws + tls (必须在 Cloudflare 解析自有域名)
 j. H2 + reality
 k. gRPC + reality

 请选择: a

 选择的协议及端口次序如下:
 1 . XTLS + reality
 2 . hysteria2
 3 . tuic
 4 . ShadowTLS
 5 . shadowsocks
 6 . trojan
 7 . vmess + ws
 8 . vless + ws + tls
 9 . H2 + reality
 10. gRPC + reality

 (2/6) 请输入开始的端口号,必须是 100 - 65520,需要连续10个空闲的端口 (默认为: 8881): 1234

 (3/6) 输出订阅二维码和 http 服务,需要安装依赖 nginx
 如不需要,请输入 [n]
 如需要请输入用于订阅服务的 nginx 端口号,必须是 100 - 65520 (默认为: 17968): 12345

 (4/6) 请输入 VPS IP (默认为: 1.1.1.1):

 请输入 VMESS 域名: jdkjd.abc.win

 请输入 VLESS 域名: jskjd.abc.win

 1. cn.azhz.eu.org
 2. visa.com
 3. skk.moe
 4. time.cloudflare.com
 5. csgo.com

 请选择或者填入优选域名,默认为 cn.azhz.eu.org:

 (5/6) 请输入 UUID (默认为 d209dccd-8912-4501-bc23-b9e11788ca34):

 (6/6) 请输入节点名称 (默认为 beamingxxx):

 安装依赖列表: nginx

 下载 Sing-box 中,请稍等 ...
Created symlink from /etc/systemd/system/multi-user.target.wants/sing-box.service to /etc/systemd/system/sing-box.service.
/dev/fd/62: line 358: -c: command not found

 Sing-box 开启 失败
sinoon commented 6 months ago

这个是搬瓦工日本服务器,默认系统

看起来是这一段执行失败了

https://github.com/fscarmen/sing-box/blob/53065a4e83be150f9995e5cb8a8c83c7c90655a1/sing-box.sh#L356-L358

我看了一下,此时 nginx 还没有安装,感觉很奇怪呀

原来默认 nginx 不在源里面呀

yum install nginx -y
Failed to set locale, defaulting to C
Loaded plugins: fastestmirror, product-id, search-disabled-repos, subscription-manager

This system is not registered with an entitlement server. You can use subscription-manager to register.

Loading mirror speeds from cached hostfile
 * base: ftp.iij.ad.jp
 * elrepo-kernel: ftp.ne.jp
 * extras: ftp.iij.ad.jp
 * updates: ftp.iij.ad.jp
No package nginx available.
Error: Nothing to do

先增加一下源

yum install epel-release -y

这样就可以了。

那你看是不是增加一下这个判断?感觉没有处理 nginx 安装失败的 case

fscarmen commented 6 months ago

nginx没安装好,脚本是 yum install nginx,你手动运行下看看,没成功就先运行 yum update,再看运行yum install nginx

sinoon commented 6 months ago

你定方案?我来 pr?

fscarmen commented 6 months ago

你看看是否可以,我测的两个系统商的c7均不需要先yum date,就可安装nginx了,能节省不少时间。如果不行,我再想想有没更好方法

fscarmen commented 6 months ago

yum install epel-release -y

要这段吗?试下update是否可以了

sinoon commented 6 months ago

这个是搬瓦工日本服务器,默认系统

看起来是这一段执行失败了

https://github.com/fscarmen/sing-box/blob/53065a4e83be150f9995e5cb8a8c83c7c90655a1/sing-box.sh#L356-L358

我看了一下,此时 nginx 还没有安装,感觉很奇怪呀

原来默认 nginx 不在源里面呀

yum install nginx -y
Failed to set locale, defaulting to C
Loaded plugins: fastestmirror, product-id, search-disabled-repos, subscription-manager

This system is not registered with an entitlement server. You can use subscription-manager to register.

Loading mirror speeds from cached hostfile
 * base: ftp.iij.ad.jp
 * elrepo-kernel: ftp.ne.jp
 * extras: ftp.iij.ad.jp
 * updates: ftp.iij.ad.jp
No package nginx available.
Error: Nothing to do

先增加一下源

yum install epel-release -y

这样就可以了。

那你看是不是增加一下这个判断?感觉没有处理 nginx 安装失败的 case

哦哦,你看我前面列的情况,确实是增加了 epel-release 就可以了。

感觉思路上面,我们可以进行一下判断,如果 nginx 安装失败,并且是由于缺少源导致的,我们就帮用户增加一下,然后再进行安装,我想用户应该不会拒绝吧