目录
介绍 {#i}
众所周知,甲骨文的ubuntu镜像内置了防火墙规则,就算在甲骨文的控制面板上放行了全部端口,重启之后放行的端口依然会失效,小白之前是直接D了一个Debian,但是重启后直接失联了,今天甲骨文放货,抢了一台,不敢D了......小白查阅了网上的教程,大概步骤都是:
-
放行甲骨文控制面板的外部防火墙
-
iptables放行所有端口
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT
sudo iptables -F
- Oracle自带的Ubuntu镜像默认设置了Iptable规则,关闭它
apt-get purge netfilter-persistent
reboot
或者:
强制删除iptables
rm -rf /etc/iptables && reboot
但是,小白发现进行完如上操作重启后端口放行依然会失效,这时小白进行了如下尝试:
-
直接卸载iptabels
-
卸载ufw防火墙
但是无一例外重启后端口放行还是会失效,其实小白目测,这应该是iptabes的问题,通过对iptables进行配置是可以修复的,但奈我实在是不精通iptables的配置,不然怎么叫小白呢......
这时我想起了之前写的一篇教程:如何在重启或启动时执行命令或脚本
我们不妨换个思路,既然可以通过上面的第二个步骤放行全部端口,那我们写一个简单的脚本,让它开机执行一下,不就行了嘛。
实操 {#i-2}
1. 新建并编辑脚本文件 {#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进程守护文件 {#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
大功告成。
一键脚本 {#i-3}
#下载使用脚本
wget https://raw.githubusercontent.com/jamespan2012/myshellscripts/main/oracle.sh -O oracle.sh && bash oracle.sh
#后续运行脚本(再次检查也仅需运行下面代码)
bash oracle.sh