linux 常用网络设置

ubuntu系统

配置网络设备

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# 配置网络设备
$ sudo vi /etc/network/interfaces
#
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet manual

auto br0
iface br0 inet static # static静态,dhcp动态自动分配IP
address 192.168.0.10 # IP
netmask 255.255.255.0 # 子网掩码
gateway 192.168.0.1 # 网关
bridge_ports eth0
bridge_stp off
bridge_fd 0
bridge_maxwait 0
dns-nameservers 192.168.0.1 # DNS解析
# ifup br0
# brctl show
bridge name bridge id STP enabled interfaces
br0 8.02a0080e1 no eth0

# 重启网络服务
$ service networking restart
stop: Job failed while stoppingstart: Job is already running: networking

# 从以上日志内容可以看出,传统的service重启和停止网络已经不再支持了,需要通过使用ifdown & ifup来实现相应的操作。
# 重启指定网卡
$ ifdown eth0 && ifup eth0
# 重启除lo网卡的所有网卡:
$ ifdown –exclude=lo -a && sudo ifup –exclude=lo -a

配置DNS

1
2
3
4
5
6
7
# 方法一:修改/etc/network/interfaces(interfaces文件 既能配IP,又能配路由)
# 方法二:修改/etc/resolvconf/resolv.conf.d/base文件,该文件默认是空的,在里面写入(永久生效)
# 方法三、修改/etc/resolv.conf,当然这个方法是临时的,你下一次重启或者重启网络服务之后,就会失效

$ cat /etc/resolvconf/resolv.conf.d/base
nameserver 223.5.5.5
nameserver 114.114.114.114

centos7系统

配置网络设备

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
$ sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=表示物理设备的名字
ONBOOT=yes表示系统启动时激活该设备,no表示不激活
BOOTPROTO=取值可以是static(静态配置)、bootp(使用bootp协议)、dhcp(使用dhcp协议)
BROADCAST=表示广播地址
IPADDR=表示该网卡的IP地址
PREFIX=子网掩码
GATEWAY=表示网关
DNS*=表示DNS
# 例如
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp0s8
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
DEVICE=ifcfg-eth0
ONBOOT=yes
DNS1=114.114.114.114
DNS2=8.8.8.8

# 重启网络服务
$ sudo service network restart

配置DNS

1
2
3
4
5
$ sudo vi /etc/resolv.conf
# Generated by NetworkManager
domain localdomain
search localdomain
nameserver 172.16.127.2 #你的DNS主机,可以配置多个

配置主机名称

1
2
3
4
5
6
7
8
# 查看主机名称
$ hostname
host01

# 配置主机名称
# 注意不能hostname不能包含下划线(可以包含中划线)
$ sudo vim /etc/hostname
host-test01

配置本地ip解析

1
2
3
4
5
6
7
8
$ sudo vim /etc/hosts

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.56.104 host01
192.168.56.105 host02
192.168.56.106 host03

常用网络诊断命令

基本工具ifconfig

网络诊断的第一步,是了解自己的设备,比如有哪些接口,IP地址都是什么。
ifconfig命令可以显示网络接口(interface)信息。如接口名称,接口类型,接口的IP地址,硬件的MAC地址等。

1
2
3
4
5
6
7
8
9
$ ifconfig enp0s8
enp0s8: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.56.101 netmask 255.255.255.0 broadcast 192.168.56.255
inet6 fe80::6163:e383:f5e:1c85 prefixlen 64 scopeid 0x20<link>
ether xx:xx:27:8f:b1:58 txqueuelen 1000 (Ethernet)
RX packets 51653 bytes 26669578 (25.4 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 28899 bytes 10183401 (9.7 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

注意:
其实ifconfig、netstat、traceroute在centos7中全部由新指令代替,如下:

1
2
3
4
ifconfig          ==>  ip addr, ip [-s] link
ifconfig eth1 up ==> ip l set eth1 up
netstat ==> ss [-ltu]
traceroute ==> tracepath 192.168.1.1

如果还想用centos6的相关命令,只需要安装以下程序即可:

1
2
3
4
5
6
7
8
9
# 寻找程式所属套件
$ yum provides ifconfig
$ yum whatprovides ifconfig

# 安装ifconfig和netstat等
$ yum install net-tools

# 安装traceroute
$ yum install traceroute

局域网内部地址解析协议arp

1
2
3
4
5
# 查看本地存储的IP-MAC对应关系
$ arp -a
? (192.168.56.1) at xx:xx:27:00:00:00 [ether] on enp0s8
? (192.168.56.100) at xx:xx:27:28:da:18 [ether] on enp0s8
gateway (10.0.2.2) at xx:xx:00:12:35:02 [ether] on enp0s3

网络层ping

  • ping是向某个IP地址发送ICMP协议的ECHO_REQUEST请求,许多设备会禁用ICMP。如果ping不到一个设备,并不一定是网络层故障
  • 如果两个设备有相同的IP地址,将导致IP冲突。许多网络中是由DHCP协议自动分配IP地址的,这样可以极大的减少IP冲突的可能性。
  • DHCP服务器与设备达成协议,设备将在一定时间内占据某个IP地址,而DHCP服务器不再把该IP地址分配给别人。
1
$ ping 192.168.1.1

路由netstat和traceroute

局域网通过路由器,接入广域的互联网。互联网上的通信往往要经过多个路由器接力。途中路由器的故障,可能导致互联网访问异常。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 显示路由表。从路由表中可以找到网关(Gateway)。网关是通向更加广域网络的出口
$ netstat -nr
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 10.0.2.2 0.0.0.0 UG 0 0 0 enp0s3
10.0.2.0 0.0.0.0 255.255.255.0 U 0 0 0 enp0s3
192.168.56.0 0.0.0.0 255.255.255.0 U 0 0 0 enp0s8

# 追踪到达某个IP目的地的全程路由
$ traceroute -I baidu.com
traceroute to baidu.com (220.181.57.216), 30 hops max, 60 byte packets
1 gateway (10.0.2.2) 0.674 ms 0.233 ms 0.175 ms
2 10.2.8.1 (10.2.8.1) 10.700 ms 10.552 ms *
3 10.2.1.254 (10.2.1.254) 3.640 ms 3.650 ms 3.664 ms
4 219.143.102.149 (219.143.102.149) 6.662 ms 6.626 ms 6.890 ms
5 bj141-135-129.bjtelecom.net (219.141.135.129) 6.465 ms 6.916 ms 6.880 ms
6 * * *
7 * * *
8 * * *
9 * * *
10 * * *
11 * * *
12 * * *
13 220.181.57.216 (220.181.57.216) 7.479 ms 7.400 ms 8.182 ms