前言


由于自己有些服务需要服务器支撑,原来的过渡方案便是云应用
而如今,终于有时间来捣鼓服务器,却苦于对Linux系统的不熟悉,处处碰壁
最近,在使用1Panel部署docker容器的时候,经常因为对 iptables 的不熟悉,又想有一个安全系数稍高的服务器,导致碰到各式各样的问题
不得已,寻求ChatGPT的帮助,经过多次,得以编写出一个对我来说接近完美的 iptables 脚本

功能简介


  • 交互式菜单操作,减少手输命令出错
  • 支持 IPv4 / IPv6 切换
  • 支持 backend 选择:auto / nft / legacy
  • 支持选择 table / chain(新手模式下会锁定到安全范围)
  • 常用规则快速添加(例如:放行已建立连接、放行指定端口等)
  • 支持导出 / 恢复规则,并可生成 systemd 开机恢复服务(可选)

三种模式(简单说明)


  • Beginner(新手模式)

    • 仍然可以选择:IPv4/IPv6、backend
    • 固定锁定:TABLE=filter、CHAIN=INPUT
    • 每次操作后会自动回到 filter/INPUT,防止误切到更危险的区域(比如 nat/forward)
  • Standard(普通模式)

    • 完整菜单操作
    • 可以自由选择 IPv4/IPv6、backend、table、chain
    • 适合日常维护使用
  • Expert(专家模式)

    • 接近 REPL:输入参数直通执行
    • 护栏最少,适合熟练用户快速操作

使用方法


方式 1:克隆仓库运行

git clone https://github.com/OFLordRtx/IPtctl.gitcd IPtctlchmod +x iptctl.sh./iptctl.sh

方式 2:只下载脚本再运行(推荐)

curl -L -o iptctl.sh https://raw.githubusercontent.com/OFLordRtx/IPtctl/HEAD/iptctl.shchmod +x iptctl.sh./iptctl.sh

方式 3:一行命令直接跑(可选,不太推荐)

bash <(curl -Ls https://raw.githubusercontent.com/OFLordRtx/IPtctl/HEAD/iptctl.sh)

友情提醒


  • 远程服务器上操作防火墙,建议至少开两路 SSH,别把自己作死
  • 动手前先导出规则备份一下,心里踏实
  • 如果你还有云厂商安全组/面板防火墙之类的东西,注意它们会不会跟 iptables 打架

项目地址 & 反馈


GitHub:https://github.com/OFLordRtx/IPtctl
有 bug / 想加功能欢迎提 issue 或 PR(Pull Request)。我代码不算熟,会尽量测试后合并;也可以直接在帖子里留言反馈。