如何给Ubuntu网站绑定多个IP,怎么给Ubuntu服务器ip绑定域名设置多IP

ubuntu 设置IP,设置网关方法分享
本文系转载,介绍Ubuntu如何设置IP和网络来连接网络,如果主机操作系统就是Ubuntu,请直接参照下文进行设置
如果是在虚拟机中使用Ubuntu,那么设置之前请先参照我的上一遍文章 中的网络设置部分,先设置好主机的网络,然后配置虚拟机Ubuntu的IP和网关 如果主机操作系统就是Ubuntu,请直接参照下文进行设置 内容如下: 1. 检验是否可以连通,就使用ping命令ping 网关 开始的时候总是现实unreachable 2. 设置IP sudo ifconfig eth0 133.133.133.190 netmask 255.255.255.0 这样就算设置好了网卡eth0的IP地址和子网掩码 3. 设置网关 sudo route add default gw 133.133.133.40 4. ping 网关就可以ping通了 5. 设置DNS 修改/etc/resolv.conf,在其中加入 nameserver DNS的地址1 nameserver DNS的地址2 完成。 这样设置之后,下次开机时候似乎IP又会发生变化。 永久修改Ubuntu LINUX IP 一、使用命令设置ubuntu的ip地址 1. 设置IP sudo ifconfig eth0 203.171.239.155 netmask 255.255.255.224 这样就算设置好了网卡eth0的IP地址和子网掩码 2. 设置网关 sudo route add default gw 203.171.239.129 3. 设置DNS 修改/etc/resolv.conf,在其中加入 nameserver DNS的地址1 nameserver DNS的地址2 完成。 不过,这样设置之后,下次开机时候似乎IP又不存在了。 二、直接修改系统配置文件 ubuntu的网络配置文件是:/etc/network/interfaces 打开后里面可设置DHCP或手动设置静态ip。前面auto eth0,让网卡开机自动挂载. 1. 以DHCP方式配置网卡编辑文件,切换到/etc/network/interfaces: 指定如下命令,sudo vi /etc/network/interfaces 并用下面的行来替换有关eth0的行: # The primary network interface - use DHCP to find our address auto eth0 iface eth0 inet dhcp 用下面的命令使网络设置生效: sudo /etc/init.d/networking restart 也可以在命令行下直接输入下面的命令来获取地址 sudo dhclient eth0 2. 为网卡配置静态IP地址编辑文件 /etc/network/interfaces: sudo vi /etc/network/interfaces 并用下面的行来替换有关eth0的行: # The primary network interface auto eth0 iface eth0 inet static address 203.171.239.155 gateway 203.171.239.129 netmask 255.255.255.224 #network 203.171.239.128 #broadcast 192.168.3.159 将上面的ip地址等信息换成你自己就可以了.用下面的命令使网络设置生效: sudo /etc/init.d/networking restart 3. 设定第二个IP地址(虚拟IP地址) 编辑文件 /etc/network/interfaces: sudo vi /etc/network/interfaces 在该文件中添加如下的行: auto eth0:1 iface eth0:1 inet static address 192.168.1.155 netmask 255.255.255.0 work x.x.x.x broadcast x.x.x.x gateway x.x.x.x 根据你的情况填上所有诸如address,netmask,network,broadcast和gateways等信息. 用下面的命令使网络设置生效: sudo /etc/init.d/networking restart 4. 设置主机名称(hostname) 使用下面的命令来查看当前主机的主机名称: sudo /bin/hostname 使用下面的命令来设置当前主机的主机名称: sudo /bin/hostname newname 系统启动时,它会从/etc/hostname来读取主机的名称. 5. 配置DNS 首先,你可以在/etc/hosts中加入一些主机名称和这些主机名称对应的IP地址,这是简单使用本机的静态查询. 要访问DNS 服务器来进行查询,需要设置/etc/resolv.conf文件. 假设DNS服务器的IP地址是203.171.230.6 resolv.conf文件的内容应为:
nameserver 203.171.230.6 重启网络:/etc/init.d/networking restart PS:根据上文方式,在虚拟机VMware中安装Ubuntu,虚拟机网络连接方式为Net,设置静态IP连接网络,我已经测试通过,直接修改resolv.con和interfaces的方式可以保证开机后设置的IP依然存在。 设置后不能连接网络,欢迎留言,共同讨论,呵呵!Ubuntu Linux下设置IP的配置命令
Ubuntu Linux下设置IP的配置命令
今天装了Ubuntu,但是发现不能上网,开始排查问题:
1、首先确定网络连接是否正确,所用的网线是否可以正常工作
2、查看网卡是否能正常工作,检测的方法如下:
a、ping 127.0.0.1
b、ping 静态网关地址
c、ping 主机名(hostname就可以看到主机名)
3、看网卡地址是否配置正确(ifconfig命令看本地主机的网卡信息,和DNS、Default getway、Sever地址进行比对,看网卡地址是否正确)
我的设备问题出在第三个方面,然后修改网卡的配置信息,使用命令如下:(当然利用图形窗口完全可以,我这里只是为了学习Linux而用的)
一、使用命令设置ubuntu的ip地址
1.修改配置文件blacklist.conf禁用IPV6:
sudo vi /etc/modprobe.d/blacklist.conf
2.在文档最后添加 blacklist ipv6,然后查看修改结果:
cat /etc/modprobe.d/blacklist.conf
3.设置IP(设置网卡eth0的IP地址和子网掩码)
sudo ifconfig eth0 192.168.2.1 netmask 255.255.255.0
4.设置网关
sudo route add default gw 192.168.2.254
5.设置DNS 修改/etc/resolv.conf,在其中加入nameserver DNS的地址1 和 nameserver DNS的地址2 完成。
6.重启网络服务(若不行,请重启ubuntu:sudo reboot):
sudo /etc/init.d/networking restart
7.查看当前IP:
二、直接修改Ubuntu 配置文件
网络Ubuntu Linux配置文件是:/etc/network/interfaces
打开后里面可设置DHCP或手动设置静态ip。前面auto eth0,让网卡开机自动挂载。
1. 以DHCP方式配置网卡
编辑文件/etc/network/interfaces:
sudo vi /etc/network/interfaces
并用下面的行来替换有关eth0的行:
# The primary network interface - use DHCP to find our address
iface eth0 inet dhcp
用下面的命令使网络设置生效:
sudo /etc/init.d/networking restart
也可以在命令行下直接输入下面的命令来获取地址
sudo dhclient eth0
2. 为网卡配置静态IP地址
编辑文件/etc/network/interfaces:
sudo vi /etc/network/interfaces
并用下面的行来替换有关eth0的行:
# The primary network interface
iface eth0 inet static
address 192.168.2.1
gateway 192.168.2.254
netmask 255.255.255.0
#network 192.168.2.0
#broadcast 192.168.2.255
将上面的ip地址等信息换成你自己就可以了.用下面的命令使网络设置生效:
sudo /etc/init.d/networking restart
3. 设定第二个IP地址(虚拟IP地址)
编辑文件/etc/network/interfaces:
sudo vi /etc/network/interfaces
在该文件中添加如下的行:
auto eth0:1
iface eth0:1 inet static
address x.x.x.x
netmask x.x.x.x
network x.x.x.x
broadcast x.x.x.x
gateway x.x.x.x
根据你的情况填上所有诸如address,netmask,network,broadcast和gateways等信息:
用下面的命令使网络设置生效:
sudo /etc/init.d/networking restart
4. 设置主机名称(hostname)
使用下面的命令来查看当前主机的主机名称:
sudo /bin/hostname
使用下面的命令来设置当前主机的主机名称:
sudo /bin/hostname newname
系统启动时,它会从/etc/hostname来读取主机的名称。
5. Ubuntu Linux配置DNS
首先,你可以在/etc/hosts中加入一些主机名称和这些主机名称对应的IP地址,这是简单使用本机的静态查询。要访问DNS 服务器来进行查询,需要设置/etc/resolv.conf文件,假设DNS服务器的IP地址是192.168.2.2, 那么/etc/resolv.conf文件的内容应为:
nameserver 192.168.2.2
6.手动重启网络服务:
sudo /etc/init.d/networking restart
当然ubuntu是带图形界面的,所以上面关于一些地址的设置也可以像一样通过设置来完成,在窗口上方System&&Preference下面找相应的配置选项;另外用命令行修改配置文件用到vi命令时如果不熟悉命令的操作修改起来会很不方便,所以可以选择采用gedit来编辑配置文件。Posted by 海外IDC服务
Posted on 08-10-2012
如何测试VPS服务器带宽
我们经常买了vps或服务器,机房说给了10Mbps带宽,给了100Mbps带宽,我们怎么知道他是不是有水分呢? linux下面,有很简单的测试方法,那就是用
wget 下载,一般多下载几个机房的文件观察最大速度,如果能有1.1MB/秒,那么就是没有任何水分的10Mbps独享带宽,能跑满。 如果能有11MB/秒 的下载速度,那就就是没有任何水分的100Mbps独享带宽,能跑满。
这里的10Mbps单位是bit,是和我们电信 adsl 用单位一样。比如我们2M的电信adsl,下载最大就是 2M / 8=256KB每秒
wget下载演示10M带宽效果:
[root@www.idc.net]# wget http://www./downloads/test100.zip
&#-09 12:25:43–
http://www./downloads/test100.zip
Resolving www.&#.118.51
Connecting to www.|208.43.118.51|:80… connected.
HTTP request sent, awaiting response&# OK
(100M) [application/zip]
Saving to: `test100.zip’
26% [=======================&
] 28,037,373
[root@www.idc.net]# wget /downloads/test100.zip
&#-09 12:26:51–
/downloads/test100.zip
Resolving &#.118.51, :::1
Connecting to |66.228.118.51|:80… connected.
HTTP request sent, awaiting response&# OK
(100M) [application/zip]
Saving to: `test100.zip.1′
] 3,634,480
[root@www.idc.net]# wget http://184.105.207.135/test.zip
&#-09 12:27:01–
http://184.105.207.135/test.zip
Connecting to 184.105.207.135:80… connected.
HTTP request sent, awaiting response&# OK
(100M) [application/zip]
Saving to: `test.zip’
] 3,246,146
[root@www.idc.net]# wget http://66.96.192.92/bigtest.tgz
&#-09 12:27:22–
http://66.96.192.92/bigtest.tgz
Connecting to 66.96.192.92:80… connected.
HTTP request sent, awaiting response&# OK
(124M) [application/x-tar]
Saving to: `bigtest.tgz’
] 5,730,344
eta 1m 55s
100M带宽效果:
[root@www.idc.net]# wget http://184.105.207.135/test.zip
&#-09 12:32:29–
http://184.105.207.135/test.zip
Connecting to 184.105.207.135:80… connected.
HTTP request sent, awaiting response&# OK
(100M) [application/zip]
Saving to: `test.zip’
47% [==========================================&
] 49,570,562
文章有云网整理发布
Posted by 海外IDC服务
Posted on 08-10-2012
怎样查看Nginx的参数?
如何查看Nginx编译参数?怎样查看Nginx的参数?方法很简单,进入nginx的安装目录的sbin目录里面, ./nginx -V 即可查看nginx编译参数。当然,用绝对路径更好。范例如下:
/usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.1.14
built by gcc 4.1.2
(Red Hat 4.1.2-51)
configure arguments: –user=apache –group=apache –prefix=/usr/local/nginx –add-module=/backup/www.idc.net/ngx_cache_purge-1.3 –add-module=/backup/www.idc.net/substitutions4nginx-read-only
安装nginx的编译参数:
http://wiki.nginx.org/InstallOptions
文章由云网整理发布
Posted by 海外IDC服务
Posted on 07-10-2012
修改linux vps的时间和时区
美国的vps大多都是国外的时间,让我们的程序总是不适应。那么如何调整linux的时间为北京时间?修改linux vps的时间和时区,有什么办法?
首先,需要ssh登录vps或服务器:
date 可以查看时间和时区。然后:
rm -rf /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
再date看看,是不是时间正确了。如果已经正确,那么OK搞定。
SSH操作范例:
root@www.idc.net~]# date
6 02:01:52 UTC 2010
[root@www.idc.net~]# rm -rf /etc/localtime
[root@www.idc.net~]# ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
[root@www.idc.net~]# date
6 10:02:32 CST 2010
如果还是有些不对,那么需要用命令 ntpdate stdtime.sinica.edu.tw 来校准时间。
ntpdate stdtime.sinica.edu.tw 如果提示无此命令,那么需要先安装 ntpdate
centos 安装方法: yum -y install ntpdate ntp
Ubuntu安装方法: sudo apt-get install -y ntpdate ntp
校准后,如果时间还是不对,那么就是其他的问题了。如果是linux vps,那么可能就是母服务器的时间不对,没有办法了。
文章由云网整理发布
Posted by 海外IDC服务
Posted on 06-10-2012
给Nginx目录设置密码
如何给Nginx目录设置密码?怎样给nginx访问目录需要密码?访问这个目录下面的所有文件,都会弹出一个要输入密码的认证框,密码不对则无法访问。这对于保护后台目录很有作用。
auth_basic ‘www.idc.net password:’;
auth_basic_user_file /usr/local/nginx/conf/
首先需要将上面2行加入到nginx的配置文件的locaton里面
然后用htpasswd 命令设置密码:
htpasswd -bdc /usr/local/nginx/conf/htpasswd idc.net www.idc.net
其中参数c表示如果密码文件不存在,这新创建文件
文章由云网整理发布
Posted by 海外IDC服务
Posted on 05-10-2012
给Ubuntu服务器设置多IP
如何给Ubuntu网站绑定多个IP,怎么给Ubuntu服务器设置多IP? Ubuntu其实只需要设置一个文件 /etc/network/interfaces 即可。
多个不同IP段的 /etc/network/interfaces 配置文件的范例如下:
# The loopback network interface
iface lo inet loopback
# The primary network interface
iface eth0 inet static
address 8.8.8.2
netmask 255.255.255.248
gateway 8.8.8.1
要注意这里,多个不同IP段,只要1个gateway配置即可,其他IP不需要配置gateway
auto eth0:0
iface eth0:0 inet static
address 8.8.8.3
netmask 255.255.255.248
auto eth0:1
iface eth0:1 inet static
address 8.8.8.4
netmask 255.255.255.248
auto eth0:2
iface eth0:2 inet static
address 8.8.8.5
netmask 255.255.255.248
auto eth0:3
iface eth0:3 inet static
address 8.8.8.6
netmask 255.255.255.248
auto eth0:4
iface eth0:4 inet static
address 6.6.6.130
注意这里,虽然这是不同的IP段,但是不需要配置gateway,只需要配置netmask即可
netmask 255.255.255.224
auto eth0:5
iface eth0:5 inet static
address 6.6.6.131
netmask 255.255.255.224
更多ip也类似配置即可。
配置文件完成后,用命令
/etc/init.d/networking restart 重启网络,不需要reboot重启服务器。 /etc/init.d/networking restart 重启网络的时候,如果你的配置文件有错误,那么他会提示你。比如IP重复了,书写错误了,等等。在执行此命令前,一定要小心检查interfaces配置文件,不然可能就把网络弄瘫痪,那时候就需要机房的工作人员去处理,十分麻烦。
/etc/init.d/networking restart错误分析案例:
root@www.idc.net:/etc/network# /etc/init.d/networking restart
* Reconfiguring network interfaces…
/etc/network/interfaces:165: interface eth0:28 declared allow-auto twice
ifdown: couldn’t read interfaces file “/etc/network/interfaces”
/etc/network/interfaces:165: interface eth0:28 declared allow-auto twice
ifup: couldn’t read interfaces file “/etc/network/interfaces”
…fail!
说明eth0:28有重复,解决办法:vi interfaces找到eth0:28,删除掉重复的
root@www.idc.net:/etc/network# /etc/init.d/networking restart
* Reconfiguring network interfaces…
/etc/network/interfaces:166: duplicate interface
ifdown: couldn’t read interfaces file “/etc/network/interfaces”
/etc/network/interfaces:166: duplicate interface
ifup: couldn’t read interfaces file “/etc/network/interfaces”
…fail!
说明166行有重复,解决办法:vi interfaces找到166行(set number),删除掉重复的
root@www.idc.net:/etc/network# /etc/init.d/networking restart
* Reconfiguring network interfaces…
/etc/network/interfaces:162: duplicate interface
ifdown: couldn’t read interfaces file “/etc/network/interfaces”
/etc/network/interfaces:162: duplicate interface
ifup: couldn’t read interfaces file “/etc/network/interfaces”
说明162行有重复,解决办法:vi interfaces找到166行(set number),删除掉重复的
文章由云网整理发布
Posted by 海外IDC服务
Posted on 04-10-2012
如何关闭Nginx日志
有时候,nginx日志十分吓人,我们有个客户受到攻击,nginx出现too many connections错误,日志5分钟就写入了10GB,硬盘很快就会满了。 那么,如何关闭Nginx日志?怎么取消/停止Nginx日志? 可以修改nginx.conf :
access_log /dev/
error_log /dev/
这样全部把他们丢到系统的黑洞里了。不用每时每刻都往系统磁盘疯狂的读写日志了 还延长硬盘的寿命。
修改完,重启Nginx( kill -HUP `cat logs/nginx.pid` )即可。
文章有云网整理发布
Posted by 海外IDC服务
Posted on 02-10-2012
为vps添加swap分区
如何利用硬盘空间为linux服务器或xen的vps添加swap分区?请仔细看下面的命令以及结果,这是在centos系统上执行的操作:
[ opt]# free
-/+ buffers/cache:
[ opt]# df -h
Filesystem
Used Avail Use% Mounted on
0% /dev/shm
[ opt]# ls -al
total 6056
drwxr-xr-x
4 root root
4096 Feb 28 22:38 .
drwxr-xr-x 22 root root
4096 Feb 28 22:39 ..
drwxr-xr-x
7 root root
4096 Feb 28 21:31 rightscale
drwxr-xr-x
3 root root
-rw-r–r–
1 root root 6172672 Feb 28 22:40 swapfile
[ opt]# /sbin/swapoff swapfile
(如果已经有swap文件,先要删除他)
[ opt]# free
-/+ buffers/cache:
[ opt]# dd if=/dev/zero of=/opt/swapfile bs=1M count=512
512+0 records in
512+0 records out
bytes (537 MB) copied, 3.98724 seconds, 135 MB/s
[ opt]# ls -al
total 524820
drwxr-xr-x
4 root root
4096 Feb 28 22:38 .
drwxr-xr-x 22 root root
4096 Feb 28 22:39 ..
-rw-r–r–
1 root root
Feb 28 22:50 swapfile
[ opt]# mkswap swapfile
Setting up swapspace version 1, size = 536866 kB
[ opt]# swapon swapfile
[ opt]# swapon -s
/opt/swapfile
[ opt]# free
-/+ buffers/cache:
[ opt]# df -h
Filesystem
Used Avail Use% Mounted on
0% /dev/shm
下面说一下Xen VPS添加swap交换分区的方法。
1、进入一个目录
2、获取725M的文件块:
dd if=/dev/zero of=/opt/swapfile bs=1M count=725
3、创建swap文件
mkswap swapfile
4、激活swap文件
swapon swapfile
5、查看一下swap是否正确
6、加入fstab文件让系统引导时自动启动
echo “/opt/swapfile swap swap defaults 0 0″ && /etc/fstab
文章由云网整理发布
Posted by 海外IDC服务
Posted on 01-10-2012
设置SSH代理帐号安全性
如何设置SSH代理帐号安全性,怎样不允许ssh帐号登录shell?增加一个linux用户,并赋予该用户一个nologin的shell权限。useradd username -s /sbin/nologin设置该用户密码。passwd usernameusername 即时你要设定的用户名,可自行修改。
一个ssh连接,在sshd(openssh)下,要开两个进程,大概好几m的内存。
/sbin/nologin添加失败,问题出在哪里?
问题在/etc/shells,这个文件中,有时候并没有添加/sbin/nologin。所以即便你给一个帐号赋予/sbin/nologin,也不能生效。
解决的办法,就是在/etc/shells添加一行/sbin/nologin,然后再添加帐号即可。命令如下:
cat && /etc/shells && END
/sbin/nologin
useradd username -s /sbin/nologin
echo username:password | chpasswdusername就是要你要添加的用户名,password就是要设置的密码。
chpasswd 是linux下的一个批量修改帐号密码的命令。| 符号是管道符号。
第二句的意思就是,将echo username:password输出的内容通过管道 | 传递给chpasswd命令执行。
如果你要建立一个脚本,很方便的建立这种ssh帐号的话,也很简单。通过ssh终端root权限连接到vps后输入:
vim ssh.sh#编辑一个sh文件
打开后,按 i 键进入编辑模式。
然后将下面内容复制进去(终端内点下鼠标右键即可复制)
#!/bin/bash
cat && /etc/shells && END
/sbin/nologin
useradd $1 -s /sbin/nologin
echo $1:$2 | chpasswd按 : ,输入wq(按:是接受指令,wq表示写入文件并退出编辑)
这样,输入下面命令就可以方便建立ssh代理帐号:
bash ssh.sh username passwordusername和password就是你自己要设置的帐号和对应的密码,可以替换。
上面脚本中$1,就是对应的username,$2,就是对应的password
$0哪里去了?ssh.sh即是也。
$1,$2,$0,是bash脚本中约定的参数标志,分别表示第几个参数。
如更改已经存在的用户的shell:
usermod -s /sbin/nologin
为SSH用户指定最小权限!保证系统安全!
添加用户:useradd -s /bin/false username,将用户的shell设置成/bin/false。这样用户就无法与系统进行交互。
设置密码:passwd username
设置完成之后查看下权限确认下
linux下用户,用户组和用户权限的查看
查看用户组最简单的办法是:
#cat /etc/passwd
文章有云网整理发布
Posted by 海外IDC服务
Posted on 30-09-2012
如何升级nginx最新版
如何升级nginx最新版?如何不停网站升级nginx?Nginx编译后就一个小文件,不带动态库,升级也可以无缝升级,并不影响访问,
平滑/无缝/网站不中断访问/不停止nginx升级nginx的方法:
[root@www.idc.net]# /usr/local/nginx/sbin/nginx -V #查看版本
nginx version: nginx/0.8.6
built by gcc 4.1.2
(Red Hat 4.1.2-44)
configure arguments: –user=www –group=www –prefix=/opt/nginx –with-http_stub_status_module –with-http_ssl_module #注意这里的编译项
wget http://www.idc.net/linux-vps-pack/soft/nginx/nginx_cache_purge.tar.
tar -zxvf nginx_cache_purge.tar.
wget http://nginx.org/download/nginx-0.9.3.tar.
tar -zxvf nginx-*.tar.
cd nginx-*;
./configure –user=apache –group=apache –prefix=/usr/local/nginx –with-http_stub_status_module –with-http_flv_module
–add-module=/backup/www.idc.net/ngx_cache_purge-1.1;
(注意,不要make install)
[root@www.idc.net-0.7.62]# mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old #移动旧版本
[root@www.idc.net-0.7.62]# cp ./objs/nginx /usr/local/nginx/sbin/ #复制新版本nginx过去
[root@www.idc.net-0.7.62]# make upgrade #无缝升级,当前连接不会断
[root@www.idc.net-0.7.62]# cd ..
[root@www.idc.net]# /usr/local/nginx/sbin/nginx -V
nginx: nginx version: nginx/0.9.3
nginx: built by gcc 4.1.2
(Red Hat 4.1.2-48)
nginx: configure argument
搞定,收工。不放心的就重启下nginx测试下网站是否正常吧
文章由云网整理发布
Posted by 海外IDC服务
Posted on 29-09-2012
linux系统的hostname
简单来说,uname -a 可以看到hostname,修改步骤如下:
uname -a 查看hostname
hostname www.idc.net 修改下,让hostname立刻生效。
vi /etc/hosts 修改原hostname为 www.idc.net
/etc/sysconfig/network 修改原hostname为 www.idc.net,这样可以让reboot重启后也生效
reboot重启,uname -a 重新检查下。收工
Linux操作系统的 hostname是一个kernel变量,可以通过hostname命令来查看本机的hostname。也可以直接cat /proc/sys/kernel/hostname查看。
#cat /proc/sys/kernel/hostname
上面两种输出结果相同。
修改运行时Linux系统的hostname,即不需要重启系统
hostname命令可以设置系统的hostname
#hostname newname
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。
rc.sysinit文件里一开始就设置了hostname
if [ -f /etc/sysconfig/network ]; then
. /etc/sysconfig/network
if [ -z "$HOSTNAME" -o "$HOSTNAME" = "(none)" ]; then
HOSTNAME=localhost
确实使用了/etc/sysconfig/network里的hostname值。不过后面还有一段关于设置hostname的
if [ "$HOSTNAME" = "localhost" -o "$HOSTNAME" = "localhost.localdomain" ]
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}
脚本判断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查看。
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文件通常里面包含这一条记录
localhost.localdomain
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
localhost.localdomain localhost
192.168.1.61
这样,我就可以通过blog或者来访问本机。
从上面这些来看,/etc/hosts于设置hostname是没直接关系的,仅仅当你要在本机上用新的hostname来访问自己的时候才会用到 /etc/hosts文件。两者没有必然的联系。
RHEL还有个问题。
我开始在测试的时候,只修改/etc/hosts,里面添加 192.168.1.61
blog,而/etc/sysconfig/network维持原状,也就是里面的HOSTNAME=localhost.localdomain。我重 启系统后居然发现hostname给修改成了。这样看的话,倒真觉得/etc/hosts是hostname的配置文 件。后来终于在/etc/rc.d/rc.sysinit这个启动脚本里发现了问题的所在。
文章由云网整理发布
2015 年十二月
14151617181920
21222324252627}

我要回帖

更多关于 服务器如何绑定ip 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信