OpenWrt打开和关闭指定端口shell脚本

2023-05-16

最近使用小米路由器插件Misstar Tools,因为它在小米路由器3上使用的端口为1024,而且没有密码,所以把这个端口暴露在公网上就非常不安全。但有时候我们确实就想在公网上使用这个插件,比如使用它的网络唤醒功能,省了168块向日葵开机棒的钱,免费的它不香吗?

Misstar

所以写了一个shell脚本,实际调用的是iptables命令,理论上OpenWrt上面应该都能用,可以在需要使用时打开它使用的端口,不使用时关闭,增加安全性。

因为小米路由器默认的规则是不打开的端口全部禁止,所以只要添加允许指定端口访问规则就好了,不允许删除该规则即可。

脚本plugin_ports.sh如下:

#!/bin/sh
# author: yasin

SERVICE_TCP_PORTS="1024,12666"

enable_tcp_ports(){
	echo "Open ports $SERVICE_TCP_PORTS."
	iptables -I INPUT -p tcp  -m multiport --dport $SERVICE_TCP_PORTS -j ACCEPT
	iptables-save
	echo "enable tcp ports $SERVICE_TCP_PORTS success." 
}
			
disable_tcp_ports(){
	rule_number=`iptables -L -n --line-number | grep $SERVICE_TCP_PORTS | awk '{print $1}'`
	if  [ ! -n "$rule_number" ] ;then
		echo "Ports $SERVICE_TCP_PORTS dont't have iptables rules."
	else
		echo "Delete input rule $rule_number."
		iptables -D INPUT $rule_number
	fi
	echo "disable tcp ports $SERVICE_TCP_PORTS success." 
}
						
case $1 in
enable)
	enable_tcp_ports;;
disable)
	disable_tcp_ports;;
*)
	echo "Usage:`basename $0` {enable|disable}";;
esac
  • 打开端口:sh plugin_ports.sh enable
  • 关闭端口:sh plugin_ports.sh disable
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OpenWrt打开和关闭指定端口shell脚本 的相关文章

  • 如何编写bash脚本来设置全局环境变量?

    最近写了一个设置环境变量的脚本 看一下 bin bash echo Pass a path read path echo path defaultPath home whoami Desktop if n path then export
  • 如何输入带有空格的路径?

    我有一个主文件 它使用 从主文件我做一个源 一个带有指向路径的变量的属性文件 属性文件如下所示 TMP PATH COMPANY someProject tmp OUTPUT PATH COMPANY someProject output
  • Python 模块 shellquote/unshellquote? [复制]

    这个问题在这里已经有答案了 Python 标准库中是否有任何内容可以正确解析 解解析字符串以在 shell 命令中使用 我正在寻找 perl 的 python 模拟String ShellQuote shell quote print St
  • 编写健壮的 shell 脚本有哪些规则?

    I recently erased part of my home directory with a shell script I wrote Fortunately I did hit Ctrl C fast enough to avoi
  • 如果给定键对应的值以指定字符串开头,则使用 jq 更新 JSON 文档中的对象

    我有给定的 JSON 并想更改id所有元素的值 以test in the name元素 other value some id values name test 2017 12 01 id 1 name othert id 2 以下 jq
  • 使用 find 和 xargs 交互删除文件

    我正在尝试将一些文件从 find 命令传输到交互式删除命令 以便我可以仔细检查要删除的文件 但我遇到了一些麻烦 find name print0 xargs 0 rm i 我认为上面的方法可行 但我只得到一串 rm remove regul
  • “bash -c 命令参数”末尾的参数的目的是什么?

    From man bash If the c option is present then commands are read from the first non option argument command string If the
  • MongoDB - 编辑器变量 - MongoDB shell - Windows 7

    EDITOR 变量功能真的可以在 Windows 7 上使用吗 我正在读一篇文章 说一旦我们设置了 EDITOR 变量在 mongorc js 中 我们只需在 shell 中输入 编辑变量名 and var name将被加载到编辑器中 在我
  • Linux find 命令权限被拒绝

    我想过滤掉不必要的信息 权限被拒绝 这些是命令 的输出find type f name sources list find run lxcfs Permission denied find run sudo Permission denie
  • Linux shell 根据第二列对文件进行排序?

    我有一个这样的文件 FirstName FamilyName Address PhoneNumber 如何按 FamilyName 排序 如果这是 UNIX sort k 2 file txt 您可以使用多个 k用于对多列进行排序的标志 例
  • 如果文件没有行尾字符,则 wc -l 不计算文件的最后一个

    我需要计算 unix 文件的所有行数 该文件有 3 行 但是wc l仅给出 2 个计数 我知道它不计算最后一行 因为它没有行尾字符 任何人都可以告诉我如何计算这一行吗 grep c返回匹配行的数量 只需使用一个空字符串 作为您的匹配表达式
  • Ansible - 当至少一项在循环中失败时跳过任务

    我正在使用 sqlplus 运行一些 SQL 脚本 在运行之前 我从该目录获取所有 sql 文件列表并将其存储在sql out如下所示 问题是 如果其中一个 sql 脚本失败 其余 sql 脚本仍然会执行 如果任何一个脚本失败 我想完全跳过
  • 在ubuntu中打开spyder

    我想在ubuntu中打开spyder Python IDE 通常我会在 shell 中编写 spyder 它会打开spyder IDE 现在 当我在shell中编写spyder时 它只是换行 什么也没有发生 类似于按 enter 我如何找回
  • Bash 中所有匹配的^单词^替换^?

    为了澄清 我正在寻找一种方法来执行global搜索并替换先前使用的命令 word replacement 似乎只替换了第一场比赛 有没有一些set我无法选择的选项 尝试这个 echo oneone oneone gs one two Rep
  • 为什么 fork 炸弹没有使 android 崩溃?

    这是最简单的叉子炸弹 我在许多 Linux 发行版上执行了它 但它们都崩溃了 但是当我在 android 终端中执行此操作时 即使授予后也没有效果超级用户权限 有什么解释为什么它没有使 Android 系统崩溃吗 一句话 ulimit Li
  • 在 bash 中添加(收集)退出代码

    我需要依赖于脚本中的几个单独的执行 并且不想将它们全部捆绑在一个丑陋的 if 语句中 我想使用退出代码 每次执行并添加它 最后 如果这个值超过阈值 我想执行一个命令 伪代码 ALLOWEDERROR 5 run something RESU
  • 如何从shell脚本自动登录MySQL?

    我有一个 MySQL 服务器 其中有一个用户和密码 我想在 shell 脚本中执行一些 SQL 查询而不指定密码 如下所示 config sh MYSQL ROOT root MYSQL PASS password mysql sh sou
  • GIT 和 Ruby:如何从 ruby​​ 脚本内部取消设置 GIT_DIR 变量?

    我编写了一个非常简单的 部署 脚本作为我的post update挂钩到我的裸 git 存储库中 变量如下 live domain mydomain com staging domain stage mydomain com git repo
  • 并行运行 shell 脚本

    我有一个 shell 脚本 打乱大型文本文件 600 万行和 6 列 根据第一列对文件进行排序 输出 1000 个文件 所以伪代码看起来像这样 file1 sh bin bash for i in seq 1 1000 do Generat
  • 如何在 *nix 中登录时运行脚本?

    我知道我曾经知道如何做到这一点 但是 如何在 unix 中登录时运行脚本 bash 可以 From 维基百科 Bash http en wikipedia org wiki Bash 28Unix shell 29 当 Bash 启动时 它

随机推荐

  • 元宇宙创作者必备技能TouchDesigner

    元宇宙的资源清单又更新啦 github com shadowcz007 awesome metaverse 感谢ML211 提供线索metaworld app 感谢ML1462 提供线索 The Sims Resource opus Git
  • 栈的入栈和出栈的顺序规律

    栈的入栈和出栈的顺序规律是先进后出 xff0c 所以出栈的可能数目跟入栈的可能排列数目是一致的 a的出入有2中可能 xff0c b的出入有2种可能 xff0c c的出入有2种可能 xff0c d只需要关系入 xff0c 只有一种可能 所以出
  • TCP和UDP协议发送数据包的大小

    在进行UDP编程的时候 我们最容易想到的问题就是 一次发送多少bytes好 当然 这个没有唯一答案 xff0c 相对于不同的系统 不同的要求 其得到的答案是不一样的 这里仅对像ICQ一类的发送聊天消息的情况作分析 xff0c 对于其他情况
  • Nodejs开发:如何让node app的程序一直运行?

    情境 运行nodejs的程序 xff0c 使用命令 xff1a node xxx js xff0c 但是关掉终端 xff0c 程序也关闭了 xff0c 如何让node app的程序一直运行 xff1f 解决 1 安装forever npm
  • Godot基础教程02:全都是节点

    在这里先劝退一波人 xff1a 本教程只会涉及2D内容 xff0c 不会涉及3D内容 创建节点 接上一章 xff0c 在左侧的场景面板中 xff0c 可以看到 xff1a 由于本教程只讲2D内容 xff0c 所以这里我们应该选择2D场景 x
  • docker安装gitlab-ce镜像,使用其他端口,亲测可用

    首先鄙视一下那些直接复制粘贴当自己博文的 xff0c 误导别人 xff0c 害我改了好久T T 安装步骤 xff1a 创建数据目录 mkdir p data gitlab config mkdir p data gitlab logs mk
  • iOS 录音,播放,转码MP3,上传语音文件

    语音文件 AVAudioRecorder recorder NSTimer timer NSString urlPlay BOOL isPlay pragma mark 61 61 61 61 61 61 61 61 61 语音文件 61
  • CentOS使用yum安装MySQL5.7报检索密钥错误解决方法

    在CentOS上使用yum安装MySQL时检索密钥错误的解决方法 参考 使用yum安装MySQL时报错 yum y install mysql mysql server yum y install mysql community serve
  • 安装django

    使用pip安装 pip install django 61 61 span class hljs string 39 1 8 39 span 检查django版本 python c span class hljs string 39 imp
  • python,pycharm报错 ModuleNotFoundError: No module named PIL最简单的解决方法

    python pycharm报错 ModuleNotFoundError No module named 39 PIL 最简单的解决方法 1进入cmd命令 2输入pip install Pillow即可 如图 如果对你有帮助 xff0c 请
  • docker中使用Ubuntu中文乱码问题解决

    一 前言 最近在docker中使用Ubuntu作为编译环境 xff0c 遇到了中文乱码情况 xff0c 分为不同的解决场景 xff0c 下面分别给出解决方法 下面的方法都不是将系统的语言修改为中文 xff0c 而是能够正确显示和输入中文 g
  • 在docker的centos镜像中使用systemctl启动slapd服务报错

    前言 使用docker搭建服务环境 xff0c 拉取了一个Centos7镜像 xff0c 在镜像中使用systemctl命令启动sladpd服务 xff0c 已经使用 privileged 61 true启用特权模式 xff0c 但还是报错
  • 逻辑卷管理器(LVM)

    一 什么是LVM xff1f LVM Logical Volume Manager 逻辑卷管理是在Linux2 4内核以上实现的磁盘管理技术 它是Linux环境下对磁盘分区进行管理的一种机制 现在不仅仅是Linux系统上可以使用LVM这种磁
  • Ubuntu使用Docker搭建编译环境完整教程

    前言 因为只有一台编译服务器 xff0c 但是我们需要在服务器上搭建不同的编译环境 xff0c 不同的编译环境区别巨大 xff0c 甚至可能需要是不同的Ubuntu版本 xff0c 所以我们可以使用Docker xff0c 搭建不同的编译环
  • 最新Gerrit2.16.15版本用户指南-中文文档

    这是为Gerrit最终用户准备的Gerrit指南 它说明了标准的Gerrit工作流程以及指导用户可以根据个人喜好来设置并使用Gerrit 为了更好地理解本指南 xff0c 读者最好了解Git xff0c 并熟悉基本的git命令和工作流程 什
  • Ubuntu 14.04安装Sambaf服务并设置为开机启动

    1 需求 我的需求是将Ubuntu服务器上的用户目录 xff08 比如 home yasin xff09 映射给Windows访问 xff0c 这样就可以在Windows下编辑代码 xff0c 修改完成后在Linux环境编译 2 安装 sp
  • Git Commit message编写指南

    一 Commit message 的作用 格式化的Commit message xff0c 有几个好处 1 提供更多的历史信息 xff0c 方便快速浏览 比如 xff0c 下面的命令显示上次发布后的变动 xff0c 每个commit占据一行
  • Windows下写代码并使用 SSHFS快速部署到 Linux 进行调试

    前言 很多时候 xff0c 因为不熟悉vim或者更喜欢Windows下的一些IDE xff0c 我们需要在Windows写代码并部署到Linux服务器上进行调试 相信很多程序员都有这个需求 xff0c 也有很多自己的解决方法 常见的有使用G
  • Android开发——java.lang.SecurityException: Permission Denial

    记录一个在日常开发当中遇到的错误 xff1a java lang SecurityException Permission Denial startForeground from pid 61 2345 uid 61 10395 requi
  • OpenWrt打开和关闭指定端口shell脚本

    最近使用小米路由器插件Misstar Tools xff0c 因为它在小米路由器3上使用的端口为1024 xff0c 而且没有密码 xff0c 所以把这个端口暴露在公网上就非常不安全 但有时候我们确实就想在公网上使用这个插件 xff0c 比