1

我需要允许外部客户端更改运行程序的 Linux 机器的 IP(C++)。我已经知道如何列出所有本地接口和分配给它们的当前 IP。我也知道如何以编程方式更改上述 IP。

我需要知道的是如何使这种更改永久化,因此,如果机器重新启动,它会保持相同的网络配置。最好的方法是什么?手动解析 /etc/network/interfaces?调用一些linux命令?

编辑:我正在使用 Debian。

谢谢!

4

3 回答 3

3

是的,操纵/etc/network/interfaces是实现这一目标的方法(只需存储备份以防万一出现问题)。

另外,如果接口是由网络管理器管理的(服务器很少出现这种情况,但发生在桌面上),我认为您可以通过 dbus 调用来操作它。

顺便说一句,你应该提到分发,而不是语言——如果你没有提到文件,就不可能猜到 ;-)

于 2012-10-10T08:47:49.283 回答
1

要使更改永久生效,您必须在/etc/network/interfacesDNS 服务器 (resolv.conf) 中写入网络配置。

http://wiki.debian.org/NetworkConfiguration

如果您不想每次都解析接口,可以将 IP 和网络保存在配置文件中以恢复它。然后你只需要重写“/etc/network/interfaces”。

更改网络接口配置后,您必须重新启动网络堆栈(特定于发行版)。

重启接口auto

$ /etc/init.d/networking restart

重启其他接口:

$ ifup [iface]

于 2012-10-10T09:23:33.657 回答
0

您可以在脚本中调用ifconfig和路由commands,或者更好,您可以编辑您提到的文件,具体取决于您的 Linux 发行版。

于 2012-10-10T08:47:54.840 回答