首页 > 代码库 > Linux网络服务01——Linux网络基础设置

Linux网络服务01——Linux网络基础设置

Linux网络服务01——Linux网络基础设置

查看及测试网络

1、使用ifconfig命令查看网络接口

1)查看活动的网络接口

ifconfig命令

[root@crushlinux ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:D5:3A:FA
inet addr:192.168.200.100 Bcast:192.168.200.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fed5:3afa/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3510 errors:0 dropped:0 overruns:0 frame:0
TX packets:2254 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:320405 (312.8 KiB) TX bytes:294293 (287.3 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:34 errors:0 dropped:0 overruns:0 frame:0
TX packets:34 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2312 (2.2 KiB) TX bytes:2312 (2.2 KiB)

2)查看所有网络接口

ifconfig -a命令

[root@crushlinux ~]# ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:0C:29:D5:3A:FA
inet addr:192.168.200.100 Bcast:192.168.200.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fed5:3afa/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3558 errors:0 dropped:0 overruns:0 frame:0
TX packets:2280 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:324735 (317.1 KiB) TX bytes:298245 (291.2 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:34 errors:0 dropped:0 overruns:0 frame:0
TX packets:34 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2312 (2.2 KiB) TX bytes:2312 (2.2 KiB)

3)查看指定的网络接口(不论该网络接口是否处于激活状态)

ifconfig 设备名

 

[root@crushlinux ~]# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:0C:29:D5:3A:FA
inet addr:192.168.200.100 Bcast:192.168.200.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fed5:3afa/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3621 errors:0 dropped:0 overruns:0 frame:0
TX packets:2317 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:330471 (322.7 KiB) TX bytes:303395 (296.2 KiB)

4ifconfig命令包含的信息:

Link encapEthernet以太网  HWaddr:物理地址(MAC地址)

inet addrIPv4地址  Bcast:广播地址   Mask:子网掩码

inet6 addrIPv6地址

MTU:最大传输单元(Maximum Transmission Unit  Metric:跳跃点

RX packets:接收数据包 errors:错误  dropped:丢弃  overruns:过载  frame:帧数

TX packets:发送数据包 errors:错误  dropped:丢弃  overruns:过载  carrier:载波

collisions:冲撞  txqueuelen:发送列队长度

RX bytes:接收字节数  TX bytes:发送字节数

 

2、使用ipethtool命令查看网络接口

1)查看网络接口的数据链路层信息

ip link命令

 

[root@crushlinux ~]# ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:d5:3a:fa brd ff:ff:ff:ff:ff:ff

2)查看网络接口的网络层信息

ip aip address)命令

 

[root@crushlinux ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:d5:3a:fa brd ff:ff:ff:ff:ff:ff
inet 192.168.200.100/24 brd 192.168.200.255 scope global eth0
inet 192.168.1.101/24 brd 192.168.1.255 scope global eth0
inet6 fe80::20c:29ff:fed5:3afa/64 scope link
valid_lft forever preferred_lft forever

3)查看指定网络接口速率、模式等信息

ethtool命令

[root@crushlinux ~]# ethtool eth0
Settings for eth0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
MDI-X: Unknown
Supports Wake-on: d
Wake-on: d
Current message level: 0x00000007 (7)
drv probe link
Link detected: yes

3、查看主机名、路由表

1hostname命令查看主机名称

[root@crushlinux ~]# hostname
crushlinux.bt.com

2)查看路由表

1>使用route命令查看路由表

[root@crushlinux ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.3.0 192.168.200.2 255.255.255.0 UG 0 0 0 eth0
192.168.2.0 192.168.200.2 255.255.255.0 UG 0 0 0 eth0
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
192.168.200.0 * 255.255.255.0 U 0 0 0 eth0
link-local * 255.255.0.0 U 1002 0 0 eth0
default 192.168.200.2 0.0.0.0 UG 0 0 0 eth0
default 192.168.200.2 0.0.0.0 UG 0 0 0 eth0

2>使用netstat -r命令查看路由表

[root@crushlinux ~]# netstat -r
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
192.168.3.0 192.168.200.2 255.255.255.0 UG 0 0 0 eth0
192.168.2.0 192.168.200.2 255.255.255.0 UG 0 0 0 eth0
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
192.168.200.0 * 255.255.255.0 U 0 0 0 eth0
link-local * 255.255.0.0 U 0 0 0 eth0
default 192.168.200.2 0.0.0.0 UG 0 0 0 eth0
default 192.168.200.2 0.0.0.0 UG 0 0 0 eth0

 

-n:不执行DNS反向查找,直接显示数字形式的IP地址

 

[root@crushlinux ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.3.0 192.168.200.2 255.255.255.0 UG 0 0 0 eth0
192.168.2.0 192.168.200.2 255.255.255.0 UG 0 0 0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.200.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 1002 0 0 eth0
0.0.0.0 192.168.200.2 0.0.0.0 UG 0 0 0 eth0
0.0.0.0 192.168.200.2 0.0.0.0 UG 0 0 0 eth0
[root@crushlinux ~]# netstat -rn
Kernel IP routing table
Destination  Gateway Genmask Flags MSS Window irtt Iface
192.168.3.0 192.168.200.2 255.255.255.0 UG 0 0 0 eth0
192.168.2.0 192.168.200.2 255.255.255.0 UG 0 0 0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.200.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.200.2 0.0.0.0 UG 0 0 0 eth0
0.0.0.0 192.168.200.2 0.0.0.0 UG 0 0 0 eth0

4、查看网络连接情况  netstat命令

1)常用选项:

-a:显示当前主机中所有活动的网络连接信息

-n:以数字的形式显示相关信息

-r:显示路由表信息

-t:显示TCP协议相关的信息

-u:显示UDP协议相关的信息

-p:显示与网络连接相关的进程号、进程名称信息(需要root权限)

2)示例:

 

[root@crushlinux ~]# netstat -anpt
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1285/rpcbind
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN

 

[root@crushlinux ~]# netstat -anpu
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
udp 0 0 0.0.0.0:111 0.0.0.0:* 1285/rpcbind
udp 0 0 0.0.0.0:631 0.0.0.0:*

 

[root@crushlinux ~]# netstat -anptu
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1285/rpcbind
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 1656/vsftpd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN

 

 

5pingtraceroutenslookup命令

1)测试网络连通性  ping命令

1>常用选项:

-c:指定发送数据包的个数

-i:当ping通时,指定间隔多少秒发送下一个数据包

-w:当ping不通时,指定发送的每个数据包的超时时间,单位秒

-s:指定数据包大小

 

2>示例:

[root@crushlinux ~]# ping 192.168.200.100
PING 192.168.200.100 (192.168.200.100) 56(84) bytes of data.
64 bytes from 192.168.200.100: icmp_seq=1 ttl=64 time=0.019 ms
64 bytes from 192.168.200.100: icmp_seq=2 ttl=64 time=0.023 ms
64 bytes from 192.168.200.100: icmp_seq=3 ttl=64 time=0.048 ms
^X64 bytes from 192.168.200.100: icmp_seq=4 ttl=64 time=0.046 ms
^C
--- 192.168.200.100 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3174ms
rtt min/avg/max/mdev = 0.019/0.034/0.048/0.013 ms

 

 

[root@crushlinux ~]# ping -c 2 192.168.200.100
PING 192.168.200.100 (192.168.200.100) 56(84) bytes of data.
64 bytes from 192.168.200.100: icmp_seq=1 ttl=64 time=0.048 ms
64 bytes from 192.168.200.100: icmp_seq=2 ttl=64 time=0.025 ms

--- 192.168.200.100 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1014ms
rtt min/avg/max/mdev = 0.025/0.036/0.048/0.013 ms

 

[root@crushlinux ~]# ping -c 4 -i 0.1 192.168.200.100
PING 192.168.200.100 (192.168.200.100) 56(84) bytes of data.
64 bytes from 192.168.200.100: icmp_seq=1 ttl=64 time=0.015 ms
64 bytes from 192.168.200.100: icmp_seq=2 ttl=64 time=0.023 ms
64 bytes from 192.168.200.100: icmp_seq=3 ttl=64 time=0.030 ms
64 bytes from 192.168.200.100: icmp_seq=4 ttl=64 time=0.040 ms

--- 192.168.200.100 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 319ms
rtt min/avg/max/mdev = 0.015/0.027/0.040/0.009 ms

 

[root@crushlinux ~]# ping -c 2 -w 2 192.168.2.2
PING 192.168.2.2 (192.168.2.2) 56(84) bytes of data.

--- 192.168.2.2 ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 2000ms

 

2)跟踪数据包的路由途径  traceroute命令

-n:不执行DNS反向查找,直接显示数字形式的IP地址

[root@crushlinux ~]# traceroute -n www.baidu.com
traceroute to www.baidu.com (192.168.200.100), 30 hops max, 60 byte packets
1 192.168.200.100 0.016 ms 0.003 ms 0.003 ms

【课外补充】

1windows中的tracert命令

dos中输入tracert -d-d 不将地址解析成主机名) 

技术分享

 

技术分享 

2、常见的TTLTime To Live)生存周期值:

windows128

linux64

unix255

cisco255

 

 

3)测试DNS域名解析  nslookup命令

 技术分享

设置网络地址参数

1、临时修改网络配置

1)方法一:ifconfig 网络设备 IP地址/短格式子网掩码

2)方法二:ifconfig 网络设备 IP地址 netmask 子网掩码

3)示例:

技术分享

 技术分享

2、固定修改网络配置

1)配置文件:/etc/sysconfig/network-scripts/目录下的ifcfg-对应网络设备名称,默认第一块网卡为eth0

2)编辑配置文件:前面带#表示非必要配置内容

DEVICE=eth0  设备名

      HWADDR=00:0C:29:8F:D8:E0  物理地址(MAC地址)

      TYPE=Ethernet  类型(以太网)

      UUID=da840b8c-a2d8-4a09-83a8-50d5437c3ba3  UUID

      ONBOOT=yes  是否开机自动启用

      NM_CONTROLLED=no  图形化管理控制,是network manger的参数

      #BOOTPROTO=dhcp 自动获取;BOOTPROTO=static 手动配置

     BOOTPROTO=static  引导协议(dhcp:自动获取;static/none:手动配置)

     IPADDR=192.168.1.108  IPv4协议的IP地址

     NETMASK=255.255.255.0  子网掩码

     GATEWAY=192.168.1.1  网关

     #USERCTL=no  是否允许非root用户控制该设备

#IPV6INIT=no  是否启用IPv6协议

     #DNS1=202.106.46.151  DNS域名解析服务

 

3)示例:

 

 

 

3、临时设置网卡子接口

1)方法:ifconfig 网络设备:子接口名称 IP地址/短格式子网掩码

2)示例:

[root@www ~]# ifconfig eth0:0 192.168.200.102/24

[root@www ~]# ifconfig eth0:sec 192.168.100.102/24

 

 

[root@crushlinux ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:D5:3A:FA
inet addr:192.168.200.100 Bcast:192.168.200.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fed5:3afa/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:5105 errors:0 dropped:0 overruns:0 frame:0
TX packets:3252 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:469740 (458.7 KiB) TX bytes:431874 (421.7 KiB)

eth0:0 Link encap:Ethernet HWaddr 00:0C:29:D5:3A:FA
inet addr:192.168.200.102 Bcast:192.168.200.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

eth0:sec Link encap:Ethernet HWaddr 00:0C:29:D5:3A:FA
inet addr:192.168.100.102 Bcast:192.168.100.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

4、永久设置网卡子接口

1)方法:需要在/etc/sysconfig/network-scrips/目录下手动添加配置文件

2)示例:

[root@www ~]# cd /etc/sysconfig/network-scripts/

[root@www network-scripts]# cp ifcfg-eth0 ifcfg-eth0:0

技术分享

 

技术分享 

5、临时修改网卡的状态

1)方法:ifconfig 网络设备 up/down

2)示例:

[root@www ~]# ifconfig eth1 up

[root@www ~]# ifconfig eth0:0 down

 

6、重新加载网络配置文件

1)重启网络服务以实现重新读取配置文件的目的

1>方法:/etc/init.d/network restart

2>示例:

 技术分享

2)修改某块网卡配置后,仅重启该网卡

1>格式:ifdown 网络设备;ifup 网络设备

2>示例

技术分享

三、修改主机名

1、临时修改主机名

1)方法:

hostname 新的主机名

bash

2)示例:

 技术分享

2、永久修改主机名

1)方法:vi编辑/etc/sysconfig/network配置文件,重启后生效

2)示例:

 技术分享

[root@123 ~]# reboot

 

四、配置路由

1、临时配置路由

1)临时添加、删除指定网段的路由记录

1>方法:route add -net 网段/短格式子网掩码 gw 网关地址

route del -net网段/短格式子网掩码

2>示例:

 

技术分享

2)临时添加、删除默认网关记录

1>方法:route add default gw 网关地址

route del default gw 网关地址

2>示例:

 

【添加默认网关记录】

 技术分享

 

【删除默认网关记录】

 

 技术分享

2、永久配置路由

1)方法一:在/etc/rc.local中添加

示例:

 技术分享

保存退出,重启

 

 

2)方法二:在/etc/sysconfig/network中添加到末尾

注意:网卡的配置文件中如果有设置了网关,该文件优先级高于此配置文件

示例:

技术分享

技术分享

技术分享

技术分享 

 

 

 

3)方法三:修改/etc/sysconfig/static-routes配置文件(没有该文件手动建立)

示例:

技术分享

技术分享

技术分享 

 

4)方法四:开启IP转发(路由功能)

1>  echo “1”>/proc/sys/net/ipv4/ip_forward (临时开启)

2>  vi /etc/sysctl.conf net.ipv4.ip_forward=0改为1(永久开启)

sysctl -p (使sysctl.conf文件立即生效)

示例:

【临时开启IP转发功能】

技术分享 

【永久开启IP转发功能】

技术分享 

使sysctl.conf配置文件立即生效:

技术分享

五、设置DNS域名解析

1、设置DNS域名解析

1)方法一:vi编辑/etc/sysconfig/network-scripts/目录下网络设备的配置文件

示例:

技术分享 

2)方法二:vi编辑/etc/resolv.conf文件

示例:

技术分享 

保存退出,此文件修改后立即生效。

 

2、域名解析本地主机映射文件

1)方法:vi编辑/etc/hosts文件

 

2)说明:/etc/hosts文件优先于DNS域名解析服务,也就是说,如果一个域名在hosts文件中已存在映射关系,将不再通过DNS服务器进行域名解析。hosts文件中一个ip地址可以对应多个域名或者别名。

3)示例:

技术分享

 

技术分享 

原本可以ping通的www.baidu.com,现在ping不同了

 

Linux网络服务01——Linux网络基础设置