2018-11-19 Ubuntu linux网络设置排错

网络相关常用命令 - 基于Ubuntu 16.04以上版本

ifconfig   — 查看网卡信息

lspci | grep -I eth  — 查看网卡硬件

Ethtool <网卡名>  —查看网卡详细信息

sudo ip link ls <网卡名>  —查看网卡状态

sudo ip link set <网卡名> up  —启动网卡

iptables -L -nv   —查看防火墙设置

service iptables status  —查看防火墙状态

Iptables -F  —关闭防火墙

ufw status  —ufw防火墙状态

ufw disable —关闭防火墙

/etc/init.d/networking restart  —重启网络

service networking restart   —重启网络

网卡配置文件: /etc/network/interfaces

DNS配置文件: /etc/resolv.conf  或者 /etc/resolvconf/resolv.conf.d/head 文件

ufw防火墙配置文件: /etc/ufw/before.rules 

如果网络Ping不通,从硬件到软件依次检查:

1、使用 ifconfg可以看到目前的卡配置,物理网卡,虚拟网卡等信息,

2、使用lspci | grep -I eth, 如下,看到我的服务器有6块网卡,4块GE和2块10G

root@hs01:~#  lspci | grep -i eth

02:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5720 Gigabit Ethernet PCIe

02:00.1 Ethernet controller: Broadcom Corporation NetXtreme BCM5720 Gigabit Ethernet PCIe

03:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5720 Gigabit Ethernet PCIe

03:00.1 Ethernet controller: Broadcom Corporation NetXtreme BCM5720 Gigabit Ethernet PCIe

05:00.0 Ethernet controller: Broadcom Corporation NetXtreme II BCM57810 10 Gigabit Ethernet (rev 10)

05:00.1 Ethernet controller: Broadcom Corporation NetXtreme II BCM57810 10 Gigabit Ethernet (rev 10)

用ehtool <网卡名>命令来显示网卡详细信息:

root@hs01:~# ethtool eno1

Settings for eno1:

    Supported ports: [ TP ]

    Supported link modes:   10baseT/Half 10baseT/Full

                            100baseT/Half 100baseT/Full

                            1000baseT/Half 1000baseT/Full

    Supported pause frame use: No

    Supports auto-negotiation: Yes

    Advertised link modes:  10baseT/Half 10baseT/Full

                            100baseT/Half 100baseT/Full

                            1000baseT/Half 1000baseT/Full

    Advertised pause frame use: Symmetric

    Advertised auto-negotiation: Yes

    Link partner advertised link modes:  10baseT/Half 10baseT/Full

                                         100baseT/Half 100baseT/Full

                                         1000baseT/Half 1000baseT/Full

    Link partner advertised pause frame use: No

    Link partner advertised auto-negotiation: Yes

    Speed: 1000Mb/s

    Duplex: Full

    Port: Twisted Pair

    PHYAD: 1

    Transceiver: internal

    Auto-negotiation: on

    MDI-X: on

    Supports Wake-on: g

    Wake-on: d

    Current message level: 0x000000ff (255)

                   drv probe link timer ifdown ifup rx_err tx_err

    Link detected: yes

root@hs01:~#

3、检查网卡是否up (这里我的网卡是eno1,你的可能是eth0,eth1,或者其他)

root@hs01:~# sudo ip link ls eno1
2: eno1:  mtu 1500 qdisc mq state **UP** mode DEFAULT group default qlen 1000
    link/ether d0:94:66:1e:e4:84 brd ff:ff:ff:ff:ff:ff

如果显示状态是“DOWN”,可以尝试使用

sudo ip link set eno0 up 命令来启动

4、检查网卡配置文件

IP地址,网关,DNS这些在配置文件里,检查每项数据是否正确,子网掩码,网关等

下面范例配置了主接口和子接口地址:

root@hs01:~# vim /etc/network/interfaces

# This file describes the network interfaces available on your system

# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface

auto lo

iface lo inet loopback

# The primary network interface

auto br0 br0:1

iface br0 inet **static**

        address 192.168.1.42

        netmask 255.255.255.252

        network 192.168.1.40

        broadcast 192.168.1.43

        gateway 192.168.1.41

        # dns-* options are implemented by the resolvconf package, if installed

        dns-nameservers 8.8.8.8

#       dns-search thn.lon

        bridge_ports enp5s0f0

        bridge_stp off

        bridge_fd 0

        bridge_maxwait 0

iface br0:1 inet static

        address 192.168.1.65

        network 192.168.1.64

        netmask 192.168.1.240

这里配置的是静态IP地址,配完后重启网络,Ping自己地址看看是否能通,再Ping网关检查是否能通。

如果配置的是DHCP,要用ifconfig看是否获取到IP地址,如果获取不到,可能是路由或者链路问题,也可能是ICMP禁止ping。如果DHCP服务器能Ping通却获取不到地址,需要联系DHCP服务器管理员,或者找网关查下路由器DHCP relay的配置。

这是如果可以的话,找网关要一个测试的静态地址,看静态地址能不能通,以排除和定位DHCP服务器问题。

5、下一步,如过Ping网关能通,Ping不通DNS服务器地址,那么ping一下网内其他机器地址,用排除法确认是否DNS服务器本身的问题。也可以用traceroute <服务器地址>或 mtr -n <服务器地址>来看下路由对不对。

如果IP地址没错,Ping网关也能通,ping DNS服务器也能通,就是不解析,那我们要查看DNS服务配置文件。

先看下dns服务器配置信息,下面是我机器上的正常输出:

root@hs01:~# nslookup 8.8.8.8

Server:        8.8.8.8

Address:    8.8.8.8#53

Non-authoritative answer:

8.8.8.8.in-addr.arpa    name = [google-public-dns-a.google.com](http://google-public-dns-a.google.com).

Authoritative answers can be found from:

root@hs01:~#

检查配置文件

root@hs01:~# cat /etc/resolv.conf

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)

#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN

nameserver 8.8.8.8

root@hs01:~#

如果没有nameserver配置,没有的话补上

Vim /etc/resolv.conf

重启网络。但如果改完后重启网络发现这个文件里面刚才写入的DNS服务器地址不见了,去改 /etc/resolvconf/resolv.conf.d/head ,增加nameserver x.x.x.x语句,再重启网络,一般就好了。

6、外网Ping自己不通,检查防火墙配置,检查防火墙命令要用sudo命令或root用户

iptables -L 显示现有防火墙策略,查看是否允许ICMP,可以尝试iptables -F 关闭防火墙再试试通不通。

如果没有启用iptables,而是用了ufw,则使用ufw status查看状态,关闭ufw使用 sudo ufw disable命令

root@hs01:~# ufw status

Status: active

To                         Action      From

--                         ------      ----

443                        ALLOW       Anywhere

22                         ALLOW       Anywhere

5901                       ALLOW       Anywhere

443 (v6)                   ALLOW       Anywhere (v6)

22 (v6)                    ALLOW       Anywhere (v6)

5901 (v6)                  ALLOW       Anywhere (v6)

编辑ufw规则文件

sudo vim /etc/ufw/before.rules

其中

-A ufw-before-input -p icmp --icmp-type echo-request -j ACCEPT  表示允许Ping

-A ufw-before-input -p icmp --icmp-type echo-request -j DROP      表示不允许ping

你可能感兴趣的:(2018-11-19 Ubuntu linux网络设置排错)