更改Linuxnetworking设置

我正在开发一些运行在CentOS 5.xx上的软件。 我们不允许客户login到Linux,一切都是从我们开发的Windows应用程序完成的。

所以我们为用户build立一个前端来configurationnetworking设置:静态/ DHCP,IP地址,网关,DNS,主机名。

现在,我让用户在Windows应用程序中input信息,然后将其写入Linux服务器,如下所示:

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

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

另外,我几乎以同样的方式读取networkingconfiguration,但如果使用DHCP,则会丢失som信息,例如IP地址。 我知道我可以从命令行(ifconfig)得到一些信息,但我没有得到例如主机名,网关和DNS。 有没有一个命令行工具,将显示此?

你正在写正确的信息,但是你需要去命令行阅读你所说的信息。

IP从ip addr show <interface>ip addr show all并parsing。 ifconfig是这个稍旧的命令。

默认网关也是从ip route show中获取的(route show或netstat -rn以不同的格式给出相同的信息 – ip是用于configuration的新命令)

DNS服务器几乎总是/etc/resolv.conf ,所以阅读应该没问题。 /etc/nsswitch.conf是configuration的地方…默认情况下, /etc/hosts将覆盖您的DNS服务器设置。

主机名是通过运行hostname名获得的

可能是Webmin。 虽然它是一个基于networking的应用程序,但我不确定它将适用于所有networkingconfiguration更改。

不确定我是否遵循问题的主要部分,但最后一部分相当简单。 没有一个程序显示你正在寻找的所有东西,但是hostname显示当前的主机名, netstat -r会显示networking路由数据和默认网关(如果已经设置的话)。 dig会显示当前使用的域名服务器。 特别:

 dig `hostname` | grep SERVER 

应该返回类似的东西

 ;; SERVER: 68.94.156.1#53(68.94.156.1)