配置Ubuntu18.04使iptables规则重启系统后仍然有效

本文详细介绍了如何将iptables规则保存到文件中,并通过编辑rc.local和systemd服务设置使其在系统启动时自动恢复这些规则,确保网络配置的一致性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一步:保存iptables规则到文件 /etc/iptables.rules

iptables-save > /etc/iptables.rules

第二步:将如下代码写入 /etc/rc.local

#!/bin/sh
iptables-restore < /etc/iptables.rules

第三步:为 /etc/rc.local 文件赋可执行权限

chmod +x /etc/rc.local

第四步:编辑文件 /lib/systemd/system/rc.local.service 内容如下:

#  SPDX-License-Identifier: LGPL-2.1+
#
#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.

# This unit gets pulled automatically into multi-user.target by
# systemd-rc-local-generator if /etc/rc.local is executable.
[Unit]
Description=/etc/rc.local Compatibility
Documentation=man:systemd-rc-local-generator(8)
ConditionFileIsExecutable=/etc/rc.local
After=network.target

[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
RemainAfterExit=yes
GuessMainPID=no

第五步:设置 rc.local 为开机启动

systemctl enable rc.local

第六步:重启系统后 查看 iptables 规则是否还在

<think>嗯,用户想关闭Ubuntu 18.04的SSH服务,我需要先回想一下相关步骤。首先,得确认SSH服务是否真的在运行。可能用户之前安装过openssh-server,现在不需要了,或者出于安全考虑想关闭。我应该先建议他们检查服务状态,用systemctl status ssh或者service ssh status命令。这样他们可以确认服务是否活跃。 接下来,停止正在运行的服务。这时候需要用systemctl stop ssh或者service ssh stop。不过,这只是临时关闭,重启后又会自动启动。所以用户可能更想永久禁用,这时候应该用systemctl disable ssh,或者用update-rc.d命令来移除启动项。 然后,如果用户想彻底卸载SSH服务器,可以推荐apt remove openssh-server,这样彻底删除软件包。不过要注意,卸载前确保确实不需要了,因为可能会影响远程管理。 另外,防火墙设置可能需要调整,比如关闭22端口。虽然关闭服务后端口自然不再监听,但检查防火墙规则也是个好习惯,可以用ufw deny 22或者iptables相关命令。 还要提醒用户,操作完成后最好再检查一下服务状态和端口监听情况,用netstat或ss命令确认22端口是否关闭。另外,如果是临时关闭,重启后服务会恢复,所以永久禁用的话必须执行disable步骤。如果是云服务器,关闭SSH可能会导致无法远程连接,所以建议先有其他访问方式,比如控制台访问,避免被锁在外面。 整个过程需要分步骤说明,确保用户能一步步执行,且注意潜在的风险点,比如永久禁用和卸载的影响。同时,保持回答结构清晰,用中文简洁地解释每个命令的作用,让用户明白自己在做什么。</think>以下是在Ubuntu 18.04系统中关闭SSH服务的分步指南: --- ### 第一步:验证SSH服务状态 ```bash $ systemctl status ssh # 或传统方式 $ service ssh status ``` 如果看到 `Active: active (running)` 表示服务正在运行 --- ### 第二步:立即停止SSH服务 ```bash $ sudo systemctl stop ssh # 或传统方式 $ sudo service ssh stop ``` > 注意:这是临时关闭,重启系统后会自动恢复 --- ### 第三步:永久禁用SSH服务 ```bash $ sudo systemctl disable ssh # 或传统方式 $ sudo update-rc.d ssh disable ``` --- ### 第四步(可选):卸载openssh-server ```bash $ sudo apt remove --purge openssh-server ``` --- ### 补充说明 1. **端口验证**: ```bash $ sudo netstat -tuln | grep :22 # 或 $ ss -tuln | grep :22 ``` 成功关闭后应无输出 2. **防火墙设置**(若启用): ```bash $ sudo ufw deny 22 ``` --- ### 注意事项 - 如果通过SSH远程连接操作,关闭服务会立即断开连接 - 云服务器请先确保有备用访问方式(如控制台VNC) - 禁用服务后,相关日志仍可在 `/var/log/auth.log` 查看 建议操作完成后重启系统验证配置是否生效: ```bash $ sudo reboot ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

one312

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值