linux网络配置完全解析

概述:熟悉了windows下面的网络配置,对linux下的网络配置缺未必了解透彻。熟练掌握linux下的网络配置原理,能帮助我们更容易掌握网络传输原理;同时具备一些网络连接不通对应问题的排查能力。文本主要为你讲解网络连接的基本原理,配置方法,常见错误的解决方法等。

一、网络连接的基本原理

1)物理层面:首先保证你的pc具备连接到internet的基本物理链路,网卡

2)软件层面:网卡mac地址,ip地址,路由表,dns服务器

3)链接过程:

数据包的流动顺序如下:

本地应用程序——网卡——网关——外部路由器——目的主机

可以使用linux下的traceroute查看:

 1  10.10.18.254 (10.10.18.254)  0.523 ms  0.745 ms  0.929 ms 2  159.226.41.190 (159.226.41.190)  4.881 ms  4.918 ms  5.088 ms 3  192.168.200.1 (192.168.200.1)  5.516 ms  5.586 ms  5.507 ms 4  159.226.43.36 (159.226.43.36)  6.483 ms  6.179 ms  6.659 ms 5  192.168.46.49 (192.168.46.49)  5.858 ms  5.635 ms  5.844 ms 6  159.226.253.77 (159.226.253.77)  6.136 ms  1.811 ms  5.088 ms 7  159.226.253.46 (159.226.253.46)  28.114 ms  28.009 ms  28.049 ms 8  219.142.17.37 (219.142.17.37)  8.392 ms  7.493 ms  8.678 ms 9  219.142.9.110 (219.142.9.110)  832.102 ms  832.619 ms  832.096 ms<span style="font-size:14px;"></span>

其中,本地应用程序数据能否发送到网卡取决于内核;

网卡能否发送到网关——》网卡ip配置和本机路由表配置

网卡能否发送到路由器——》网关配置

外部路由器能否发送到目的主机——》路由配置情况和目的主机

2.配置方法

1 )测试网卡与整个内核的网络服务是否正常:ping localhost

这个命令是ping本机,如果畅通,说明网卡和内核提供的相关服务是正常的,这一点一般都可以满足

2)测试与网关的连接是否畅通

在终端输入route -n命令,可以查看默认网关地址,然后ping这个地址查看相关ip地址和mac地址

br0       Link encap:Ethernet  HWaddr 00:25:90:63:84:6A            inet addr:10.10.129.92  Bcast:10.10.129.255  Mask:255.255.255.0          inet6 addr: 2001:470:f822:d0:225:90ff:fe63:846a/64 Scope:Global          inet6 addr: 2001:cc0:2026:c000:225:90ff:fe63:846a/64 Scope:Global          inet6 addr: fe80::225:90ff:fe63:846a/64 Scope:Link          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1          RX packets:584156 errors:0 dropped:0 overruns:0 frame:0          TX packets:62887 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:0           RX bytes:57043629 (54.4 Mb)  TX bytes:60873751 (58.0 Mb)eth0      Link encap:Ethernet  HWaddr 00:25:90:63:84:6A            inet6 addr: 2001:cc0:2026:c000:225:90ff:fe63:846a/64 Scope:Global          inet6 addr: 2001:470:f822:d0:225:90ff:fe63:846a/64 Scope:Global          inet6 addr: fe80::225:90ff:fe63:846a/64 Scope:Link          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1          RX packets:585455 errors:0 dropped:0 overruns:0 frame:0          TX packets:67453 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:1000           RX bytes:65406243 (62.3 Mb)  TX bytes:61197875 (58.3 Mb)          Memory:fade0000-fae00000 

如上图,会出现本机的相关虚拟和物理的网络设备的相关配置

3)如何修改mac地址?

情景:一些地方,往往需要我们将mac和ip绑定才能进行上网,此时我们需要进行mac地址的绑定,操作如下:

#ifconfig eth0 down先把网卡禁用再用ifconfig eth0 hw ether 1234567890ab这样就可以改成功了要想永久改就这样在/etc/rc.d/rc.local里加上这三句(也可以在/etc/init.d/network里加下面三行):实际上是设置了开机自动运行ifconfig eth0 downifconfig eth0 hw ether 1234567890abifconfig eht0 up

4)如何配置DNS

/etc/hosts                 // 配置本机主机名,可以省略/etc/host.conf            // 必须的,本地dns客户端的配置文件/etc/resolv.conf          // 必须的, 配置dns服务器地址

sudo /etc/init.d/network restart

5)如何配置路由表

我们先来看看一个传统的路由表:

$ route -nKernel IP routing tableDestination     Gateway         Genmask         Flags Metric Ref    Use Iface0.0.0.0         10.10.18.254    0.0.0.0         UG    0      0        0 eth010.10.0.0       0.0.0.0         255.255.0.0     U     1      0        0 eth010.122.0.0      0.0.0.0         255.255.252.0   U     2      0        0 wlan0169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0

我们来解释以下路由表的功能:192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0表示,发送到192.168.122.x这个网段的数据包,不需要禁果gateway,二十直接广播,通过的设备是virbr0

0.0.0.0 10.10.18.254 0.0.0.0 UG 0 0 0 eth010.10.0.0 0.0.0.0 255.255.0.0 U 1 0 0 eth0

这两行要特别注意:

1)第二行表示发送到10.10.x.x这个网段的地址,会经过eth0广播出去;

2)第一行表示,如果一个网段的地址不再其他的网段里面,经过eth0发送到默认网关10.10.18.254;这个地方有一个需要特别注意的地方,如果这个网关地址是不可达的(去掉第二行,它就不可达了),此时如果添加这个路由器,将会出现错误提示:“no such process”

在添加一个新的网段时,它的出口地址应该是当前ip routing table表中的当前有的地址,否则会出现这个错误:SIOCADDRT: 没有那个进程。第一点中使用第二个命令时,网关是默认的default gw,因此可以使用了。突然间想起鸟哥私房菜里的那句话了,

“透过 route add 来增加一个路由!请注意,这个路由必须要能够与你互通”和“你只要記得,當出現『SIOCADDRT: Network is unreachable』 這個錯誤時,肯定是由於 gw 後面接的IP 無法直接與您的網域溝通 (Gateway 並不在你的網域內), 所以,趕緊檢查一下是否輸入錯誤啊!加油吧!”

增加一条路由记录:route add -net 192.168.1.50 netmask 255.255.255.0 dev eth0

增加一个默认网关:route add default gw 10.10.18.254 eth0

6)如何修改IP地址

#ifconfig ethe0 down#ifconfig ethe0 192.168.169.245 netmask 255.255.255.0以上的方法下次启动时就无效了如果要以后每次都生效则加入到以下文件里面在/etc/sysconfig/network-scripts/下修改ifcfg-eth0地址一块网卡添加两个ip地址ifconfig eth0:1 192.168.1.1 netmask 255.255.255.0ifconfig eth0:2 192.168.1.2 netmask 255.255.255.0以上是对网卡eth0修改了两个IP地址的方法

或者修改配置文件(redhat系列):

#/etc/sysconfig/network-scripts/ifcfg-eth0:DEVICE=eth0BOOTPROT=staticBROADCAST=192.168.1.255IPADDR=192.168.1.10NETMASK=255.255.255.0NETWORK=192.168.1.0HWADDR=52:54:AB:2F:CF:F0GATEWAY=192.168.1.1ONBOOT=onTYPE=Ethernet

ubuntu系列的linux下ip设置如下:

Ubuntu 网卡设置,ip,mask,gateway,dns

sudo vi /etc/network/interfaces //这个应该是决定是否启用这个端口 auto eth0 //静态设置IP iface eth0 inet staticaddress 172.16.146.200netmask 255.255.255.0#broadcast 172.16.146.255gateway 172.16.146.254//通过dhcp动态设置iface eth0 inet dhcp

3.第三方网络配置

所谓第三方的网络配置,指的是一些应用层的软件,比如qemu或者kvm在运行的时候会模拟出一个虚拟的网桥或者网卡,然后用这个来完成网络链接。其中,虚拟的网络设备也可以用ifconfig命令看到,但是不能用service networking restart 进行自动关闭和开始。

3.1KVM 虚拟机网路配置一般情况下,kvm虚拟机会先创建一个网桥,然后将虚拟网卡都绑定在网桥上,而虚拟网桥和主机之间进行nat连接。

/etc/libvirt/qemu/networks/
<network>  <name>default</name>  <uuid>0808119a-c214-496d-a90b-5a30c8fade83</uuid>  <bridge name="virbr0" />  <mac address='DC:0E:A1:69:34:9C'/>  <forward/>  <ip address="10.18.28.3" netmask="255.255.0.0">    <dhcp>      <range start="10.18.111.100" end="10.18.111.200" />    </dhcp>  </ip></network>

而每一个虚拟网卡,被绑定在哪个网桥之上,是借助于针对每个虚拟机的配置文件来进行的:
vim /etc/libvirt/qemu/ubuntu64.xml
    <interface type='bridge'>      <mac address='52:54:00:f0:26:b3'/>      <source bridge='virbr0'/>      <model type='virtio'/>      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>    </interface>
总结:ifconfig 是一个配置网络的万能钥匙,不过我们一般只使用这个命令来查看网络。ifcfg是临时配置ip,进行调试的利器,可以用于临时的ip制定等功能。ifup和ifdown可以用于打开或者关闭一个网络接口。如果需要配置DNS,可以设置/etc/resolv.conf,或者直接在ifcfg-eth文件中设置DNS1,DNS2选项。

本文来源:谁不小心的CSDN博客 linux网络配置完全解析

梦想,并不奢侈,只要勇敢地迈出第一步。

linux网络配置完全解析

相关文章:

你感兴趣的文章:

标签云: