Shellcrash仓库位置:

https://github.com/juewuy/ShellCrash/blob/master/README_CN.md

一、安装

Linux设备安装

sudo -i #切换到root用户,如果需要密码,请输入密码
export url='https://gh.jwsc.eu.org/master' && bash -c "$(curl -kfsSl $url/install.sh)" && . /etc/profile &> /dev/null

二、使用

使用过程会出发SELinux的安全策略问题导致无法正常运行使用

按照提示可能会有多个警告,但也给出了大概的解决办法;

这通常是因为 ShellCrash 在执行时涉及了大量的临时文件读写、网络请求和进程间通信,而这些动作在 Rocky Linux 的默认安全策略中都是被禁止的。

截图上提示是通过审计日志自动生成一个“白名单”规则,但考虑到一个个太多了,干脆一次性把最近所有的拒绝记录都转换成允许策略

  1. 打开终端,切换到root

  2. 执行以下命令

# 将所有的 SELinux 拒绝记录转换为一个名为 'my_shellcrash' 的策略模块
ausearch -m avc -ts recent | audit2allow -M my_shellcrash

# 安装这个新生成的策略模块
semodule -i my_shellcrash.pp

后面自然可以重启服务

其他使用技巧建议参考官方文档或者其他地方,基本上都有讲解

三、另外的解决办法

1.将整个系统设为“宽容模式”(最平衡),如果你在开发调试阶段,不想彻底关闭安全检查,但又不想被这些弹窗烦死,可以将 SELinux 设为 Permissive。在这种模式下,系统不会拦截任何操作,但仍会把违规行为记录在日志里。

临时生效:

sudo setenforce 0

永久生效:

sudo vim /etc/selinux/config

# 将 SELINUX=enforcing 修改为 SELINUX=permissive

2.彻底关闭

sudo vim /etc/selinux/config
# 将 SELINUX=enforcing 修改为 SELINUX=disabled,然后重启 

四、如何判断运行成功呢

就用最关键的判断吧

  1. 检查网络端口监听(最关键)

ss -tlnp | grep -E "7890|7891|9090"

可以看到启动前后,LISTEN到的端口状态

还有一个最直观的方式,测试网络连通性,直接通过代理端口发一个请求给 Google 或 GitHub,看是否能通:

curl -I -x 127.0.0.1:7890 https://www.google.com

#成功标志:返回 HTTP/1.1 200 OK 或 200 Connection established。

#提示:如果返回 Connection refused,说明代理没起作用。