我实际上在 opensource.com 上注册,以便能够为这篇文章保存一条“谢谢”评论 - 对我帮助很大。
我对你的解决方案的实施做了一些更改,我将在此处指出,以防对任何人有帮助
1. 我没有编写常规的“simple/forking” systemd 服务单元,而是编写了一个“oneshot”服务。我已将其粘贴在下面。
2. 我没有让服务调用 shell 脚本,而是让它直接调用 sysctl --load=[FILE],其中 [FILE] 是我放置在 '/etc/sysctl.d' 中的本地 drop-in 文件的名称,其中包含 ipv6 禁用设置。解决方案中少一个文件是件好事。
sysctl --load=[FILE]
3. 为了确保在系统启动期间不会过早尝试修复,我在服务单元文件中使用了 After = 参数,强制等待网络联机后再触发。到目前为止,这对我来说似乎有效,并且避免了任何类型的内置时间延迟的需要。
After =
4. 我选择仅直接加载我创建的单个 IPv6 设置文件,而不是运行 sysctl --system(这会导致基本上加载所有地方的所有系统配置文件),理论是最小化此修复的影响范围是另一件好事。
sysctl --system
这是我最终使用的 oneshot 服务单元文件(包含对您的文章的归属引用,我再次感谢您)
################################################################################## 文件名:/etc/systemd/system/disable_ipv6.service# 创建者:wirerydr# 创建日期:[2022-08-17 00:29]# 最后修改日期:[2022-08-17 01:16]# 描述:在启动期间完全禁用 IPv6 的 Oneshot 服务 ################################################################################## 注意:似乎在启动期间,'/etc/sysctl.d/*.conf' 中的设置没有# 总是应用。为了缓解这种情况,此 systemd oneshot 服务强制# 应用设置文件 '/etc/sysctl.d/70-disable-ipv6.conf',以# 完全禁用 IPv6。此 oneshot 服务在# 系统启动期间调用,在达到 systemd 'network-online' 目标后。 ## 源自 'https://open-source.net.cn/article/22/8/disable-ipv6',感谢。 ################################################################################# #[Unit]描述 = "在启动时完全禁用 IPv6 的 Oneshot 服务"After = network-online.target #[Service]类型 = oneshotRemainAfterExit = yesExecStart =/bin/bash -c "sysctl --load=/etc/sysctl.d/70-disable-ipv6.conf" #[Install]WantedBy = multi-user.target
我实际上在 opensource.com 上注册,以便能够为这篇文章保存一条“谢谢”评论 - 对我帮助很大。
我对你的解决方案的实施做了一些更改,我将在此处指出,以防对任何人有帮助
1. 我没有编写常规的“simple/forking” systemd 服务单元,而是编写了一个“oneshot”服务。我已将其粘贴在下面。
2. 我没有让服务调用 shell 脚本,而是让它直接调用
sysctl --load=[FILE]
,其中 [FILE] 是我放置在 '/etc/sysctl.d' 中的本地 drop-in 文件的名称,其中包含 ipv6 禁用设置。解决方案中少一个文件是件好事。3. 为了确保在系统启动期间不会过早尝试修复,我在服务单元文件中使用了
After =
参数,强制等待网络联机后再触发。到目前为止,这对我来说似乎有效,并且避免了任何类型的内置时间延迟的需要。4. 我选择仅直接加载我创建的单个 IPv6 设置文件,而不是运行
sysctl --system
(这会导致基本上加载所有地方的所有系统配置文件),理论是最小化此修复的影响范围是另一件好事。这是我最终使用的 oneshot 服务单元文件(包含对您的文章的归属引用,我再次感谢您)
#################################################################################
# 文件名:/etc/systemd/system/disable_ipv6.service
# 创建者:wirerydr
# 创建日期:[2022-08-17 00:29]
# 最后修改日期:[2022-08-17 01:16]
# 描述:在启动期间完全禁用 IPv6 的 Oneshot 服务
#################################################################################
# 注意:似乎在启动期间,'/etc/sysctl.d/*.conf' 中的设置没有
# 总是应用。为了缓解这种情况,此 systemd oneshot 服务强制
# 应用设置文件 '/etc/sysctl.d/70-disable-ipv6.conf',以
# 完全禁用 IPv6。此 oneshot 服务在
# 系统启动期间调用,在达到 systemd 'network-online' 目标后。
#
# 源自 'https://open-source.net.cn/article/22/8/disable-ipv6',感谢。
#################################################################################
#
[Unit]
描述 = "在启动时完全禁用 IPv6 的 Oneshot 服务"
After = network-online.target
#
[Service]
类型 = oneshot
RemainAfterExit = yes
ExecStart =/bin/bash -c "sysctl --load=/etc/sysctl.d/70-disable-ipv6.conf"
#
[Install]
WantedBy = multi-user.target