更艰难的道路

更艰难的道路

我使用静态 IP 地址。

当更改网络接口(eth0 或 wlan0)的 IP 时,设置将保存到网络连接,但在运行ifconfig或查看网络设置时,任一连接都会保留旧的 IP 地址。

我尝试过重新启动网络服务、计算机(是的,不止一台计算机出现这种情况)甚至重新安装操作系统。

请谁能帮帮我。过去一周我浪费了很多精力,只是想让 Ubuntu 12.04 像普通操作系统一样运行。

使用命令sudo ip addr add 192.168.0.1/24 dev eth0SOMETIMES 有效...该命令关闭接口,然后当重新启用它时,IP 再次恢复。啊啊啊!

答案1

一般来说,您的流程将是:

  • 停止网络管理器
  • 关闭接口
  • 分配地址和网络掩码(使用 ifconfig)
  • 如果接口是访问互联网的接口,则可以选择创建到网关的路由(使用路由)
  • 恢复界面
  • 并且:
    • 如果 DHCP 管理的 IP 地址分配如 中所定义/etc/network/interfaces
      • 没做什么。
      • service network-manager force-reload
    • 如果静态 IP 地址分配定义如下/etc/network/interfaces
      • 根据需要更改(或定义)IP、网络掩码、广播、网关
      • service network-manager start

当然,网络管理器也能分配静态路由。只需在网络管理器 GUI 中定义静态路由,然后service network-manager force-reload在终端中定义即可。完成。

或者通过从网络管理器 GUI 中删除静态路由定义,然后在终端上切换回动态 DHCP 分配service network-manager force-reload。完成。

或者你也可以这样做...

更艰难的道路

这也是逻辑上完美无缺、万无一失的方法。

这些说明假设您的接口是“eth0”。如果不是,您需要更改输入的所有命令和区域以反映您的接口。

首先,检查网络管理器是否正在运行:

service network-manager status

如果正在运行,请右键单击 Network-Manager,然后单击“编辑连接...”。选择您遇到问题的 [接口],然后单击“编辑...”。单击“IPv4 设置”选项卡。如果您在“地址”下看到任何条目,请将其删除。“保存”设置,然后关闭 Network-Manager。

然后,在终端上,用这四个命令字符串将括号和内部边界区域替换为值:

sudo service network-manager stop;
sudo ifconfig eth0 down;
sudo ifconfig eth0 [static IP you want] netmask [netmask; generally 255.255.255.0] up;
ifconfig eth0;

您应该看到您的接口现在具有您想要的地址,但我们还没有完成。要使设置持久(即,在重新启动后),您需要编辑(以 root 身份)/etc/network/interfaces,然后找到与您的 [接口] 相关的部分,或者添加一个新部分,用空行分隔每个部分(每个“部分”定义一个接口):

示例(如果文件中已经存在,则看起来像或类似于):

auto eth0
iface eth0 inet dhcp

示例(更改为此,如果不存在则添加):

auto eth0
iface eth0 inet static
      address [ip address goes here]
      netmask [netmask goes here]
      broadcast [for netmask 255.255.255.0, this should be x.x.x.255 where x from IP]
      (optional here, if this is will be your internet interface, "gateway [gateway addr]" goes here)

特别要注意的是,您不需要dhcp-assigned IP,您需要static-IP。请注意上述两个示例之间的结构差异。

保存。

现在,如果此接口用于互联网或外部路由(即,接口上的通信需要能够访问接口网络之外的 IP,这最终由您的网络掩码定义),那么:

在航站楼:

sudo route add default gw ["inside local" IP address of your router or other gateway]

使用以下命令验证您的设置是否正确:

sudo ifconfig eth0|grep addr && route|grep UG|awk '{print "Gateway:", $2, "Interface:", $8}';

现在:

sudo service network-manager start

...重新启动网络管理器。此时您应该一切就绪。

将来:

如果您在此之后需要将静态 IP 更改为另一个静态 IP,则像sudo service network-manager stop上面的例子一样简单,按照上面的例子sudo ifconfig eth0 down进行编辑/etc/network/interfaces并根据需要更改 IP 地址,sudo ifconfig eth0 [ip address] netmask [netmask] up如上例所示,然后sudo network-manager start按照上面的例子进行操作,按此顺序。

如果你希望 DHCP 自动为接口分配 IP 地址,那么就像sudo service network-manager stop上面的例子一样简单,按照上面的例子sudo ifconfig eth0 down进行编辑,然后/etc/network/interfaces消除地址、网络掩码、广播、网关和改变static说的部分dhcp,,sudo ifconfig eth0 0.0.0.0 netmask 255.255.255.0 upsudo service network-manager start完成。

答案2

我不是极客!我只是想分享我的经验。尝试停止一些服务,如网络管理器!例如:sudo service network-manager stop 我无法更改我的 mac... 但停止网络管理器后,我可以永久更改我的 mac。记住不要重新启动它,而是在停止服务期间更改设置!!!

答案3

就我的情况而言,更改静态 IP 后,只需断开网络并重新连接即可!也许值得一试。

相关内容