Linux——⽹络配置及命令
traceroute命令(unix)/tracert命令(windows)
tracert命令的格式为:tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout] [-R] [-S srcaddr] [-4] [-6] target_name。
①、-d
表⽰不将地址解析成主机名。
②、-h maximum_hops
表⽰搜索⽬标的最⼤跃点数。
③、-j host-list
表⽰与主机列表⼀起的松散源路由(仅适⽤于IPv4)。
④、-w timeout
表⽰等待每个回复的超时间(以毫秒为单位)。
⑤、-R
表⽰跟踪往返⾏程路径(仅适⽤于IPv6)。
⑥、-S srcaddr
表⽰要使⽤的源地址(仅适⽤于IPv6)。
⑦、-4和-6
表⽰强制使⽤IPv4或者IPv6。
⑧、target_name
表⽰⽬标主机的名称或者IP地址。
在Linux中配置IP地址的⽅法有以下这么⼏种:
图形界⾯配置IP地址(操作⽅式如Windows系统配置IP,但在实际⽣产中,我们并不建议在我们的服务器上安装Linux的图形界⾯,因为安装了图形界⾯将⼀定程度地影响了服务器的安全性和稳定性,因此,在这⾥就不对该⽅式进⾏详细的介绍了。)
ifconfig命令临时配置IP地址(临时配置IP地址,即当我们重启计算机或重启⽹络服务后,配置将失效)
setup⼯具永久配置IP地址(setup⼯具是由Red Hat开发的,因此在正常情况下,该⼯具只能⽤于Red Hat系列的Linux系统)(setup⼯具——红帽专有图形化⼯具setup设置IP地址)(使⽤setup命令设置完⽹络后需要使⽤service network restart重启⽹络)
修改⽹络配置⽂件
ifconfig命令
  ifconfig命令可以查看与配置⽹络状态。命令结果如下:
eth0      Link encap:Ethernet  HWaddr 00:0C:29:11:30:39
inet addr:192.168.134.129  Bcast:192.168.134.255  Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe11:3039/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:19731 errors:0 dropped:0 overruns:0 frame:0
TX packets:502 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1248492 (1.1 MiB)  TX bytes:58905 (57.5 KiB)
lo        Link encap:Local Loopback
inet addr:127.0.0.1  Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING  MTU:16436  Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
(lo表⽰本地回环⽹卡的信息)
  使⽤ifconfig命令还可以临时设置某⼀⽹卡的IP地址和⼦⽹掩码。如:
ifconfig eth0 192.168.0.200 netmask 255.255.255.0
Linux⽹络配置⽂件
⽹卡信息⽂件
  查看第⼀张⽹卡的⽹卡信息:
vi /etc/sysconfig/network-scripts/ifcfg-eth0
  信息如下:
DEVICE=eth0
HWADDR=00:0C:29:11:30:39
TYPE=Ethernet
UUID=5ab36190-a5df-4bf1-94d8-6c126afd05f1
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=dhcp
  更多信息说明,如下表格:
配置说明
DEVICE=eth0⽹卡设备名,eth0表⽰第⼀张⽹卡
BOOTPROTO=none是否⾃动获取IP(none、static、dhcp),当值为dhcp时,只需配置上述例⼦中的那⼏项就可以联⽹HWADDR=00:0C:29:11:30:39MAC地址
NM_CONTROLLED=yes是否可以由Network Manager图形管理⼯具托管
ONBOOT=yes是否随⽹络服务启动当前⽹卡⽣效(在CentOS 6 以上的版本中ONBOOT是默认关闭的。)
TYPE=Ethernet⽹络类型,这⾥为以太⽹
UUID=5ab36190-a5df-4bf1-94d8-6c126afd05f1唯⼀识别码
IPADDR=192.168.0.200IP地址
NETMASK=255.255.255.0⼦⽹掩码
GATEWAY=192.168.0.1⽹关
DNS1=202.106.0.20DNS
IPV6INIT=no IPv6是否启⽤,这⾥设置为不启⽤
USERCTL=no是否允许⾮root⽤户控制此⽹卡,这⾥为不允许
说明:
1.⾃动获取IP的条件是:必须在局域⽹内存在DHCP服务器。
2.相同UUID⽹络配置的计算机会导致互相不能上⽹。
主机名⽂件
  查看主机名⽂件:
vi /etc/sysconfig/network
  内容如下:
NETWORKING=yes
HOSTNAME=localhost.localdomain
  其中:
1. /etc/sysconfig/network该⽂件中NETWORKING=no时主机将⽆法连接⽹络。
2. Windows下,在同⼀局域⽹内相同主机名之间是不能进⾏传递的。要求在局域⽹内是不能有相同主机名的主机的。⽽在Linux中局域⽹内是可以有相同主机名的主机的,如默认主机名:localhost.localdomain。
3. 修改/etc/sysconfig/network⽂件中的主机名后需要重启计算机才能⽣效。使⽤hostname 主机名命令可以临时更改主机名后,重启计算机后将失效。通过hostname命令可以查看当前主机名。
DNS配置⽂件
  查看DNS配置⽂件:
vi /f
  内容如下:
; generated by /sbin/dhclient-script
search localdomain
nameserver 192.168.134.2
  其中最重要的是nameserver这⼀项,设置的是域名服务器的地址,多个域名服务器,则在后续添加空格继续补充域名服务器的地址,或者
另起⼀⾏做类似的nameserver配置。
VMWare中Linux的⽹络参数配置
(以CentOS为例)
1. 配置Linux IP地址;
2. CentOS 6以上的系统修改修改⽹络配置以启动⽹卡vi /etc/sysconfig/network-scripts/ifcfg-eth0将ONBOOT选项的值修改为yes,重启⽹络服务service network restart;
3. 对于⽹络配置⽂件中UUID出现相同的情况,需要修改UUID的值,修改⽅式如下:
1. `vi /etc/sysconfig/network-scripts/ifcfg-eth0`,删除MAC地址⾏
2. `rm -rf /etc/udev/rules.d/70-persistent-net.rules`,删除⽹卡和MAC地址绑定⽂件
3. 重启当前系统
4.设置VMWare虚拟机的⽹络连接⽅式,选择桥接模式(可不勾选“复制物理⽹络连接状态”这⼀选项)(其中桥接模式,允许虚拟机访
问外⽹,同时可以与局域⽹内的其他计算机进⾏通讯(包括本机);NAT模式,允许虚拟机访问外⽹,
能与本机进⾏数据通讯;Host Only模式,只能同本机进⾏通讯);
5. 修改桥接的⽹卡,在“虚拟⽹络编辑器”窗⼝中选择VMnet0,修改桥接模式下桥接的⽹卡,这⾥选择可以上⽹的⽹卡。
VMWare桥接模式下配置静态IP
修改⽹卡配置⽂件,如下:
DEVICE=eth0
HWADDR=00:0C:29:FC:8D:E6
TYPE=Ethernet
#UUID=343b502d-2249-4e33-9187-9abc285b9292
UUID=31b6504c-7ddd-4b74-a51e-46cd34ed182d
ONBOOT=yes
NM_CONTROLLED=yes
#BOOTPROTO=dhcp
BOOTPROTO=static
IPADDR=11.10.1.192
NETMASK=255.255.255.0
GATEWAY=10.8.8.1
DNS1=114.114.114.114
DNS2=8.8.8.8
IPV6INIT=no
USERCTL=no
重启⽹卡:
service network restart
route add命令实例
这⾥,ping外⽹地址会失败。使⽤route命令发现,默认⽹关没有设置成功。原因不明(DHCP模式下,动态获取IP,默认⽹关10.8.8.1设置成功,可以正常上⽹。)
为配置静态IP的情况下,解决默认⽹关未设置成功的问题,使⽤route命令临时修改默认⽹关:
临时修改默认⽹关():
sudo route add 10.8.8.1/32 dev eth0
sudo route add default gw 10.8.8.1
Linux⽹络命令
⽹络环境操作
1. ifconfig命令
  ifconfig:查看⽹络状态(能查看IP地址和⼦⽹掩码,但是不能查看⽹关和DNS地址),还可以临时设置某⼀⽹卡的IP地址和⼦⽹掩码。
2. 关闭与启动⽹卡
  ifdown ⽹卡设备名:禁⽤该⽹卡设备。
  ifup ⽹卡设备名:启⽤该⽹卡设备。
3. 查询⽹络状态
  netstat 选项(可以⽤于查看当前计算机开放的端⼝,从⽽判断当前计算机启动了哪些服务)
选项:
-t:列出TCP协议端⼝
-u:列出UPD协议端⼝
-n:不使⽤域名和服务名,⽽使⽤IP地址和端⼝号
-l:仅列出在监听状态⽹络服务
-a:列出所有的⽹络连接
-r:列出路由列表,功能和route命令⼀只
常⽤组合:-tuln、-an、-rn
查看某⼀状态下的⽹络连接情况,如:netstat -an | grep ESTABLISHED
查看某⼀⽹络状态下的⾏数(查看有多少台计算机连接到当前服务器),如:netstat -an | grep ESTABLISHED | wc -l
netstat -rn 和 route -n 命令功能⼀样,结果⼀致。通过这样的命令查看当前计算机的⽹关地址。
(注:Linux中如何中⽌远程连接?使⽤logout命令。在Windows中则操作菜单栏点击注销。)
4. route命令
  route -n:查看路由列表(可以看到当前计算机的⽹关)。
  route add default gw 192.168.1.1:临时设定⽹关。
  route del default gw 192.168.1.1:删除设定的⽹关。
5. 域名解析命令
  nslookup [主机名或IP]:进⾏域名或IP地址的解析。
nslookup
> server
# 查看本机DNS服务器
> exit
# 退出
(注:CentOS 6.x后nslookup已不存在,需要进⾏安装,参考:。在不想安装nslookup的情况下,⼜想查看本机配置的DNS服务器地址,可以使⽤cat /f命令。)
⽹络测试命令
1. ping命令
  ping [选项] ip或域名:探测指定IP或域名的⽹络状况。
选项:
-c 次数:指定ping发送包的次数
1
2
  2. telnet命令
  telnet [域名或IP] [端⼝]:远程管理与端⼝探测命令。(telnet的远程连接是极不安全的,它是明⽂传递数据,并未将数据加密。所以我们并不建议使⽤telnet命令进⾏远程管理,但是我们可以通过该命令探测某个计算机中是否开放了某⼀端⼝。如:telnet 192.168.0.1 80)
  3. traceroute命令
  traceroute [选项] IP或域名:路由跟踪,查看访问某⼀IP或域名时经过的路由(路由路径)。(该命令可能需要单独安装)
选项:
-n 使⽤IP⽽不使⽤域名显⽰
  4. wget命令
  wget 下载地址:下载命令。
  5. tcpdump命令
  tcpdump命令:⽤于监听某⼀⽹卡下某⼀服务的数据包接收情况(截获数据包-抓包)。如:tcpdump -i eth0 -nnX port 21。
选项:
-i 指定监听的⽹卡
-nn 将数据包中的域名与服务转为IP和端⼝显⽰
-X 以⼗六进制和ASCII码显⽰数据包内容
port 指定监听的端⼝
下⾯我们逐步介绍⼏个常⽤的命令:
1、Ping命令。
当您的机器不能访问Internet,⾸先确认是否是本地局域⽹的故障。假定局域⽹的代理服务器IP地址为202.168.0.1,您可以使⽤ping 202.168.0.1命令查看本机是否和代理服务器联通。此外可以测试本机的⽹卡是否正常⼯作,使⽤ ping 127.0.0.1命令。⼀般返回ping的信息就表⽰本地到该主机的⽹络线路连通。
但是很多服务器为了防⽌攻击,⼀般会关闭对ping的响应。所以ping⼀般作为测试连通性使⽤。ping命令后,会接收到对⽅发送的回馈信息,其中记录着对⽅的IP地址和TTL。TTL是该字段指定IP包被路由器丢弃之前允许通过的最⼤⽹段数量。TTL是IPv4包头的⼀个8 bit字段。例如IP包在服务器中发送前设置的TTL是64,你使⽤ping命令后,得到服务器反馈的信息,其中的TTL为56,说明途中⼀共经过了8道路由器的转发,每经过⼀个路由,TTL减1。
2、Tracert
Tracert命令⽤来显⽰数据包到达⽬标主机所经过的路径(路由器),并显⽰到达每个节点(路由器)的时间。命令功能同Ping类似,但它所获得的信息要⽐Ping命令详细得多,它把数据包所⾛的全部路径、节点的IP以及花费的时间都显⽰出来。该命令⽐较适⽤于⼤型⽹络。
Tracert 先发送 TTL 为 1 的回应数据包,当数据包上的 TTL在路由器收到后TTL⾃动减1 ,⼀旦某个服务器将TTL减1后,等于了0,路由器应该将“ICMP Time Exceeded”的消息发回源计算机,源计算机就
根据收到的信息判断达到的路由器和所⽤时间。下次再次发送数据包时,将TTL递增 1,继续上述测试,直到⽬标响应或 TTL 达到最⼤值,从⽽确定路由。通过检查中间路由器发回的“ICMP 已超时”的消息确定路由。某些路由器不经询问直接丢弃 TTL过期的数据包,这在 Tracert 实⽤程序中看不到,我们会显⽰请求超时的请求信息。下图所⽰,我们测试到新浪的路经过了8道路由,同时根据上图测试ping 新浪时候,TTL=56,说明新浪的TTL初始设置为64,经过8道路由后到达我们客户机,还剩下64-8 = 56。下图中请求超时的反馈信息是因为路由器对ping命令做了处理,关闭了ping的响应,所以我们收不到发给他的反馈信息。
3、pathping
pathping 命令是⼀个路由跟踪⼯具,它将 ping 和 tracert 命令的功能与这两个⼯具所不提供的其他信息结合起来,综合了⼆者的功能。pathping会先显⽰中间的通过的路由器(类似tracert命令得到的信息),然后对每个中间路由器(节点)发送⼀定数量的ping包,通过统计他们对ping包响应的数据包来分析通信质量。上⾯也提到了,有的路由器对ping关闭了响应,所以有的节点的丢包率会达到100%,所以这种⼀般就是关闭了ping回复。你可以⾃⼰ping试⼀下。还有,对ping包丢弃程度只是节点本⾝对ping的处理,并不⼀定影响他的通信,你可以看到,关闭ping命令节点的下⼀个节点返回到数据是正常的,说明回复的包都成功发送回来。总之,pathping 命令在⼀段时间内将数据包发送到将到达最终⽬标的路径上的每个路由器,然后根据从每个跃点返回的数据包计算结果。由于命令显⽰数
据包在任何给定路由器或链接上丢失的程度,因此可以很容易地确定可能导致⽹络问题的路由器或链接。下图所⽰,我们看到,达到第⼆个就终⽌了,因为第⼆道节点(路由器),不⽀持ping,然后,程序就终⽌不在继续往下探测了。
4、 nslookup
Nslookup命令⽤于解析域名,⼀般⽤来检测本机的DNS设置是否配置正确。如: nslookup ⽹站域名,即可解析出⽹站的IP地址。如图,可以看出解析www.163的时候,可以解析出它所有的IP地址,⽽如果⽹路出现异常或者⽆法收到服务器发送来的信息时候,会出现下⾯第⼆张图⽚的显⽰。服务器和Address代表是解析这些IP地址和域名的DNS服务器信息。⽐如我使⽤的DNS是
jtjndc007.home.langchao, DNS服务器地址是10.100.1.11.

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。