Linux常用网络配置命令
一、查看网络配置
确保网络配置的正确性及网络连接的畅通是Linux系统作为服务器应用的基础,查看及测试网络配置是管理Linux网络服务的第一步。
1ifconfig——查看网络配置
1) 查看所有活动网络接口的信息
执行 ifconfig 或ip addr或ip a命令,都可以显示当前主机中已启用(活动)的网络接口信息。、
2) 查看指定网络接口信息
格式:ifconfig 网络接口名
可以通过TX、RX等信息了解到通过该网络接口发送和接收的数据包个数,流量等跟多属性。
2hostname命令
在Linux系统中,相当一部分网络服务都会通过主机名来识别本机,如果主机名配置不当,可能会导致程序功能出现故障。
1) 查看主机名
使用hostname命令就可以查看当前主机的主机名,不添加任何选项参数。
2) 临时更改主机名
hostname NewName
注:这种方法只是临时的更改主机名,重启后将失效。
3) 永久更改主机名
a 修改配置文件
RHEL6和7的配置文件存放路径不相同,修改配置文件中的主机名,重启就可永久更改主机名。
RHEL6主机名配置文件路径为:/etc/sysconfig/network
RHEL7主机名配置文件路径为:/etc/hostname
示例
b 使用命令修改(这种方法只适用于RHEL7或者CentOS7之后)
命令格式:
使用该命令更改后,更改后的主机名就自动写入了配置文件中,所以可以永久更改主机名,其实就是修改了配置文件。
3route命令
直接执行route命令可以查看当前主机中的路由表信息,若结合“-n”选项使用,可以将路由记录中的地址显示为数字形式,这可以跳过解析主机名的过程,在路由表条目较多的情况下能够加快执行速度。
Destination列对应的是目标网段的地址,Gateway列对应的是吓一跳路由器的地址,Iface列对应的是发送数据的网络接口。当目标网段为“default”是,表示此行是默认网关记录,当吓一跳为“”是,表示目标网段是与本机直接相连的。
4netstat命令——查看系统的网络连接状态等
netstat命令是了解网络状态及排除网络服务故障的有效工具。
常用选项:
-a:显示所有活动连接(包括监听、非监听状态的服务端口)
-n:以数字形式显示
-p:显示相关的进程信息
-t:查看 TCP 协议相关信息
-u:查看UDP协议相关信息
-r:显示路由表信息
-l:显示处于监听(listening)状态的网络连接及端口信息
通常使用“-anput”组合选项,结合管道使用“grep”命令,来查看一些服务的端口是否开启。
示例:
Tcp21为ftp服务的端口
二、测试网络连接
1ping命令——测试网络连通性
常用选项:
-c<完成次数>:设置完成要求回应的次数
-i<间隔秒数>:指定收发信息的间隔时间
-q:不显示指令执行过程,开头和结尾的相关信息除外
-s<数据包大小>:设置数据包的大小
-t<存活数值>:设置存活数值TTL的大小
-v:详细显示指令的执行过程
若返回“Destination Host Unreachable”的反馈信息,则表示目标主机不可达,可能目标地址不存在或主机已关闭;返回“Network is unreachable”的反馈信息,则表示没有可用的路由记录(如默认网关),无法到达目标主机所在的网络;返回“Request timeout”的反馈信息,表示与目标主机间的连接超时(数据包缓慢或丢失),若有严格的防火墙限制,也可能返回此信息。
2traceroute命令——跟踪数据包的路由途径
使用traceroute命令可以测试从当前主机到目的主机之间经过的网络节点,并显示各中间结点的连接状态(响应时间)。对于无法响应的节点,连接状态将显示为“”。
示例:traceroute IP_ADDR
在网络测试与排错的过程中,通常会先使用ping命令测试与主机的网络连接,如果发现网络有故障,再使用traceroute命令跟踪查看是在哪个中间结点存在故障。
3nslookup命令——测试DNS域名解析
nslookup是用来测试(DNS)域名解析的专用工具。(DNS服务后面再详细讲解,通俗的说就是将域名解析为ip地址的一个服务)
示例:nslookup wwwbaiducom
若成功反馈要查询域名的IP地址,则表示域名解析没有问题;若出现“ no servers could be reached”的信息,表示不能连接到指定的DNS服务器;若出现“ cant’t find xxxyyyzzz: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/rulesd/70-persistent-netrules”这个文件。RHEL7不用管,RHEL7特别好改,RHEL6改的时候特别难受。(个人提示,不求认同)
3)域名解析配置文件
a指定为本机提供DNS解析的服务器地址
/etc/resolvconf文件中记录了本机默认使用的DNS服务器的地址信息,对该文件所做的修改将会立刻生效。Linux系统中最多可以指定3个(第3个以后将被忽略)不同的DNS服务器地址,优先使用第1个DNS服务器。
示例:
其中“search localdomain”用来设置默认的搜索域(域名后缀)。例如,当访问主机“localhost”时,就相当于访问“localhostlocaldomain”。
b本地主机映射文件
/etc/hosts文件中记录着一份主机名与ip地址的映射关系表,一般用来保存经常访问的主机信息。当访问一个未知的域名时,先查找该文件中是否有相应的映射记录,如果找不到在去向DNS服务器查询。
hosts 文件和 DNS 服务器的比较
• 默认情况下,系统首先从 hosts 文件查找解析记录hosts 文件只对当前的主机有效hosts 文件可减少 DNS 查询过程,从而加快访问速度
防火墙的基本功能,是通过六个命令来完成的。一般情况下,除非有特殊的安全需求,这个六个命令基本上可以搞定防火墙的配置。下面笔者就结合CISCO的防火墙,来谈谈防火墙的基本配置,希望能够给大家一点参考。
第一个命令:interface
Interface是防火墙配置中最基本的命令之一,他主要的功能就是开启关闭接口、配置接口的速度、对接口进行命名等等。在买来防火墙的时候,防火墙的各个端都都是关闭的,所以,防火墙买来后,若不进行任何的配置,防止在企业的网络上,则防火墙根本无法工作,而且,还会导致企业网络不同。
1、 配置接口速度
在防火墙中,配置接口速度的方法有两种,一种是手工配置,另外一种是自动配置。手工配置就是需要用户手工的指定防火墙接口的通信速度;而自动配置的话,则是指防火墙接口会自动根据所连接的设备,来决定所需要的通信速度。
如:interface ethernet0 auto --为接口配置“自动设置连接速度”
Interface ethernet2 100ful --为接口2手工指定连接速度,100MBIT/S。
这里,参数ethernet0或者etnernet2则表示防火墙的接口,而后面的参数表示具体的速度。
笔者建议
在配置接口速度的时候,要注意两个问题。
一是若采用手工指定接口速度的话,则指定的速度必须跟他所连接的设备的速度相同,否则的话,会出现一些意外的错误。如在防火墙上,若连接了一个交换机的话,则交换机的端口速度必须跟防火墙这里设置的速度相匹配。
二是虽然防火墙提供了自动设置接口速度的功能,不过,在实际工作中,作者还是不建议大家采用这个功能。因为这个自动配置接口速度,会影响防火墙的性能。而且,其有时候也会判断失误,给网络造成通信故障。所以,在一般情况下,无论是笔者,还是思科的官方资料,都建议大家采用手工配置接口速度。
2、 关闭与开启接口
防火墙上有多个接口,为了安全起见,打开的接口不用的话,则需要及时的进行关闭。一般可用shutdown命令来关闭防火墙的接口。但是这里跟思科的IOS软件有一个不同,就是如果要打开这个接口的话,则不用采用no shutdown命令。在防火墙的配置命令中,没有这一条。而应该采用不带参数的shutdown命令,来把一个接口设置为管理模式。
笔者建议
在防火墙配置的时候,不要把所有的接口都打开,需要用到几个接口,就打开几个接口。若把所有的接口都打开的话,会影响防火墙的运行效率,而且,对企业网络的安全也会有影响。或者说,他会降低防火墙对于企业网络的控制强度。
第二个命令:nameif
一般防火墙出厂的时候,思科也会为防火墙配置名字,如ethernet0等等,也就是说,防火墙的物理位置跟接口的名字是相同的。但是,很明显,这对于我们的管理是不利的,我们不能够从名字直观的看到,这个接口到底是用来做什么的,是连接企业的内部网络接口,还是连接企业的外部网络接口。所以,网络管理员,希望能够重命令这个接口的名字,利用比较直观的名字来描述接口的用途,如利用outside命令来表示这个接口是用来连接外部网络;而利用inside命令来描述这个接口是用来连接内部网络。同时,在给端口进行命名的时候,还可以指定这个接口的安全等级。
Nameif命令基本格式如下
Nameif hardware-id if-name security-level
其中,hardware-id表示防火墙上接口的具体位置,如ethernet0或者ethernet1等等。这些是思科防火墙在出厂的时候就已经设置好的,不能够进行更改。若在没有对接口进行重新命名的时候,我们只能够通过这个接口位置名称,来配置对应的接口参数。
而if-name 则是我们为这个接口指定的具体名字。一般来说,这个名字希望能够反映出这个接口的用途,就好象给这个接口取绰号一样,要能够反映能出这个接口的实际用途。另外,这个命名的话,我们网络管理员也必须遵守一定的规则。如这个名字中间不能用空格,不同用数字或者其他特殊字符(这不利于后续的操作),在长度上也不能够超过48个字符。
security-level表示这个接口的安全等级。一般情况下,可以把企业内部接口的安全等级可以设置的高一点,而企业外部接口的安全等级则可以设置的低一点。如此的话,根据防火墙的访问规则,安全级别高的接口可以防卫安全级别低的接口。也就是说,不需要经过特殊的设置,企业内部网络就可以访问企业外部网络。而如果外部网络访问内部网络,由于是安全级别低的接口访问安全级别高的接口,则必须要要进行一些特殊的设置,如需要访问控制列表的支持,等等。
笔者建议
在给接口配置安全等级的时候,一般不需要设置很复杂的安全等级。在安全要求一般的企业,只需要把接口的安全登记分为两级(一般只用两个接口,一个连接外部网络,一个连接内部网络),如此的话,防火墙的安全级别管理,会方便许多。
另外,就是企业内部网络的安全级别要高于外部网络的安全级别。因为从企业安全方面考虑,我们的基本原则是内部网络访问外部网络可以放开,而外部网络访问内部网络的话,就要有所限制,则主要是出于限制病毒、木马等给企业网络所造成的危害的目的。不过,若企业内部对外部访问也有限制的话,如不允许访问FTP服务器,等等,则可以借助访问控制列表或者其他技术手段来实现。
在对接口进行命名的时候,要能够反映这个接口的用途,否则的话,对其进行命名也就没有什么意思了。一般的话,如可以利用inside或者 outside来表示连接内网与外网的接口。如此的话在,网络管理员在一看到这个接口名字,就知道这个接口的用途。这几可以提高我们防火墙维护的效率。对于我们按照这个名字来对接口进行配置的时候,就比较容易实现,而不需要再去想我需要配置的接口名字是什么。若我们真的忘记了接口名字的话,则可以利用 show nameif命令来检验接口名字的配置。
第三个命令:IP address
在防火墙管理中,要为每个启用的防火墙接口配置IP地址。一般来说,防火墙的IP地址支持两种取得方式,一是通过自动获得,如可以通过企业内网的DHCP服务器取得IP地址;二是用户通过手工指定IP地址。
这个命令的具体格式为
Ip adress if-name IP [NETMASK]
若我们用上面的IF-NAME命令,给防火墙的接口配置好别名之后,则在后续的其他命令中,如这个配置IP地址的命令,则就不需要采用接口的位置名,而直接可以利用这个别名为具体的接口设置相关的参数。
若我们通过手工指定IP地址的时候,需要注意几个问题。一是若企业中还有DHCP服务器的话,则要注意这个网络地址冲突的问题。这个防火墙上的接口IP地址,在企业的整个网络中,也必须保持唯一,否则的话,就会造成IP地址冲突的错误。所以,若企业中还有DHCP服务器的话,则在DHCP服务器配置的时候,需要注意,这个防火墙接口所用的IP地址不应该在DHCP服务器的自动分配IP的地址池中,否则的话,很容易造成IP地址的冲突。
另外,在给他手工配置IP地址的时候,为了管理上的方便,最好能够指定连续的IP地址。也就是说,防火墙各个接口的IP地址为连续的。笔者在企业的IP地址规划中,特意为防火墙的接口预留了4个IP地址。即使,现在没有使用到这个接口,为了避免以后用到时,IP地址不连续,所以,在整个网络的 IP地址规划中,还是为其预留了足够多的IP地址。
这里的网络掩码不是必须的。若网络管理员在配置防火墙的时候,没有配置这个网络掩码的话,则防火墙会自动根据企业内部网络的结构,则防火墙会自动给其设置一个网络掩码。所以,在一般的情况下,这个网络掩码可以不用设置,免得填写错误的话,还造成不必要的损失。
笔者建议
若是采用DHCP方式取得接口的IP地址的,则在DHCP服务器配置的时候,最好能够给防火墙的各个接口配置连续的IP地址。如此的话,可以方便我们对防火墙的接口进行管理。若企业的网络规模比较大,安全级别比较高的话,则一般建议不要采用DHCP的方式,而需要给防火墙的各个接口手工指定 IP地址。
第四个命令:NAT 与GLOBAL、STATIC命令
使用NAT(网络地址转换)命令,网络管理员可以将内部的一组IP地址转换成为外部的公网地址;而global命令则用于定义用网络地址转换命令NAT转换成的地址或者地址的范围。简单的说,利用NAT命令与GLOBAL命令,能够实现IP地址之间的转换,还可以实现IP地址到端口的映射。
这个网络地址转换命令在实际工作中非常的有用。我们都知道,现在公网IP地址非常的缺乏,基本上,一家企业只有一到两个公网地址。而对于企业来说,他们的文件服务器、OA系统、邮件服务器等等可能都需要外部访问,而如果没有NAT技术的话 ,则在公网中要进行访问的话,必须具有公网的IP地址。这就大大限制了企业内部信息化系统的外部访问,家庭办公、出差时访问企业内部网络等等,变的无法实现。而现在网络地址转换技术,就是为解决这个问题而产生的。在网络地址转换技术的帮助下,可以把企业内部的IP地址跟端口唯一的映射到外部公网的IP地址。如此的话,内网的IP地址就有了一个合法的公网IP地址,则在公司外面的员工就可以通过互联网访问企业内部的信息化系统。
在实际工作中,用的最多的就是将本地地址转换为一个担搁的全局地址,而不是一个地址范围。如公司内部的ERP服务器IP地址为 19216806,此时,若我们希望,外部的员工,如在其他城市的一个销售办事处,他们能够利用2029696240这个公网地址访问这台服务器。若要实现这个需求,该如何配置呢
Static (inside,outside) 19216806 2029696236
此时,外部用户就可以利用这个2029696236公网IP地址,来访问企业内部的ERP系统。
其实,配置了这条命令之后,在防火墙服务器中,就有了这个一一对应的关系。当外部网络通过访问2029696236这个IP地址时,在防火墙服务器中,就会把这个IP地址转换为19226806,如此就实现了外部网络访问企业的内部信息化系统。
不过,此时若不止这么一个信息化系统,现在OA系统(19216805)与ERP系统(19216806),在家办公的人或者出差在外的人都需要能够访问这两个服务器,此时,该如何处理呢
如企业有两个公网IP地址,那也好办,只需要把OA系统与ERP系统分别对应到一个公网IP地址即可。但是,现在的问题是,企业只有一个IP 地址,此时,该如何处理呢为此,我们可以利用static命令,实现端口的重定向。简单的说,端口重定向,允许外部的用户连接一个内部特定的IP地址与端口,并且让防火墙将这个数据流量重定向到合适的内部地址中去。
作者提醒
1、 应该有足够的全局IP地址去匹配NAT命令指定的本机IP地址。否则的话,可以结合使用PAT(根据端口对应IP地址)来解决全局地址的短缺问题。而对于绝大部分中国企业来说,基本上地址都是不够的,要采用PAT技术来解决地址短缺问题。PAT技术,最多允许64000个客户端(内部IP地址)使用同一个公网的IP地址。
2、 网络地址转换除了可以解决公网ID地址短缺问题的话,还有一个很好的副作用。就是可以把内部的主机隐藏起来,从而实现内部主机的安全性。如上面的例子中,如外面的用户需要访问企业内部的ERP服务器的话,则他们只需要知道公网地址就可以了,不需要知道到底他们访问的是内部的那台服务器,这台服务器的IP地址是多少。如此的话,就可以最大限度的保护企业内部服务器的安全。
第五个命令:ICMP命令
当我们做好相关的配置之后,接下去的工作我们就需要利用测试命令,来判断我们所配置的准确性。最基本的两个测试命令,就是PING与DEBUG命令。
Ping 命令我们网络管理员都是很熟悉的了。但是,在防火墙中有一个比较特殊的地方,就是在默认情况下,防火墙会拒绝所有来自于外部接口的ICMP输入流量。当我们PING 一个外网的IP地址时,若跟对方连接通畅的话,则对方会返回一个ICMP响应的回答。而防火墙默认的情况下,是会拒绝这个ICMP流量的。这主要是出于安全方面的考虑。但是,在我们进行测试的时候,我们不喜欢防火墙禁止接收这个ICMP响应回答,不然的话,我们就无法进行测试工作了。
所以,在防火墙刚刚开始配置的时候,我们往往需要让防火墙允许接收这个流量,我们需要利用permit命令来让防火墙通过这个流量。
我们可以利用这条命令来实现这个需求:icmp permit any any outside。这个命令的意识就是允许ICMP协议在防火墙上畅通无阻的运行,允许防火墙接收来自外部的ICMP流量。
笔者提醒
不过,在测试完以后,最好还是能够还原原先的设置,即让防火墙拒绝接收这个来自外部接口ICMP流量,这对于提高企业内部的安全性,非常有帮助,如可以很好的防止DOS攻击,等等。
第六个命令:write memory
一般来说,我们在对防火墙配置所做的更改,是不会直接写入当防火墙的闪存中的。防火墙如此的设计,是为了防止网络管理员万一不小心,做了一些难以恢复的设置时,只需要重新启动一下防火墙,就可以恢复以前的设置了。也就是说在,对防火墙的更新配置,在没有应该命令把他写入到闪存中,防火墙一般都是先把它存放在RAM 中。而RAM中的数据,当防火墙重新启动后,都会丢失。
所以,当配置测试完成之后,千万要记住,要利用write memory命令,把相关的更改配置写入到闪存中。如此的话,才能够在防火墙重新启动后,这些相关的配置仍然能够起作用。
笔者提醒
在没有测试之前,最好不要把更改配置写入到闪存中。因为一旦写入到闪存中,你若做了一些难以恢复的配置,而在测试的时候出现了问题,此时,你只能够重置防火墙,以前的配置将会全部丢失,回复到出厂状态,那对于我们网络管理员来说,是个很大的打击。所以,一般需要对相关的配置测试无误后,才能够利用这个命令,永久的保存配置。
不过,在防火墙配置的时候,要注意不要断电,否则的话,你做的配置将会全功尽弃。不过,若在防火墙一端,接上UPS电源,是一个比较明智的做法。
0条评论