更改 Linux 网络设置

更改 Linux 网络设置

我正在开发一些在 Centos 5.xx 安装上运行的软件。我们的客户不允许登录 Linux,一切都由我们开发的 Windows 应用程序完成。

因此,我们为用户构建了一个前端来配置网络设置:静态/DHCP、IP 地址、网关、DNS、主机名。

现在我让用户在 Windows 应用程序中输入信息,然后像这样在 Linux 服务器上写入:

  • 写入 /etc/resolv.conf:名称服务器
  • 写入 /etc/sysconfig/network:网关和主机名
  • 写入 /etc/sysconfig/network-scripts/ifcfg-eth0:Ipaddress、Netmask、Bootproto(DHCP 或 Static)我还(过了一段时间)发现我无法发送邮件,除非我在 /etc/hosts 中写入:127.0.0.1 Hostname

所有这些似乎都有效,但是有没有更好/更简单的方法来做到这一点?

另外,我以几乎相同的方式读取网络配置,但如果我使用 DHCP,我会错过一些信息,例如 IP 地址。我知道我可以从命令行 (ifconfig) 获取一些信息,但我无法获取主机名、网关和 DNS 等信息。是否有可以显示这些信息的命令行工具?

答案1

您在编写信息时做得正确,但是您需要像您说的那样转到命令行来读取信息。

IP 是从ip addr show <interface>或获取的ip addr show all,并对其进行解析。ifconfig 是用于此目的的稍旧的命令。

默认网关ip route show也是从这里获取的(route show 或 netstat -rn 会以不同的格式提供相同的信息 - ip 是用于配置此项的较新的命令)

DNS 服务器实际上总是/etc/resolv.conf,因此读取它应该没问题。/etc/nsswitch.conf是配置的地方...默认情况下/etc/hosts将覆盖您的 DNS 服务器设置。

通过运行获取主机名hostname

答案2

可能是 Webmin。虽然它是一款基于 Web 的应用程序,但我不确定它是否能很好地适应所有网络配置更改。

答案3

我不确定我是否理解了你问题的主要部分,但最后一部分相当简单。没有一个程序可以显示你要查找的所有内容,但是,hostname显示当前主机名,netstat -r将显示网络路由数据和默认网关(如果已设置)。 dig将显示当前使用的域名服务器。具体来说:

dig `hostname` | grep SERVER

应该返回类似

;; SERVER: 68.94.156.1#53(68.94.156.1)

相关内容