众所周知,甲骨文的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

  1. Oracle自带的Ubuntu镜像默认设置了Iptable规则,关闭它

apt-get purge netfilter-persistent
reboot
或者:
强制删除iptables

rm -rf /etc/iptables && reboot
但是,小白发现进行完如上操作重启后端口放行依然会失效,这时小白进行了如下尝试:

  1. 直接卸载iptabels
  2. 卸载ufw防火墙

但是无一例外重启后端口放行还是会失效,其实小白目测,这应该是iptabes的问题,通过对iptables进行配置是可以修复的,但奈我实在是不精通iptables的配置,不然怎么叫小白呢……

这时我想起了之前写的一篇教程:如何在重启或启动时执行命令或脚本

我们不妨换个思路,既然可以通过上面的第二个步骤放行全部端口,那我们写一个简单的脚本,让它开机执行一下,不就行了嘛。

实操

  1. 新建并编辑脚本文件
  2. /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

  1. 新建并编辑systemd进程守护文件
  2. /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

最后修改:2025 年 11 月 08 日
如果觉得我的文章对你有用,请随意赞赏