介绍
众所周知,甲骨文的ubuntu镜像内置了防火墙规则,就算在甲骨文的控制面板上放行了全部端口,重启之后放行的端口依然会失效,小白之前是直接D了一个Debian,但是重启后直接失联了,今天甲骨文放货,抢了一台,不敢D了……小白查阅了网上的教程,大概步骤都是:
1. 放行甲骨文控制面板的外部防火墙
2. iptables放行所有端口
sudo iptables -P INPUT ACCEPT sudo iptables -P FORWARD ACCEPT sudo iptables -P OUTPUT ACCEPT sudo iptables -F
3. Oracle自带的Ubuntu镜像默认设置了Iptable规则,关闭它
apt-get purge netfilter-persistent reboot
或者:
强制删除iptables
rm -rf /etc/iptables && reboot
但是,小白发现进行完如上操作重启后端口放行依然会失效,这时小白进行了如下尝试:
1. 直接卸载iptabels
2. 卸载ufw防火墙
但是无一例外重启后端口放行还是会失效,其实小白目测,这应该是iptabes的问题,通过对iptables进行配置是可以修复的,但奈我实在是不精通iptables的配置,不然怎么叫小白呢……
这时我想起了之前写的一篇教程:如何在重启或启动时执行命令或脚本
我们不妨换个思路,既然可以通过上面的第二个步骤放行全部端口,那我们写一个简单的脚本,让它开机执行一下,不就行了嘛。
实操
1. 新建并编辑脚本文件
vi /root/allin.sh #写入如下配置 #!/usr/bin/env bash sudo iptables -P INPUT ACCEPT sudo iptables -P FORWARD ACCEPT sudo iptables -P OUTPUT ACCEPT sudo iptables -F #保存并退出,然后赋予执行权限 chmod +x /root/allin.sh
2. 新建并编辑systemd进程守护文件
vi /etc/systemd/system/allin.service #写入如下配置 [Unit] Description=Run a Custom Script at Startup After=default.target [Service] ExecStart=/root/allin.sh [Install] WantedBy=default.target #保存并退出
然后运行以下命令更新 systemd 配置文件并启用服务:
systemctl daemon-reload systemctl enable allin.service
重启系统进行检查:
reboot
大功告成。
一键脚本
#下载使用脚本
wget https://raw.githubusercontent.com/jamespan2012/myshellscripts/main/oracle.sh -O oracle.sh && bash oracle.sh
#后续运行脚本(再次检查也仅需运行下面代码)
bash oracle.sh