linux中如何使/etc/hosts文件中的IP地址自动更新为当前系统的IP

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux中如何使/etc/hosts文件中的IP地址自动更新为当前系统的IP相关的知识,希望对你有一定的参考价值。

linux系统中我的网络使用的是DHCP自动分配IP地址, 如何使/etc/hosts文件中主机名对应的IP地址自动更新为当前系统的IP,如果每次都自己来改太麻烦了?
就是说我的hosts文件开始是这样的
127.0.0.1 localhost
127.0.1.1 ubuntu-desktop
我每次开机IP地址都不一样,我怎么把这里的127.0.1.1换成用ifconfig命令看到的IP地址,因为别人要用http://ubuntu-desktop:8080/download/来取rmi时的存根类文件
这个文件不会自己把127.0.1.1改成我的IP啊?

1.首先在Linux系统下设置静态的IP地址

vim /etc/network/interfaces #编辑网网卡配置文件
auto lo
iface lo inet loopback
auto eth0 #开机自动连接网络
iface eth0 inet static #static表示使用固定ip,dhcp表述使用动态ip
address 192.168.21.168 #设置ip地址
netmask 255.255.255.0 #设置子网掩码
gateway 192.168.21.2 #设置网关
ctrl+o #保存配置
ctrl+x #退出

2.在/etc/profile 加入脚本

vim /etc/profilegrep -v "hostname(指定的域名)" /etc/hosts > ~/hosts_temp 
cat ~/hosts_temp > /etc/hosts 
LC_ALL=C ifconfig | grep \'inet addr:\'| grep -v \'127.0.0.1\' |cut -d: -f2 | awk \' print $1\' >> /etc/hosts

3.重启网络使设置生效

/etc/init.d/networking restart #重启网络
参考技术A 在/etc/network/interfaces中添加如下内容
auto eth0
iface eth0 inet dhcp

eth0改成你的网卡名字,默认是eth0
参考技术B 用开机脚本写入就行了~

另外,获取ip地址的方法因不同linux的版本而不同,,

建议最好先一个静态ip地址,,然后在hosts里面加入

你设的本机地址 hostname(即你指定的域名)

这样操作起来比较简单,,

如果非要你那样的话先备份你的hosts文件:

在/etc/profile 加入

grep -v "hostname(即你指定的域名)" /etc/hosts > ~/hosts_temp
cat ~/hosts_temp > /etc/hosts

LC_ALL=C ifconfig | grep 'inet addr:'| grep -v '127.0.0.1' |cut -d: -f2 | awk ' print $1' >> /etc/hosts

应该就这样。。(我没试过,临时考虑的)没实践,有错误的话具体自己修改下,,

参考资料:~~

本回答被提问者采纳
参考技术C ???
什么意思啊,如果填写dhcp你的不会自动分配么?
如果是自动分配那么你自己填写的不会冲突么?
奇怪的问题

如何使/etc/profile文件修改后立即生效

方法1: 让/etc/profile文件修改后立即生效 ,可以使用如下命令: # . /etc/profile 注意: . 和 /etc/profile 有空格 方法2: 让/etc/profile文件修改后立即生效 ,可以使用如下命令: # source /etc/profile 参考技术A source /etc/profile 这两个文件一般是linux系统中存在,是在开机加载系统时或用的登录时执行的一个配置文件,其主要功能类似初始化一些环境变量,定义一些自动执行的功能。如果对其进行修改后想让其生效的方法有

以上是关于linux中如何使/etc/hosts文件中的IP地址自动更新为当前系统的IP的主要内容,如果未能解决你的问题,请参考以下文章

如何使/etc/profile文件修改后立即生效

请教如何修改Linux的/etc/fstab使U盘自己挂载?

如何使/etc/profile中修改的配置立刻生效

Linux中/etc/named.conf配置文件如何设置

Linux 中 vi /etc/sysctl.conf 如何编辑

解决`source /etc/profile`报错问题