我有一台让我头疼的服务器。重新安装后,ipv6 工作正常,直到我重新启动系统。之后,它只会获取后缀地址:
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 0c:c4:7a:8f:66:10 brd ff:ff:ff:ff:ff:ff
inet removed/23 brd 45.77.111.255 scope global dynamic enp1s0
valid_lft 86365sec preferred_lft 86365sec
inet6 fe80::ec4:7aff:fe8f:6610/64 scope link
valid_lft forever preferred_lft forever
:ec4:7aff:fe8f:6610
是分配给此服务器的 ipv6 地址的正确后缀。但无论我做什么,重新启动后,我都无法让它再次从路由器获取完整地址。
我的 /etc/sysconfg/network-scripts/enp1s0 文件非常简单:
DEVICE="enp1s0"
BOOTPROTO="dhcp"
ONBOOT="yes"
TYPE="Ethernet"
NM_CONTROLLED="no"
IPV6_AUTOCONF="yes"
IPV6INIT="yes"
NOZEROCONF="yes"
ZONE=public
这是未经修改的“开箱即用”工作状态,所以我希望它是正确的。
我确实在安装脚本中运行了一些命令来准备防火墙,我怀疑这才是唯一的罪魁祸首:
firewall-cmd --zone=public --change-interface=enp1s0 --permanent;
firewall-cmd --zone=public --remove-service=ssh --permanent;
firewall-cmd --zone=public --add-port=<other port for ssh>/tcp --permanent;
firewall-cmd --reload;
但是,除非更改接口上的区域会从 ifcfg-enp1s0 中删除重要信息,否则我不明白这怎么能怪罪于此。
我真的不想使用静态寻址,因为动态寻址开箱即用,我想弄清楚如何破坏它。
更新: 的输出firewall-cmd --list-all
是
public (active)
target: default
icmp-block-inversion: no
interfaces: enp1s0
sources:
services: dhcpv6-client http https
ports: <redacted>/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules: