扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
1 Linux add a second IP addressLinux add a second IP address
成都创新互联公司-专业网站定制、快速模板网站建设、高性价比新泰网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式新泰网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖新泰地区。费用合理售后完善,十多年实体公司更值得信赖。
2 Add a Static Route on CentOS
Linux命令行下配置IP地址的几种配置方法:
即时生效(重启后失效):
ifconfig eth0 192.168.1.102 netmask 255.255.255.0 //添加IP地址
route add default gw 192.168.1.1 //添加网关
启动生效:
vim /etc/sysconfig/network-scripts/ifcfg-eth0 //(某些版本中可能没有vim这个编辑器比如centos,大家可能用vi替换)
IPADDR=192.168.1.102 //添加IP地址
NETMASK=255.255.255.0 //掩码
GATEWAY=192.168.1.1 //添加网关
最后结果如下:
DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.1.102
NETMASK=255.255.255.0
GETEWAY=192.168.1.1
ONBOOT=yes
TYPE=Ethernet
注:BOOTPROTO只有在static(静态)模式下才可以使用设置的IP信息
修改dns
vim /etc/resolv.conf
修改后可即时生效,启动同样有效
形式
加入nameserver= ***.***.***.***
最多可有三个,作为上一个失败后的候选
修改host name
即时生效:
hostname fc2
启动生效:
vim /etc/sysconfig/network
形式如下:
NETWORKING=yes
HOSTNAME=rh-linux.fc.org
##########################################################
首先,先了解传统的网络配置命令:
1. 使用ifconfig命令配置并查看网络接口情况
示例1: 配置eth0的IP,同时激活设备:
ifconfig eth0 192.168.4.1 netmask 255.255.255.0 up
示例2: 配置eth0别名设备 eth0:1 的IP,并添加路由
ifconfig eth0:1 192.168.4.2
route add –host 192.168.4.2 dev eth0:1
示例3:激活(禁用)设备
ifconfig eth0:1 up(down)
示例4:查看所有(指定)网络接口配置
ifconfig (eth0)
—————————
2. 使用route 命令配置路由表
示例1:添加到主机路由
route add –host 192.168.4.2 dev eth0:1
route add –host 192.168.4.1 gw 192.168.4.250
示例2:添加到网络的路由
route add –net IP netmask MASK eth0
route add –net IP netmask MASK gw IP
route add –net IP/24 eth1
示例3:添加默认网关
route add default gw IP
示例4:删除路由
route del –host 192.168.4.1 dev eth0:1
示例5:查看路由信息
route 或 route -n (-n 表示不解析名字,列出速度会比route 快)
—————————
3.ARP 管理命令
示例1:查看ARP缓存
arp
示例2: 添加
arp –s IP MAC
示例3: 删除
arp –d IP
—————————
4. ip是iproute2软件包里面的一个强大的网络配置工具,它能够替代一些传统的网络管理工具。
例如:ifconfig、route等,
上面的示例完全可以用下面的ip命令实现,而且ip命令可以实现更多的功能.下面介绍一些示例:
4.0 ip命令的语法
ip [OPTIONS] OBJECT [COMMAND [ARGUMENTS]]
4.1 ip link set–改变设备的属性. 缩写:set、s
示例1:up/down 起动/关闭设备。
ip link set dev eth0 up
这个等于传统的
ifconfig eth0 up
ifconfig eth0 down
示例2:改变设备传输队列的长度。
参数:txqueuelen NUMBER或者txqlen NUMBER
ip link set dev eth0 txqueuelen 100
示例3:改变网络设备MTU(最大传输单元)的值。
ip link set dev eth0 mtu 1500
示例4: 修改网络设备的MAC地址。
参数: address LLADDRESS
ip link set dev eth0 address 00:01:4f:00:15:f1
4.2 ip link show–显示设备属性.缩写:show、list、lst、sh、ls、l
-s选项出现两次或者更多次,ip会输出更为详细的错误信息统计。
示例:
ip -s -s link ls eth0
这个命令等于传统的
ifconfig eth0
—————————
5.1 ip address add–添加一个新的协议地址. 缩写:add、a
示例1:为每个地址设置一个字符串作为标签。为了和Linux-2.0的网络别名兼容,这个字符串必须以设备名开头,接着一个冒号,
ip addr add local 192.168.4.1/28 brd + label eth0:1 dev eth0
等价于
ifconfig eth0:5 192.168.4.1/28
ip addr add local 192.168.4.1/28 dev eth0
示例2: 在以太网接口eth0上增加一个地址192.168.20.0,掩码长度为24位(155.155.155.0),标准广播地址,标签为 eth0:Alias:
ip addr add 192.168.4.2/24 brd + dev eth1 label eth1:1
这个命令等于传统的:
ifconfig eth1:1 192.168.4.2/24
5.2 ip address delete–删除一个协议地址. 缩写:delete、del、d
ip addr del 192.168.4.1/24 brd + dev eth0 label eth0:Alias1
5.3 ip address show–显示协议地址. 缩写:show、list、lst、sh、ls、l
ip addr ls eth0
5.4.ip address flush–清除协议地址. 缩写:flush、f
示例1 : 删除属于私网10.0.0.0/8的所有地址:
ip -s -s a f to 10/8
示例2 : 取消所有以太网卡的IP地址
ip -4 addr flush label “eth0″
—————————
6. ip neighbour–neighbour/arp表管理命令
缩写 neighbour、neighbor、neigh、n
命令 add、change、replace、delete、fulsh、show(或者list)
6.1 ip neighbour add — 添加一个新的邻接条目
ip neighbour change–修改一个现有的条目
ip neighbour replace–替换一个已有的条目
缩写:add、a;change、chg;replace、repl
示例1: 在设备eth0上,为地址10.0.0.3添加一个permanent ARP条目:
ip neigh add 10.0.0.3 lladdr 0:0:0:0:0:1 dev eth0 nud perm
示例2:把状态改为reachable
ip neigh chg 10.0.0.3 dev eth0 nud reachable
6.2.ip neighbour delete–删除一个邻接条目
示例1:删除设备eth0上的一个ARP条目10.0.0.3
ip neigh del 10.0.0.3 dev eth0
6.3.ip neighbour show–显示网络邻居的信息. 缩写:show、list、sh、ls
示例1: ip -s n ls 193.233.7.254
193.233.7.254. dev eth0 lladdr 00:00:0c:76:3f:85 ref 5 used 12/13/20 nud reachable
6.4.ip neighbour flush–清除邻接条目. 缩写:flush、f
示例1: (-s 可以显示详细信息)
ip -s -s n f 193.233.7.254
—————————
7. 路由表管理
7.1.缩写 route、ro、r
7.5.路由表
从Linux-2.2开始,内核把路由归纳到许多路由表中,这些表都进行了编号,编号数字的范围是1到255。另外,
为了方便,还可以在/etc/iproute2/rt_tables中为路由表命名。
默认情况下,所有的路由都会被插入到表main(编号254)中。在进行路由查询时,内核只使用路由表main。
7.6ip route add — 添加新路由
ip route change — 修改路由
ip route replace — 替换已有的路由
缩写:add、a;change、chg;replace、repl
示例1: 设置到网络10.0.0/24的路由经过网关193.233.7.65
ip route add 10.0.0/24 via 193.233.7.65
示例2: 修改到网络10.0.0/24的直接路由,使其经过设备dummy
ip route chg 10.0.0/24 dev dummy
示例3: 实现链路负载平衡.加入缺省多路径路由,让ppp0和ppp1分担负载(注意:scope值并非必需,它只不过是告诉内核,这个路由要经过网关而不是直连 的。实际上,如果你知道远程端点的地址,使用via参数来设置就更好了)。
ip route add default scope global nexthop dev ppp0 nexthop dev ppp1
ip route replace default scope global nexthop dev ppp0 nexthop dev ppp1
示例4: 设置NAT路由。在转发来自192.203.80.144的数据包之前,先进行网络地址转换,把这个地址转换为193.233.7.83
ip route add nat 192.203.80.142 via 193.233.7.83
示例5: 实现数据包级负载平衡,允许把数据包随机从多个路由发出。weight 可以设置权重.
ip route replace default equalize nexthop via 211.139.218.145 dev eth0 weight 1 nexthop via 211.139.218.145 dev eth1 weight 1
7.7.ip route delete– 删除路由
缩写:delete、del、d
示例1:删除上一节命令加入的多路径路由
ip route del default scope global nexthop dev ppp0 nexthop dev ppp1
7.8.ip route show — 列出路由
缩写:show、list、sh、ls、l
示例1: 计算使用gated/bgp协议的路由个数
ip route ls proto gated/bgp |wc
1413989179010
示例2: 计算路由缓存里面的条数,由于被缓存路由的属性可能大于一行,以此需要使用-o选项
ip -o route ls cloned |wc
159254318707
示例3: 列出路由表TABLEID里面的路由。缺省设置是table main。TABLEID或者是一个真正的路由表ID或者是/etc/iproute2/rt_tables文件定义的字符串,
或者是以下的特殊值:
all — 列出所有表的路由;
cache — 列出路由缓存的内容。
ip ro ls 193.233.7.82 tab cache
示例4: 列出某个路由表的内容
ip route ls table fddi153
示例5: 列出默认路由表的内容
ip route ls
这个命令等于传统的: route
7.9.ip route flush — 擦除路由表
示例1: 删除路由表main中的所有网关路由(示例:在路由监控程序挂掉之后):
ip -4 ro flush scope global type unicast
示例2:清除所有被克隆出来的IPv6路由:
ip -6 -s -s ro flush cache
示例3: 在gated程序挂掉之后,清除所有的BGP路由:
ip -s ro f proto gated/bgp
示例4: 清除所有ipv4路由cache
ip route flush cache
*** IPv4 routing cache is flushed.
7.10 ip route get — 获得单个路由 .缩写:get
一、查看网络配置
确保网络配置的正确性及网络连接的畅通是Linux系统作为服务器应用的基础,查看及测试网络配置是管理Linux网络服务的第一步。
1.ifconfig——查看网络配置
1) 查看所有活动网络接口的信息
执行 ifconfig 或ip addr或ip a命令,都可以显示当前主机中已启用(活动)的网络接口信息。、
2) 查看指定网络接口信息
格式:ifconfig 网络接口名
可以通过TX、RX等信息了解到通过该网络接口发送和接收的数据包个数,流量等跟多属性。
2.hostname命令
在Linux系统中,相当一部分网络服务都会通过主机名来识别本机,如果主机名配置不当,可能会导致程序功能出现故障。
1) 查看主机名
使用hostname命令就可以查看当前主机的主机名,不添加任何选项参数。
2) 临时更改主机名
hostname NewName
注:这种方法只是临时的更改主机名,重启后将失效。
3) 永久更改主机名
a. 修改配置文件
RHEL6和7的配置文件存放路径不相同,修改配置文件中的主机名,重启就可永久更改主机名。
RHEL6主机名配置文件路径为:/etc/sysconfig/network
RHEL7主机名配置文件路径为:/etc/hostname
示例
b. 使用命令修改(这种方法只适用于RHEL7或者CentOS7之后)
命令格式:
使用该命令更改后,更改后的主机名就自动写入了配置文件中,所以可以永久更改主机名,其实就是修改了配置文件。
3.route命令
直接执行route命令可以查看当前主机中的路由表信息,若结合“-n”选项使用,可以将路由记录中的地址显示为数字形式,这可以跳过解析主机名的过程,在路由表条目较多的情况下能够加快执行速度。
Destination列对应的是目标网段的地址,Gateway列对应的是吓一跳路由器的地址,Iface列对应的是发送数据的网络接口。当目标网段为“default”是,表示此行是默认网关记录,当吓一跳为“*”是,表示目标网段是与本机直接相连的。
4.netstat命令——查看系统的网络连接状态等
netstat命令是了解网络状态及排除网络服务故障的有效工具。
常用选项:
-a:显示所有活动连接(包括监听、非监听状态的服务端口)
-n:以数字形式显示
-p:显示相关的进程信息
-t:查看 TCP 协议相关信息
-u:查看UDP协议相关信息
-r:显示路由表信息
-l:显示处于监听(listening)状态的网络连接及端口信息
通常使用“-anput”组合选项,结合管道使用“grep”命令,来查看一些服务的端口是否开启。
示例:
Tcp21为ftp服务的端口
二、测试网络连接
1.ping命令——测试网络连通性
常用选项:
-c完成次数:设置完成要求回应的次数
-i间隔秒数:指定收发信息的间隔时间
-q:不显示指令执行过程,开头和结尾的相关信息除外
-s数据包大小:设置数据包的大小
-t存活数值:设置存活数值TTL的大小
-v:详细显示指令的执行过程
若返回“Destination Host Unreachable”的反馈信息,则表示目标主机不可达,可能目标地址不存在或主机已关闭;返回“Network is unreachable”的反馈信息,则表示没有可用的路由记录(如默认网关),无法到达目标主机所在的网络;返回“Request timeout”的反馈信息,表示与目标主机间的连接超时(数据包缓慢或丢失),若有严格的防火墙限制,也可能返回此信息。
2.traceroute命令——跟踪数据包的路由途径
使用traceroute命令可以测试从当前主机到目的主机之间经过的网络节点,并显示各中间结点的连接状态(响应时间)。对于无法响应的节点,连接状态将显示为“*”。
示例:traceroute IP_ADDR
在网络测试与排错的过程中,通常会先使用ping命令测试与主机的网络连接,如果发现网络有故障,再使用traceroute命令跟踪查看是在哪个中间结点存在故障。
3.nslookup命令——测试DNS域名解析
nslookup是用来测试(DNS)域名解析的专用工具。(DNS服务后面再详细讲解,通俗的说就是将域名解析为ip地址的一个服务)
示例:nslookup
若成功反馈要查询域名的IP地址,则表示域名解析没有问题;若出现“...... no servers could be reached”的信息,表示不能连接到指定的DNS服务器;若出现“...... cant’t find xxx.yyy.zzz:NXDOMAIN”的信息,表示要查询的域名不存在。
三、设置网络地址参数
设置网络参数的方法:
• 临时配置 —— 使用命令调整网络参数简单、快速,可直接修改运行中的网络参数
一般只适合在调试网络的过程中使用
系统重启以后,所做的修改将会失效
• 永久配置 —— 通过配置文件修改网络参数修改各项网络参数的配置文件
适合对服务器设置固定参数时使用
需要重载网络服务或者重启以后才会生效
1.临时配置——使用网络配置命令(注:RHEL6中网络接口的名称为eth,RHEL7中为ens)
1)使用ifconfig命令修改网卡的地址、状态
ifconfig命令不仅可以用于查看网卡配置,还可以修改网卡的ip地址,子网掩码,也可以绑定网络接口、激活或停用网络接口
a. 修改网卡的ip地址(临时修改)
命令格式:
示例:
b. 禁用或者重新激活网卡
命令格式:
示例:
c. 设置虚拟网络接口(相当于一块网卡配置多个IP地址)
命令格式:
示例:
可以根据需要添加更多的虚拟接口,如“eth0:1”“eth0:2”等
2)使用route命令添加、删除静态路由记录
• 删除路由表中的默认网关记录命令格式:route del default gw IP地址
• 向路由表中添加默认网关记录命令格式:route add default gw IP地址
• 添加到指定网段的路由记录命令格式:route add -net 网段地址 gw IP地址
• 删除到指定网段的路由记录命令格式:router del -net 网段地址
2.永久配置——修改网络配置文件
1)网络接口配置文件
网络接口的配置文件默认位于目录“/etc/sysconfig/network-scripts/”中,文件名格式为:“ifcfg-XXX”,其中“XXX”是网络接口的名称。例如:RHEL6中网卡eth0的配置文件是“ifcfg-eth0”,而RHEL7中网卡ens33的配置文件是“ifcfg-ens33”。
在网卡的配置文件中,可以看到静态IP地址的部分内容如下图所示:
上述个配置项的含义及作用:(图示为RHEL6中的配置文件,7中也差不多,换汤不换药,修改的都差不多)
• DEVICE:设置网络接口的名称ONBOOT:设置网络接口是否在Linux系统启动时激活BOOTPROTO:设置网络接口的配置方式,值为static时表示使用静态ip地址,为dhcp时表示通过dhcp的方式动态获取ip地址IPADDR:设置网络接口的ip地址NETMASK:设置网络接口的子网掩码GATEWAY:设置网络接口的默认网关地址2)重启 network 网络服务
当修改了网络接口的配置文件以后,若要使新的配置生效,可以重启network服务或者重启主机或者禁用、启用网络接口。
示例:
• RHEL6中重启network服务:service network restartRHEL7中重启network服务:systemctl restart network注:这是我在做实验时候的一个经验:RHEL6修改完网卡配置重启后,ip地址仍然没有改过来,这时候我们经常会删除“/etc/udev/rules.d/70-persistent-net.rules”这个文件。RHEL7不用管,RHEL7特别好改,RHEL6改的时候特别难受。(个人提示,不求认同)
3)域名解析配置文件
a.指定为本机提供DNS解析的服务器地址
/etc/resolv.conf文件中记录了本机默认使用的DNS服务器的地址信息,对该文件所做的修改将会立刻生效。Linux系统中最多可以指定3个(第3个以后将被忽略)不同的DNS服务器地址,优先使用第1个DNS服务器。
示例:
其中“search localdomain”用来设置默认的搜索域(域名后缀)。例如,当访问主机“localhost”时,就相当于访问“localhost.localdomain”。
b.本地主机映射文件
/etc/hosts文件中记录着一份主机名与ip地址的映射关系表,一般用来保存经常访问的主机信息。当访问一个未知的域名时,先查找该文件中是否有相应的映射记录,如果找不到在去向DNS服务器查询。
hosts 文件和 DNS 服务器的比较
• 默认情况下,系统首先从 hosts 文件查找解析记录hosts 文件只对当前的主机有效hosts 文件可减少 DNS 查询过程,从而加快访问速度
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流