网络参数设置命令
1.ifconfig
ifconfig主要是能手动启动、观察和修改网络接口的相关参数
[root@linux ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0F:EA:A3:06:A2
inet addr:192.168.10.100 Bcast:192.168.10.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3669 errors:0 dropped:0 overruns:0 frame:0
TX packets:2892 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:667547 (651.9 KiB) TX bytes:584799 (571.0 KiB)
Interrupt:209 Memory:fb000000-0
eth0:0 Link encap:Ethernet HWaddr 00:0F:EA:A3:06:A2
inet addr:192.168.200.2 Bcast:192.168.200.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:209 Memory:fb000000-0
eth0:网卡的代号,也有lo这个loopback。
HWaddr:网卡的硬件地址,习惯称为MAC。
inet addr:IPv4的IP地址,后续的Bcase、Mask分别代表的是Broadcast和Netmask。
inet6 addr:是IPv6的版本的IP,我们没有使用,所以略过。
RX:那一行代表的是网络由启动到目前为止的数据包接收情况,packets代表数据包数、errors代表数据包发生错误的数量、dropped代表数据包由于有问题而遭丢弃的数量等。
TX:和RX相反,为网络由启动到目前为止的传送情况。
collisions:代表数据包碰撞的情况,如果发生太多次,表示你的网络状况不太好。
txqueuelen:代表用来传输数据的缓冲区的储存长度。
RX Bytes、TX Bytes:总传送、接收的字节总量。
Interrupt、Memory:网卡硬件的数据,IRQ岔断和内存地址。
范例:暂时修改网络接口
[root@linux ~]# ifconfig eth0 192.168.100.100
# 如果不加所有其他参数,则系统会依照该 IP 所在的 class 范围,
# 自动地计算出 netmask 及 network, broadcast 等 IP 参数
[root@linux ~]# ifconfig eth0 192.168.100.100 netmask 255.255.255.128 \
> mtu 8000
# 设置网络接口,同时设置 MTU 的数值
[root@linux ~]# ifconfig eth0 MTU 9000
# 仅修改该接口的 MTU 数值,其他的保持不动
[root@linux ~]# ifconfig eth0:0 192.168.50.50
# 仔细看那个接口, eth0:0 。那就是在该网络接口上,再仿真一个网络接口,
[root@linux ~]# ifconfig eth0:0 down
# 关掉 eth0:0 这个接口。如果想要启动 eth1 ,并且不设置所有网络参数
# ifconfig eth1 up 就能实现
[root@linux ~]# /etc/init.d/network restart
配置文件
/etc/sysconfig/network-scripts里面的ifcfg-ethx等文件
2.路由修改route
[root@linux ~]# route [-nee]
[root@linux ~]# route add [-net|-host] [网段或主机] netmask [mask] [gw|dev]
[root@linux ~]# route del [-net|-host] [网段或主机] netmask [mask] [gw|dev]
-n,不要使用通信协议或主机名称,直接使用 IP 或 Port Number;
-ee,使用更周详的信息来显示;增加 (add) 和删除 (del) 路由的相关参数;
-net,表示后面接的路由为一个网段;
-host,表示后面接的为连接到单台主机的路由;
Netmask,和网段有关,能设置 netmask 决定网段的大小;
Gw,gateway 的简写,后续接的是 IP 的数值,和 dev 不同;
Dev,如果只是要指定由哪一块网卡联机出去,则使用这个设置,后面接 eth0 等。
[root@linux ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
0.0.0.0 192.168.10.30 0.0.0.0 UG 0 0 0 eth0
范例:路由的增加和删除
[root@linux ~]# route del -net 169.254.0.0 netmask 255.255.0.0 dev eth0
# 上面这个操作能删除掉 169.254.0.0/16 这个网段
[root@linux ~]# route add -net 192.168.100.0 netmask 255.255.255.0 dev eth0
[root@linux ~]# route add default gw 192.168.10.30
# 增加默认路由的方法。请注意,只要有一个默认路由就够了
3.ping
-b,后面接的是 broadcast 的 IP,用在你“需要对整个网段的主机进行 ping ”时;
-c,后面接的是执行 ping 的次数,例如 -c 5 ;
-n,不进行 IP 和主机名称的反查,直接使用 IP ;
-s,发送出去的 ICMP 数据包大小,默认为 56(bytes),再加 8 bytes 的 ICMP 表头资料。
-t,TTL 的数值,默认是 255,每经过一个节点就会少
-M [do|dont] :主要在检测网络的 MTU 数值大小,两个常见的项目是:
do,代表传送一个 DF (Don’t Fragment) 旗标,让数据包不能重新拆包和打包;
dont,代表不要传送 DF 标记,表示数据包能在其他主机上拆包和打包。
范例一:检测一下 168.95.1.1 这部 DNS 主机是否存在?
[root@linux ~]# ping -c 3 168.95.1.1
PING 168.95.1.1 (168.95.1.1) 56(84) bytes of data.
64 bytes from 168.95.1.1: icmp_seq=0 ttl=243 time=9.16 ms
64 bytes from 168.95.1.1: icmp_seq=1 ttl=243 time=8.98 ms
64 bytes from 168.95.1.1: icmp_seq=2 ttl=243 time=8.80 ms
--- 168.95.1.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 8.807/8.986/9.163/0.164 ms, pipe 2
范例二:针对整个网段进行 ping 的追查
[root@linux ~]# ping -c 3 -b 192.168.10.255
WARNING: pinging broadcast address
范例三:找出最大的 MTU 数值
[root@linux ~]# ping -c 2 -s 1000 -M do 192.168.10.10
PING 192.168.10.10 (192.168.10.10) 1000(1028) bytes of data.
1008 bytes from 192.168.10.10: icmp_seq=1 ttl=64 time=0.424 ms
# 如果有响应,那就是能接受这个数据包,如果无响应,那就表示这个 MTU 太大了
[root@linux ~]# ping -c 2 -s 8000 -M do 192.168.10.10
PING 192.168.10.10 (192.168.10.10) 8000(8028) bytes of data.
ping: local error: Message too long, mtu=1500
表5-1 常见的各种接口的MTU值
网络接口
MTU
Ethernet
1500
PPPoE
1492
Dial-up(Modem)
576
4.traceroute
[root@linux ~]# traceroute [-nwig] IP
参数:
-n,能不必进行主机的名称解析,只用 IP ,速度较快。
-w,若对方主机在几秒钟内没有回声就宣告不治...默认是 5 秒。
-i,用在比较复杂的环境,如果你的网络接口非常多非常复杂时,才会用到这个参数。
例如,你有两条 ADSL 能连接到外部,那你的主机会有两个 ppp。
你能使用 -i 来选择是 ppp0 还是 ppp1 啦。
-g,和 -i 的参数相仿,只是 -g 后面接的是 gateway 的 IP
范例一:
[root@linux ~]# traceroute -n tw.yahoo.com
traceroute to tw.yahoo-ap1.akadns.net (203.84.202.164), 30 hops max,
38 byte packets
1 61.59.121.1 42.174 ms 41.690 ms 41.058 ms
2 139.175.172.2 40.962 ms 41.978 ms 40.973 ms
3 192.72.122.130 40.983 ms 41.930 ms 41.003 ms
4 139.175.58.210 42.956 ms 41.997 ms 42.337 ms
5 139.175.58.153 47.591 ms 47.972 ms 48.748 ms
6 139.175.56.30 48.193 ms 47.970 ms 47.986 ms
7 139.175.57.94 47.959 ms 47.951 ms 47.985 ms
8 139.175.56.138 48.363 ms 47.586 ms 47.995 ms
9 139.175.58.42 49.256 ms 50.668 ms 47.490 ms
10 61.58.33.133 201.882 ms 201.565 ms 200.973 ms
11 61.58.33.50 199.910 ms 199.019 ms 198.961 ms
12 203.84.200.226 202.391 ms 202.567 ms 209.283 ms
5.nslookup这条命令的用途和host基本上是相同的
范例一:找出 www.google.com.tw 的 IP
[root@linux ~]# nslookup www.google.com.tw
Server: 168.95.1.1
Address: 168.95.1.1#53
Non-authoritative answer:
www.google.com.tw canonical name = www.google.com.
www.google.com canonical name = www.l.google.com.
Name: www.l.google.com
Address: 64.233.189.104
6.Telnet
[root@linux ~]# Telnet [host|IP] [port]
范例二:检测本机端的port 110 是否正确启动?
[root@linux ~]# Telnet localhost 110
Trying 127.0.0.1...
Telnet: connect to address 127.0.0.1: Connection refused
7.FTP
[root@linux ~]# FTP [-p] [host|IP] [port]
[root@linux ~]# FTP hostname 318
8.tcpdump
[root@linux ~]# tcpdump [-nn] [-i 接口] [-w 储存档名] [-c 次数] [-Ae]
[-qX] [-r 文件] [所欲捕捉的数据内容]
参数:
-nn,直接以 IP 及 Port Number 显示,而非主机名和服务名称。
-i,后面接要「监听」的网络接口,例如 eth0, lo, ppp0 等等的接口。
-w,如果你要将监听所得的数据包数据储存下来,用这个参数就对了。后面接文件名。
-c,监听的数据包数,如果没有这个参数, tcpdump 会持续不断的监听,
直到用户输入 [ctrl]-c 为止。
-A,数据包的内容以 ASCII 显示,通常用来捉取 WWW 的网页数据包资料。
-e,使用资料连接层 (OSI 第二层) 的 MAC 数据包数据来显示。
-q,仅列出较为简短的数据包信息,每一行的内容比较精简。
-X,能列出十六进制 (hex) 及 ASCII 的数据包内容,对于监听数据包内容非常有用。
-r,从后面接的文件将数据包数据读出来。那个「文件」是已存在的文件,
并且这个「文件」是由 -w 所制作出来的
9.nc
[root@linux ~]# nc [IP|host] [port]
[root@linux ~]# nc -l -p [port]
参数:
-l,作为监听之用,亦即开启一个 port 来监听用户的联机。
-p,开启的这个 Port Number。
范例一:连接本地端的 port 25 查阅相关信息
[root@linux ~]# nc localhost 25
localhost.localdomain [127.0.0.1] 25 (smtp) open
220 pc.dm.tsai ESMTP Postfix
ehlo localhost
250-pc.dm.tsai
250-PIPELINING
250-SIZE 40000000
250-ETRN
quit
221 Bye
重 点 回 顾
1修改网络接口的硬件相关参数,能使用ifconfig这个命令,包括MTU等。
2 ifup和ifdown其实只是script,在使用时,会主动去 /etc/sysconfig/network- scripts里找到相对应的设备设置文件,才能够正确地启动和关闭。
3路由的修改和查阅能使用route来查询,此外,route亦可进行新增、删除路由的工作。
4 ip命令能用来作为整个网络环境的设置,利用ip link能修改网络设备的硬件相关功能,包括MTU和MAC等,能使用ip address修改TCP/IP方面的参数,包括IP及网段参数等,ip route则能修改路由。
4ping主要是通过ICMP数据包来进行网络环境的检测工作,并且能使用ping来查询整体网段可接受的最大MTU值。
5监测每个节点的连接状况,能使用traceroute这个命令来追踪。
6 netstat除了能观察本机的启动接口外,还能观察Unix socket的传统接口数据。
7host和nslookup默认都是通过/etc/resolv.conf内设置的DNS主机来进行主机名称和IP的查询。
8 LFTP能用来匿名登录远程的FTP主机。
9Telnet不仅用来进行BBS的登录,也能用来作为某些端口服务的测试。
10lynx主要的功能是浏览,包括本机上HTML语法的文件,wget则主要用来下载WWW的资料。
11捕捉数据包以分析数据包的流向,可使用tcpdump,至于图像界面的ethereal则能进行更为周详的解析。
12通过tcpdump分析3次握手,及分析明文传输的数据,可发现网络加密的重要性。
13nc可用来取代Telnet进行某些服务端口的检测工作,同时若自行编译nc,可额外地执行-e参数。
ifconfig
ifconfig eth0
ifconfig eth0 192.l68.100.100
ifconfig eth0 192.168.100.100 netmask 255.255.255.0 mtu 1500
ifconfig eth0 mtu 1500
ifconfig eth0:0 192.168.100.200
ifconfig eth0:0 up
ifconfig eth0:0 down
/etc/init.d/network restart
/etc/sysconfig/network-scripts/ifcfg-eth0
route -n
route add -net 192.168.100.0 netmask 255.255.255.0 dev eth0
route del -net 169.254.0.0 netmask 255.255.0.0 dev eth0
route add default gw 192.168.100.254
ping -c 3 192.168.100.l00
ping -c 3 -b 192.168.100.255
traceroute -n www.baidu.com
nslookup www.baidu.com
/844
telnet localhost 110
nc -l -p 25
nc localhost 25