iptables开放指定端口
2022-06-28 本文已影响0人
RamboL
由于业务的需要, MySQL,Redis,mongodb等应用的端口需要我们手动操作开启
下面以 MySQL 为例,开启 3306 端口的远程访问,其他端口类似。
方式一:通过修改iptables文件方式
编辑配置文件
#通过vi或vim命令进行编辑iptables
vi /etc/sysconfig/iptables
### 增加配置
添加如下一行配置:
-A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT
注意:如果已经存在该端口的配置,修改 DROP 为 ACCEPT:
-A INPUT -p tcp -m tcp --dport 3306 -j DROP => ACCEPT
重启 iptables
service iptables restart
查看开放端口
/sbin/iptables -L -n
方式二 通过命令行方式进行新增
命令
/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
保存
service iptables save
查看开放端口
/sbin/iptables -L -n
方式三 脚本
如果操作比较频繁或者命令的方式比较繁琐,我这里提供一个简单的设置脚本,可以上传到服务器的对应目录,直接运行输入端口号即可
sh脚本
#!/bin/bash
echo "-- 开放端口 ---"
for i in "$@"; do
echo "正在开放[${i}]端口"
/sbin/iptables -I INPUT -p tcp --dport ${i} -j ACCEPT
echo "端口[${i}]开放成功"
done
echo "-----保存端口设置-----"
service iptables save
echo "-----保存成功--------"
使用方法
假设我们使用xshell通过test账号进行ssh登录
#进入用户目录
cd ~
#创建管理脚本
vi fire_wall_set.sh
#shift+insert粘贴sh脚本,!wq 保存并退出脚本编辑
#在控制台中输入,如下命令,赋予脚本可执行权限
chmod +x fire_wall_set.sh
# 输入命令,回车即可
fire_wall_set.sh 3306
#如果需要一次开放多个端口可以通过空格的方式添加多个,如:
fire_wall_set.sh 3306 6379 8888
注意:如果需要通过公网访问,请与对应的云服务器提供商的控制台设置安全组放行(阿里云、腾讯云等)