我有一个通过 DHCP 获得的动态 IP。
我已将 /etc/network/interfaces 文件编辑如下:
# This file describes the network interfaces available on your system
and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto enp1s0
iface enp1s0 inet static
address 192.168.0.200
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1
dns-nameservers 192.168.0.1 0.0.0.0
我已经尝试了以下命令:
- systemctl 重启 ifup@enp1s0
- systemctl 重新启动 ifup@eth0
- sudo 服务网络管理器重新启动
但它们都没有按照我想要的方式运行,输入后ifconfig
我一直看到我的动态 IP 192.168.0.30 出现...我做错了什么?
(我使用动态 IP 地址通过 ssh 进入机器,现在我有一个基于旧规则的端口转发规则,但我真的希望它是静态的。我选择了 200,远远超出了范围,其他人无法抢占它)。
答案1
你必须刷新当前 IP 设置(基于 DHCP)和重新启动网络服务(或重新启动)以使设置正确应用。
在您的终端上运行,
sudo ip addr flush enp1s0
您可以清除当前的 IP 设置。您可以重新启动联网通过在您的终端上运行该服务
sudo systemctl restart networking.service
。
如果你正在从远程运行远程控制会话,也许最好在单个语句中运行它们,例如sudo ip addr flush enp1s0 && sudo systemctl restart networking.service
,以避免在过程中丢失连接而无需重新启动联网服务(并设置新的 IP)。那么你必须更新你端口转发规则在您的路由器上能够连接到新的(静止的)知识产权。
另外,请注意,有些路由器不提供真正的DNS服务(它们通过 DHCP 提供 ISP 的 DNS IP 地址),所以我建议添加 Google 的 DNS 开放服务器(或者您选择的其他位置,可能在您的 LAN 上)至少作为辅助名称服务器,以某种方式故障转移由于可能无能为力你的路由器。
例子:
auto enp1s0
iface enp1s0 inet static
address 192.168.0.200
netmask 255.255.255.0
network 192.168.0.0
gateway 192.168.0.1
broadcast 192.168.0.255
dns-nameservers 192.168.0.1
dns-nameservers 8.8.8.8
希望能帮助到你。