如何管理Narwhal Cloud切的NAT小鸡

前言

最近闲来无事,就把手头上免费的甲骨文免费服务器切成NAT小鸡分享给有需要的人使用,但总是有些用户不爱惜IP,还有一些把它当牛马,长期拉满 带宽,拉满 CPU的,不能再放任了,需要管理一下,这里记录一下管理过程和管理方式,以便自己需要,随时查用,纯当笔记了。

查协议

这个比较容易导致IP被封的主要原因,所以需要时不时查看一下用户有没有使用了弱协议,需要及时通知用户,或者直接在后台把端口映射关了。

使用的是python来查看,代码如下:

python3 - <<'PY'
import subprocess, json, re, shlex

def run(cmd):
    return subprocess.run(
        cmd,
        capture_output=True,
        text=True,
        encoding="utf-8",
        errors="replace"
    ).stdout.strip()

for cid in run(["podman", "ps", "-q"]).splitlines():
    name = run(["podman", "inspect", "--format", "{{.Name}}", cid])
    processes = run(["podman", "top", cid, "args"])
    configs = set()

    for line in processes.splitlines():
        if not re.search(r'xray|sing-box', line, re.I):
            continue
        try:
            args = shlex.split(line)
        except ValueError:
            continue

        for i, a in enumerate(args[:-1]):
            if a in ("-c", "-config", "--config"):
                configs.add(args[i+1])

    for path in sorted(configs):
        content = run(["podman", "exec", cid, "cat", path])
        try:
            data = json.loads(content)

            for inbound in data.get("inbounds", []):
                proto = str(inbound.get("type", inbound.get("protocol", "?")))
                port = inbound.get("listen_port", inbound.get("port", "?"))
                flag = "⚠️" if proto.lower() in (
                    "shadowsocks", "socks", "http", "mixed"
                ) else "✅"

                print(f"{flag} {name[:8]} | {cid[:8]} | {proto} | 端口 {port}")

        except (ValueError, TypeError, AttributeError):
            pass
PY

使用 直接在SSH里粘贴执行

得到如下结果

✅ a11898e8 | 42fd9790 | vless | 端口 24204
✅ a11898e8 | 42fd9790 | direct | 端口 34747
✅ a11898e8 | 42fd9790 | vless | 端口 2054
✅ a11898e8 | 42fd9790 | vless | 端口 2055
✅ 0d424ea3 | c32027e2 | vless | 端口 40001
✅ dfce7310 | 0c5362b0 | hysteria2 | 端口 55668
✅ dfce7310 | 0c5362b0 | vless | 端口 55667
✅ 3713847f | 992a387a | vless | 端口 37970
✅ d3b956b8 | 1e50d126 | anytls | 端口 50925
✅ b908c20a | 978eb21c | vless | 端口 24443
✅ b908c20a | 978eb21c | vless | 端口 24444
✅ b908c20a | 978eb21c | hysteria2 | 端口 24443
✅ 1f763a18 | cbb60bf3 | hysteria2 | 端口 15022
⚠️ 1f763a18 | cbb60bf3 | socks | 端口 3128
✅ 1f763a18 | cbb60bf3 | vless | 端口 15022
⚠️ 9c5284dd | de05a108 | shadowsocks | 端口 8388
✅ 9c5284dd | de05a108 | hysteria2 | 端口 443
✅ 9c5284dd | de05a108 | vless | 端口 443
✅ 9c5284dd | de05a108 | anytls | 端口 8443
✅ 6c640eb1 | 5c03198b | vless | 端口 80
✅ af4d8451 | 18fb2ced | vless | 端口 22229
✅ e0985daf | af39fe76 | trojan | 端口 23456
✅ b2215e81 | a9987534 | vless | 端口 59338
✅ 476f7181 | c2214837 | vless | 端口 50610
✅ 1403fef2 | f5e56790 | vless | 端口 20010
✅ 627a3b49 | b772a011 | vless | 端口 24443

可以看到标了⚠️号的,就是使用了弱协议的

查带宽

首先安装iftop:

apt update
apt install -y iftop

然后运行:

iftop -i podman1 -nNP
image-20261106101814709

可以看到结果,几乎都 是10.91.0.19 这台小鸡在跑流量,而且点满了带宽。

管理

找到IP就能确定是哪台小鸡了,回到Narwhal Cloud控制面板——托管中心——机器列表——找到对应的母鸡,

查看“实例管理” 通过查找 IP,定位到所在机器

第一次,先关机,再警告

第二次,直接修改弱协议端口

第三次,直接重装系统

第四次,拉黑。

相关推荐

暂无评论

发表评论

您的电子邮件地址不会被公开,必填项已用*标注。