- 浏览: 863867 次
- 性别:
- 来自: 济南
文章分类
- 全部博客 (280)
- java相关 (29)
- linux系统 (55)
- ipsec (0)
- ssl (3)
- 信息安全 (13)
- web相关 (35)
- windows (9)
- c,c++ (14)
- log4j (3)
- hibernate (8)
- sqlite (1)
- 程序人生 (2)
- js (2)
- 生活点滴 (3)
- 网络相关 (14)
- 问题积累 (15)
- 数据库相关 (27)
- 软件测试 (2)
- PKI相关 (2)
- 程序设计 (7)
- 犄角旮旯 (0)
- 杂七杂八 (0)
- 硬件相关 (14)
- 防火墙 (2)
- 电子商务 (2)
- 多媒体相关 (1)
- 内存管理 (4)
- 面向对象 (1)
- csp (1)
- 驱动开发 (3)
- 移动开发 (2)
- openssl多线程实例 (1)
最新评论
-
xiaoyao3857:
博主很有探索精神嘛,学习了
Linux主机名Hostname详解 -
hiskyrisa:
言简意赅,好文章。
Flex是什么 -
layznet:
犯了类似错误。使用的是derby数据库。driverClass ...
java.sql.SQLException: No suitable driver -
idision:
你好,文章有一句createSubjectKeyId(keyT ...
bouncycastle 产生证书 -
zheng12tian:
代码有全的不?只贴一部分,,,,
在LOG4J中把日志写入远程数据库
1、 什么是主机名:
无论在局域网还是INTERNET上,每台主机都有一个IP地址,是为了区分此台主机和彼台主机,也就是说IP地址就是主机的门牌号。但IP地 址不方便记忆,所以又有了域名。域名只是在公网(INtERNET)中存在(以实验为目的的局域网域网实验性除外),每个域名都对应一个IP地址,但一个 IP地址可有对应多个域名。域名类型 linuxsir.org 这样的;
主机名是用于什么的呢?在一个局域网中,每台机器都有一个主机名,用于主机与主机之间的便于区分,就可以为每台机器设置主机名,以便于以容易记忆的方法来相互访问。比如我们在局域网中可以为根据每台机器的功用来为其命名。
主机名相关的配置文件:/etc/hosts;
2. 主机名配置文件;
主机名的配置文件大多是/etc/hosts ;
hosts - The static table lookup for host name(主机名查询静态表);
由于 Linux 发行版本众多,与主机名相关的配置文件有时也有所不同。现在我们说说常见版本的主机名配置文件;
2.1 主机名配置文件 /etc/hosts解说;
Fedora/Redhat 或以Fedora/Redhat为基础打包的发行版,主机名配置文件是 /etc/hosts
Debian或以Debian为基础打包的发行版,主机名配置文件是 /etc/hostname 和/etc/hosts
Slackware的主机名配置文件是 /etc/hosts
那我们来读读 /etc/hosts的内容,看这个文件是用来做什么的。hosts 配置文件是用来把主机名字映射到IP地址的方法,这种方法比较简单。但这种映射只是本地机的映射,也就是说每台机器都是独立的,所有的计算机都不能相互通过hostname来访问。
注:在debian 中还有一个/etc/hostname的文件,这个文件就是直接把本地主机名写进去就行了,但要和 /etc/hosts中的本地主机名保持一致。
/etc/hosts 的内容一般有如下类似内容:
127.0.0.1 localhost.localdomain localhost
192.168.1.195 debian.localdomain debian
注:
一般情况下hosts的内容关于主机名(hostname)的定义,每行为一个主机,每行由三部份组成,每个部份由空格隔开。其中#号开头的行做说明,不被系统解释。
第一部份:网络IP地址;
第二部份:主机名.域名,注意主机名和域名之间有个半角的点,比如 localhost.localdomain
第二部份:主机名(主机名别名) ,其实就是主机名;
当然每行也可以是两部份,就是主机IP地址和主机名;比如 192.168.1.195 debian
127.0.0.1 是回环地址,比如我们不想让局域网的其它机器看到我们测试的网络程序,就可以用回环地址来测试。
为什么需要定义域名呢?其实理解也简单,比如我们有三台主机,每台做不同的事,一台做MAIL服务器,一台做FTP服务器,一台做SMB服务器,所以我们就可以这样来设计hostname;
127.0.0.1 localhost.localdomain localhost
192.168.1.2 ftp.localdomain ftp
192.168.1.3 mail.localdomain mail
192.168.1.4 smb.localdomin smb
把这上面这个配置文件的内容分别写入每台机器的/etc/hosts内容中,这样这三台局域网的机器就可以通过hostname来访问了。
2.2 主机名(hostname)和域名(Domain)的区别;
主机名就机器本身的名字,域名是用来解析到IP的。但值得一说的是在局域网中,主机名也是可以解析到IP上的;比如我们前面所说举的例子;
2.3 局域网的机器,不能通过主机名互访的原因;
有的弟兄可能会说,我的hostname彼此不能互访,其实这也问题也简单,我们前面已经提到了一个简单的解决办法。就是要让局域网中的所有主机都有一个通用的,并且包含所有主机的/etc/hosts文件;
另一个是做解决办法是做局域网DNS服务器,如果您的主机特别少,就用前面所说的简单方法就行;如何做DNS服务器,我将在以后的文档中专题介 绍;不过我值得一提的是做任何服务器都是以效率优先的原则为基础。比如我们在局域网中两台机器,我们还有必要做DNS服务器吗?无论怎么解决,最终的都是 用最有效率的办法解决问题;我们不能说明DNS多高级。如果DNS是为外网服务的,那就另说了,不做也得做。对不对?
3、主机名修改工具 hostname;
其实主机名的修改也有专用工具,就是hostname ;我认为如果用这个工具来修改主机名,不如直接修改 /etc/hosts 来的方便;您可以查看 hosname ——help或 man hostname的帮助 。在这里我们只说简单的用法;
hostname 工具是用来显示和设置系统主机名,看下面的洋文;
hostname - show or set the system‘s host name
举例解说:
* 显示主机名:
[root@linuxsir01 ~]# hostname
linuxsir01
此主机的主机名是linuxsir01,不加参数是用来显示当前操作的主机的主机名;
* 临时设置主机名:
我们可以用 hostname 后接主机名,这样就可以设置当前操作的主机的主机名,比如我们想把主机名设置为linuxsir02;
[root@linuxsir01 ~]# hostname linuxsir02
[root@linuxsir01 ~]# hostname 注:显示主机名
linuxsir02
通过hostname 工具来设置主机名只是临时的,下次重启系统时,此主机名将不会存在;所以您想修改主机名,想一直有效的,还是用前面所说修改主机名配置文件 /etc/hosts;
* 显示主机IP:
显示当前主机名的IP,可以用-i参数;
[root@linuxsir01 ~]# hostname -i
192.168.1.3
4、本文未尽事宜;
有时我们在登入桌面时,会提示找不到hostname ,这时您要做的是修改/etc/hosts,为您的机器添加一个主机名;先用 ifconfig -a 来查看主机的IP地址,然后把你主机的IP地址,指定主机名。
怎样修改Linux的hostname
Linux操作系统的hostname是一个kernel变量,可以通过hostname命令来查看本机的hostname。也可以直接cat /proc/sys/kernel/hostname查看。
上面两种输出结果相同。
修改运行时Linux系统的hostname,即不需要重启系统
hostname命令可以设置系统的hostname
newname即要设置的新的hostname,运行后立即生效,但是在系统重启后会丢失所做的修改,如果要永久更改系统的hostname,就要修改相关的设置文件。
永久更改Linux的hostname
man hostname里有这么一句话,”The host name is usually set once at system startup in /etc/rc.d/rc.inet1 or /etc/init.d/boot (normally by reading the contents of a file which contains the host name, e.g. /etc/hostname).” RedHat里没有这个文件,而是由/etc/rc.d/rc.sysinit这个脚本负责设置系统的hostname,它读取 /etc/sysconfig/network这个文本文件,RedHat的hostname就是在这个文件里设置。
所以,如果要永久修改RedHat的hostname,就修改/etc/sysconfig/network文件,将里面的HOSTNAME这一行修改成HOSTNAME=NEWNAME,其中NEWNAME就是你要设置的hostname。
Debian发行版的hostname的配置文件是/etc/hostname。
修该配置文件后,重启系统就会读取配置文件设置新的hostname。
hostname与/etc/hosts的关系
很过人一提到更改hostname首先就想到修改/etc/hosts文件,认为hostname的配置文件就是/etc/hosts。其实不是的。
hosts文件的作用相当如DNS,提供IP地址到hostname的对应。早期的互联网计算机少,单机hosts文件里足够存放所有联网计算机。 不过随着互联网的发展,这就远远不够了。于是就出现了分布式的DNS系统。由DNS服务器来提供类似的IP地址到域名的对应。具体可以man hosts。
Linux系统在向DNS服务器发出域名解析请求之前会查询/etc/hosts文件,如果里面有相应的记录,就会使用hosts里面的记录。/etc/hosts文件通常里面包含这一条记录
hosts文件格式是一行一条记录,分别是IP地址 hostname aliases,三者用空白字符分隔,aliases可选。
127.0.0.1到localhost这一条建议不要修改,因为很多应用程序会用到这个,比如sendmail,修改之后这些程序可能就无法正常运行。
修改hostname后,如果想要在本机上用newhostname来访问,就必须在/etc/hosts文件里添加一条newhostname的记录。比如我的eth0的IP是192.168.1.61,我将hosts文件修改如下:
# cat /etc/hosts
127.0.0.1 localhost.localdomain localhost
192.168.1.61 blog.infernor.net blog
这样,我就可以通过blog或者blog.infernor.net来访问本机。
从上面这些来看,/etc/hosts于设置hostname是没直接关系的,仅仅当你要在本机上用新的hostname来访问自己的时候才会用到/etc/hosts文件。两者没有必然的联系。
RHEL还有个问题。
我开始在测试的时候,只修改/etc/hosts,里面添加 192.168.1.61 blog.infernor.net blog,而/etc/sysconfig/network维持原状,也就是里面的HOSTNAME=localhost.localdomain。我重 启系统后居然发现hostname给修改成了blog.infernor.net。这样看的话,倒真觉得/etc/hosts是hostname的配置文 件。后来终于在/etc/rc.d/rc.sysinit这个启动脚本里发现了问题的所在。
rc.sysinit文件里一开始就设置了hostname
. /etc/sysconfig/network
fi
if [ -z "$HOSTNAME" -o "$HOSTNAME" = "(none)" ]; then
HOSTNAME=localhost
fi
确实使用了/etc/sysconfig/network里的hostname值。不过后面还有一段关于设置hostname的
if [ "$HOSTNAME" = "localhost" -o "$HOSTNAME" = "localhost.localdomain" ]
; then
ipaddr=$(ip addr show to 0/0 scope global | awk '/[[:space:]]inet
/ { print gensub("/.*","","g",$2) }')
if [ -n "$ipaddr" ]; then
eval $(ipcalc -h $ipaddr 2>/dev/null)
hostname ${HOSTNAME}
fi
fi
脚本判断hostname是否为localhost或者localhost.localdomain,如果是的话,将会使用接口IP地址对应的 hostname来重新设置系统的hostname。问题就出在这里,我的/etc/sysconfig/network默认的hostname是 localhost.localdomain,eth0的IP是192.168.1.61,而/etc/hosts里有192.168.1.61的记录。 于是就用192.168.1.61这条记录来替换了hostname。
估计这也是很多人将/etc/hosts误以为是hostname的配置文件的原因。
hostname带选项查询
hostname的-s -f -i等等选项都用到了/etc/hosts或者DNS系统,跟我们讨论的hostname有点远了,也容易产生误会。具体可以man hostname查看。
发表评论
-
Linux c的多线程编程实例
2011-07-19 17:28 1969通过创建两个线程来实现对一个数的递加。或许这个实例没有实际运用 ... -
linux下进程的最大线程数、进程最大数、进程打开的文件数
2011-06-22 17:35 1944linux 系统中单个进程的 ... -
Linux中dos2unix的批量转换命令
2011-01-05 10:31 6973在Linux中将DOS 格式转换为Unix格式的文件可以使用d ... -
linux双网关双线路网络设置
2010-08-03 19:10 2008由于电信和网通之间互联互通 的问题,很多 ... -
syslog-ng学习心得之二
2010-07-06 08:58 2436在[url]http://coolerfeng.blog.51 ... -
syslog-ng学习心得之一
2010-07-06 08:58 2741转载一篇syslog-ng的文章的,本来是想打算自己写一篇 ... -
Linux用户进程是如何释放内存
2009-12-25 17:16 2056Linux进程使用内存的基本流程: 见图1 从 ... -
Linux内存使用详解
2009-12-25 16:56 2374一提到内存管理,我们 ... -
linux下查看内存使用情况
2009-12-25 14:56 1990在Linux下查看内存我们 ... -
Linux编程C++内存管理之内存分配详解
2009-12-21 21:33 1754程序员们经常编写内存 ... -
内核模块调试方法
2009-11-17 11:23 2579对 于任何一位内核代 ... -
Linux操作系统下以太网卡的安装及配置
2009-11-11 17:18 1676Linux操作系统以其 独有的开放性、稳定性、高 ... -
跟我一起写 Makefile(3)
2009-11-03 14:38 633“-s” “--silent” “--quiet” 在命 ... -
跟我一起写 Makefile(2)
2009-11-03 14:35 954书写命令 ———— 每 ... -
跟我一起写 Makefile(1)
2009-11-03 14:32 979陈皓 (CSDN) 概述 — ... -
CC与GCC的区别概括介绍
2009-11-03 14:29 1449从名字上看,老的unix系统 的CC程序叫做C Comp ... -
linux内核模块管理命令
2009-10-30 10:54 17081. lsmod 列出已经加载的内核模块 lsmo ... -
分区修复软件Testdisk 安装使用
2009-08-26 14:23 4912linux下超帅的分区表修复软件.以前用过n多的window ... -
Linux下的分区修复软件Testdisk
2009-08-26 10:40 1853好了,这个软件叫testdisk.很帅的。。 如果你是使 ... -
Linux分区数据恢复
2009-08-26 10:18 1443公司的一台redhat机器启动不了了,是由于多次非正常关机造成 ...
相关推荐
在Linux操作系统中,主机...总的来说,Linux修改主机名涉及的命令主要是`hostname`和`hostnamectl`,以及可能的手动编辑`/etc/hostname`文件。理解这些操作可以帮助系统管理员更好地管理和维护Linux环境中的主机标识。
- `HOSTNAME`: 服务器的主机名。 - `GATEWAY`: 网络的默认网关IP。 - `GATEWAYDEV`: 网关设备的名称,如eth0。 4. `/etc/hosts` 文件: 这是一个静态的IP到主机名映射文件,用于在没有DNS服务的情况下解析主机...
修改或添加`HOSTNAME=新主机名`(例如:`HOSTNAME=mynewhostname`)。 3. 运行`hostname 新主机名`命令确认修改结果。 4. 无需重启即可生效。 #### 三、配置启动模式 - **目标**:使Red Hat Linux启动至文字...
- `/etc/HOSTNAME`:定义主机名。 - `/etc/NETWORKING`:确认网络是否启用。 - `/etc/host.conf`:控制DNS解析策略。 - `/etc/hosts`:定义IP地址和主机名的映射。 - `/etc/hosts.allow`和`/etc/hosts.deny`:...
### Linux dig 命令详解:深入理解 DNS 查询利器 #### 概述 在 Linux 系统中,`dig`(Domain Information Groper)是一个功能强大的工具,用于查询域名系统(DNS)。它允许用户深入了解 DNS 的工作原理,帮助诊断...
1.修改主机名 vi /etc/sysconfig/network NETWORKING=yes HOSTNAME=server1.itcast.cn 2.修改ip地址 vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 TYPE=Ethernet ONBOOT=yes #是否开机启用 BOOTPROTO=...
- **`hostname`**:指定 Internet 主机名。 - **`hostaddr`**:指定 IPv4 地址。 - **`service`**:指定服务名。 - **`port`**:指定端口号。 例如,`lsof -i tcp @1.2.3.4` 显示所有到 IP 地址 1.2.3.4 的 TCP...
- `hostname` 指定主机名。 - `hostaddr` 指定 IP 地址。 - `service` 指定服务名称。 - `port` 指定端口号。 例如,要查找所有使用 IPv4 协议的 TCP 连接,可以使用命令 `lsof -i4TCP`。 #### 七、总结 `lsof...
通过命令`hostname zhangsan`可以临时修改主机名为`zhangsan`,但需要注意的是这个修改仅在当前会话有效。若要永久修改主机名,需要编辑`/etc/hostname`文件。 #### 2. 更改工作目录与文件查找 - 使用命令`cd /boot...
* hostname:用于设置计算机的主机名 五、网卡配置文件 网卡配置文件是 Linux 操作系统中用于存储网卡配置信息的文件。常见的网卡配置文件包括: * /etc/sysconfig/network:用于存储计算机的网络配置信息 * /etc...
在"Hostname"字段中输入你想要的主机名。 10. **时区设置** 选择时区为"Asia/Shanghai",取消"System clock uses UTC"的勾选,确保系统时间与本地时间一致。 11. **设置root密码** 设置root用户的密码,这是...
配置主机名可以使用`hostnamectl`命令,例如`hostnamectl set-hostname mycomputer.mydomain.com`。 总结来说,Linux主机网络接入配置涵盖了多个方面,包括但不限于网络设备识别、IP地址分配、路由设置、DNS配置...
- `/etc/HOSTNAME`:设置主机名。 - `/etc/NETWORKING`:表明网络是否启用。 - `/etc/host.conf`:定义主机名查询的策略。 - `/etc/hosts`:IP地址与主机名的映射。 - 其他如`/etc/resolv.conf`用于DNS设置,`/...
21. **ssh**:安全外壳协议,用于远程登录和管理服务器,如`ssh user@hostname`连接到远程主机。 这些只是Linux命令行中的冰山一角,实际上,Linux提供了丰富的命令集来处理各种任务。熟练掌握这些命令,将使你成为...
最后,`CONFIG_DEFAULT_HOSTNAME`用于设置默认的主机名,用户可以在系统运行时通过系统调用`sethostname()`进行更改。至于`Support for paging`,这是指内存管理和交换机制,它是现代操作系统中不可或缺的一部分,...
这里`+norec`表示不进行递归查询,`@F.ROOT-SERVERS.NET`是指定了一个根服务器地址,`HOSTNAME.BIND`和`CHAOS TXT`则用于获取服务器的主机名等信息。 #### 查看BIND版本号 要查看BIND(Berkeley Internet Name ...