Linux 网络配置

网际协议第四版(IPv4),IP地址由4个字节(32位)组成。人们为了方便,常用点四分组序列来表示一个IP地址,形如a.b.c.d,比如192.168.1.1。a和d的范围都是1~254,b和c的范围都是0~255。

1. 查看本机IP地址

ifconfig 或者 ip addr 

centos 7 没有ifconfig 命令需要用 yum install net-tools安装,如果不知道安装哪个包可以用命令 yum provides ifconfig查看。 ip addr 功能更强大。

[root@docker112 ~]# ifconfig
eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.108  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::20c:29ff:fe96:3d66  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:96:3d:66  txqueuelen 1000  (Ethernet)
        RX packets 143  bytes 16862 (16.4 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 87  bytes 6707 (6.5 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eno33554992: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.174.141  netmask 255.255.255.0  broadcast 192.168.174.255
        inet6 fe80::20c:29ff:fe96:3d70  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:96:3d:70  txqueuelen 1000  (Ethernet)
        RX packets 1066  bytes 73465 (71.7 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 144  bytes 21527 (21.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 0  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
 其中eno16777736、eno33554992是网卡设备名。lo是一个虚拟网络接口,指向自己。一块网卡上也可以配置多个地址,Redhat/centos在/etc/sysconfig/network-scripts目录有一个与之对应的配置文件。如eno33554992有一个ifcfg-eno33554992文件
[root@docker112 network-scripts]# pwd
/etc/sysconfig/network-scripts
[root@docker112 network-scripts]# ls -l ifcfg-eno33554992
-rw-r--r-- 1 root root 335 10月 17 03:57 ifcfg-eno33554992
[root@docker112 network-scripts]# more ifcfg-eno33554992
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eno33554992
UUID=1ddcb28a-33b3-4eaf-bade-7f84af7ee837
DEVICE=eno33554992
ONBOOT=yes
IPADDR=192.168.174.141
NETMASK=255.255.255.0
[root@docker112 network-scripts]# 
增加一个配置文件ifcfg-eno33554992:0,用ifdown和 ifup重启网卡,增加的ip就生效了

cp ifcfg-eno33554992 ifcfg-eno33554992:0
[root@docker112 network-scripts]# cat ifcfg-eno33554992:0
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eno33554992:0
UUID=1ddcb28a-33b3-4eaf-bade-7f84af7ee837
DEVICE=eno33554992:0
ONBOOT=yes
IPADDR=192.168.175.141
NETMASK=255.255.255.0
[root@docker112 network-scripts]# 
ifdown ifcfg-eno33554992 && ifup ifcfg-eno33554992

用mii-tool工具可以查看网卡连接

[root@docker112 network-scripts]# mii-tool eno16777736
eno16777736: negotiated 1000baseT-FD flow-control, link ok
[root@docker112 network-scripts]# 

2. 路由

直观地理解,一个子网就是一组相互连接的、有序排列的IP地址的主机。能够将数据从一个子网送到另一个子网的主机叫做路由器(也叫网关)。一个子网内的主机可以直接访问同一子网内的其它主机,但要访问其它子网的主机就需要通过路由器或网关。因此每台主机上都有路由表,用route -n 可以打印路由表。

[root@docker112 network-scripts]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    100    0        0 eno16777736
192.168.1.0     0.0.0.0         255.255.255.0   U     100    0        0 eno16777736
192.168.174.0   0.0.0.0         255.255.255.0   U     100    0        0 eno33554992
192.168.175.0   0.0.0.0         255.255.255.0   U     100    0        0 eno33554992
[root@docker112 network-scripts]# 
Destination表示网络号,Genmask表示子网掩码。每一行的Flags都有一个U,表示都是活动的。第一行的Flags有一个G表示需要通过192.168.1.1才能到达。发包个191.168.1.1机器时,内核判断195.168.1.0/24与地址192.168.1.1共用了24个地址位,而0.0.0.0共用了0个地址位,所以优先选第二条。第一条路由0.0.00/24能匹配所有IP,称为默认路由,Geteway对应的地址称为默认网关。

用route add 增加路由,用route del删除路由。centos7可用 ip route来操作。

[root@docker112 network-scripts]# route add -net 192.168.11.0/24 gw 192.168.1.3
[root@docker112 network-scripts]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.1.1     0.0.0.0         UG    100    0        0 eno16777736
192.168.1.0     0.0.0.0         255.255.255.0   U     100    0        0 eno16777736
192.168.11.0    192.168.1.3     255.255.255.0   UG    0      0        0 eno16777736
192.168.174.0   0.0.0.0         255.255.255.0   U     100    0        0 eno33554992
192.168.175.0   0.0.0.0         255.255.255.0   U     100    0        0 eno33554992
[root@docker112 network-scripts]# 

3. ping、traceroute、host和nslookup

ping 最常见的网络调试工具,它发送ICMP报文给一台主机,接收者会回送报文。

[root@docker112 network-scripts]# ping www.163.com
PING 163.xdwscache.ourglb0.com (58.222.19.61) 56(84) bytes of data.
64 bytes from 58.222.19.61: icmp_seq=1 ttl=56 time=8.78 ms
64 bytes from 58.222.19.61: icmp_seq=2 ttl=56 time=9.10 ms
64 bytes from 58.222.19.61: icmp_seq=3 ttl=56 time=9.16 ms
^C
发送的报文56byte,包括头部为84byte,返回的报文为发送的报文+8,如果漏掉序号,则表示网络出问题。

traceroute显示数据包到达目标主机的路径,但有一些路由会拒绝返回这些信息。

[root@docker112 network-scripts]# traceroute -n www.163.com
traceroute to www.163.com (58.222.19.61), 30 hops max, 60 byte packets
 1  192.168.1.1  4.172 ms  4.223 ms  4.234 ms
 2  * * *
 3  * * *
 4  * * *
 5  * * *
 6  * * *
 7  * * *
 8  * * *
 9  * * *
10  * * *
11  * * *
12  * * *
13  * * *
14  * * *
15  * * *
16  * * *
17  * * *^C
[root@docker112 network-scripts]# 
host和nslookup根据主机名返会主机的地址

[root@docker112 network-scripts]# host www.163.com
www.163.com is an alias for www.163.com.lxdns.com.
www.163.com.lxdns.com is an alias for 163.xdwscache.ourglb0.com.
163.xdwscache.ourglb0.com has address 222.186.132.123
163.xdwscache.ourglb0.com has address 58.222.19.61
163.xdwscache.ourglb0.com has address 222.184.34.54
[root@docker112 network-scripts]# nslookup www.163.com
Server:         192.168.1.1
Address:        192.168.1.1#53

Non-authoritative answer:
www.163.com     canonical name = www.163.com.lxdns.com.
www.163.com.lxdns.com   canonical name = 163.xdwscache.ourglb0.com.
Name:   163.xdwscache.ourglb0.com
Address: 222.186.132.123
Name:   163.xdwscache.ourglb0.com
Address: 58.222.19.61
Name:   163.xdwscache.ourglb0.com
Address: 222.184.34.54
4. NetworkManager

NetworkManager是一个守护进程,自动配置网络。nmcli是管理NetworkManager的命令行工具。

[root@docker112 network-scripts]# service NetworkManager status
Redirecting to /bin/systemctl status  NetworkManager.service
● NetworkManager.service - Network Manager
   Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; vendor preset: enabled)
   Active: active (running) since 一 2016-10-17 03:57:36 CST; 3h 43min ago
 Main PID: 696 (NetworkManager)
   CGroup: /system.slice/NetworkManager.service
           ├─696 /usr/sbin/NetworkManager --no-daemon
           └─721 /sbin/dhclient -d -q -sf /usr/libexec/nm-dhcp-helper -pf /var/run/dhclient-eno16777736.pid -lf /var/lib/NetworkManager/dhclient-ce5b2d02-...
[root@docker112 network-scripts]# tree /etc/NetworkManager
/etc/NetworkManager
├── conf.d
│   └── 10-ibft-plugin.conf
├── dispatcher.d
│   ├── 00-netreport
│   ├── 11-dhclient
│   ├── pre-down.d
│   └── pre-up.d
├── dnsmasq.d
├── NetworkManager.conf
├── system-connections
└── VPN

7 directories, 4 files
[root@docker112 network-scripts]# 
5.域名查找相关的配置文件

/etc/hosts 主机名查找

/etc/resolv.conf 指定DNS服务器

[root@docker112 network-scripts]# more /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.1.1
[root@docker112 network-scripts]# 

/etc/nsswitch.conf 优先级设定

6.端口

同一台主机上,不同的网络应用使用不同的端口。用netstat命令可以查看。

[root@docker112 network-scripts]# netstat -tunlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      971/sshd            
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1050/master         
tcp6       0      0 :::22                   :::*                    LISTEN      971/sshd            
tcp6       0      0 ::1:25                  :::*                    LISTEN      1050/master         
udp        0      0 0.0.0.0:68              0.0.0.0:*                           721/dhclient        
udp        0      0 0.0.0.0:2449            0.0.0.0:*                           721/dhclient        
udp6       0      0 :::42899                :::*                                721/dhclient        
[root@docker112 network-scripts]# 
/etc/services文件中定义的网络服务的端口。





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值