概述:熟悉了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

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

网卡能否发送到网关——》网卡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 down
ifconfig eth0 hw ether 1234567890ab 
ifconfig eht0 up

4)如何配置DNS

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

sudo /etc/init.d/networking restart

5)如何配置路由表

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

$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.10.18.254    0.0.0.0         UG    0      0        0 eth0
10.10.0.0       0.0.0.0         255.255.0.0     U     1      0        0 eth0
10.122.0.0      0.0.0.0         255.255.252.0   U     2      0        0 wlan0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0
192.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 eth0
10.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 並不在你的網域內), 所以,趕緊檢查一下是否輸入錯誤啊!加油吧!”

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.0
ifconfig eth0:2 192.168.1.2 netmask 255.255.255.0
以上是对网卡eth0修改了两个IP地址的方法

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

linux网络配置完全解析的更多相关文章

  1. linux网络配置相关文件

    网络接口(interface)是网络硬件设备在操作系统中的表示方法,比如网卡在Linux操作系统中用ethX,是由0开始的正整数,比如eth0.eth1...... ethX.而普通猫和ADSL的接口 ...

  2. 01 Linux 网络配置和克隆

    Linux 网络配置和克隆 一.配置 Linux 网络 当在 VMware 中安装完 Linux 以后需要通过一些网络配置才能使 Linux 能够连能网络: 首先如果是在虚拟机上安装的 Linux 必 ...

  3. 解决遇到Linux网络配置,从熟悉网络配置文件入手

    如果接触过Linux,网络配置是一个比较棘手的问题.但是Linux是文件为基础来构建的系统,包括我们windows中设备,Linux也视为文件.所以只要我们明白文件的作用.就能对Linux更加的熟悉, ...

  4. linux入门基础——linux网络配置

    linux网络配置 以太网连接 在linux中,以太网接口被命名为:eth0.eth1等.0.1代表网卡编号 通过lspci命令能够查看网卡硬件信息(假设是usb网卡,则须要使用lsusb命令) 命令 ...

  5. 关于Linux网络配置

    Linux网络配置 一:什么是网络接口卡以及如何查看网络接口的网络信息:在Linux系统中,主机的网络接口卡通常称为“网络接口”,我们可以使用ifconfig命令来查看网络 接口的信息(普通用户使用/ ...

  6. Linux网络——配置网络之ifconfig家族命令

    Linux网络——配置网络之ifconfig家族命令 摘要:本文主要学习了ifconfig家族用来配置网络的命令. ifconfig命令 ifconfig命令用来显示或设置网络接口信息,设置只是临时生 ...

  7. 尚学linux课程---4、linux网络配置及linux文件

    尚学linux课程---4.linux网络配置及linux文件 一.总结 一句话总结: linux下的etc目录是配置文件的目录,所以很多的文件配置操作都可以看到它的身影:比如 init系列命名,比如 ...

  8. Linux网络配置基础

    linux网络配置常见有两种:桥接模式(Bridge)与NAT模式,还有一种Host-Only模式由于其局限性通常被舍弃就不加以说明了,下面我们介绍下桥接模式(Bridge)和NAT模式. 桥接模式( ...

  9. Linux 网络配置(固定IP)

    通常linux作为服务器系统时,是不推荐安装图形界面的,因此我们需要掌握非图形界面下如何配置网络,主要两种方式,如下: 一.使用SETUP工具(redhat系列才可以,推荐此修改方式) 1.在命令行直 ...

随机推荐

  1. Java实现简单的RPC框架(美团面试)

    一.RPC简介 RPC,全称为Remote Procedure Call,即远程过程调用,它是一个计算机通信协议.它允许像调用本地服务一样调用远程服务.它可以有不同的实现方式.如RMI(远程方法调用) ...

  2. 【Python】Python 猜年龄的游戏

    游戏规则: 允许用户最多尝试3次 每尝试3次后,如果还没猜对,就问用户是否还想继续玩,如果回答Y或y, 就继续让其猜3次,以此往复,如果回答N或n,就退出程序 如何猜对了,就直接退出 age= cou ...

  3. Java Machine Learning Tools & Libraries--转载

    原文地址:http://www.demnag.com/b/java-machine-learning-tools-libraries-cm570/?ref=dzone This is a list o ...

  4. Qt——数据的隐式共享

    一.隐式共享类 在Qt中有很多隐式共享类( Implicitly Shared Classes ),什么是隐式共享呢,请参考官方文档的说明. 好吧,翻译一下—— 许多C++类隐式地共享数据,使得资源使 ...

  5. [四]SpringBoot 之 捕捉全局异常

    在class注解上@ControllerAdvice, 在方法上注解上@ExceptionHandler(value = Exception.class),具体代码如下: package me.shi ...

  6. 题解 P1423 【小玉在游泳】

    这道题可以用简单的蒟蒻do-while循环,方式:直到型 因为是萌新/蒟蒻,所以并不知道这道题的时间/空间复杂度是多大 脚踩std(^▽^)摩擦 #include <iostream> # ...

  7. C++解析(3):布尔类型与三目运算符

    0.目录 1.布尔类型 2.三目运算符 3.小结 1.布尔类型 C++中的布尔类型: C++在C语言的基本类型系统之上增加了bool C++中的bool可取的值只有true和false 理论上bool ...

  8. jsp - redirect重定向 / forward转发

    redirect:请求重定向: 客户端行为,本质上为2次请求,地址栏改变,前一次请求对象不保存, 所以请求携带的数据会丢失. 举例:你去银行办事(forward.jsp),结果告诉你少带了东西,你得先 ...

  9. Project Euler 453 Lattice Quadrilaterals 困难的计数问题

    这是一道很综合的计数问题,对于思维的全面性,解法的过渡性,代码能力,细节处理,计数问题中的各种算法,像gcd.容斥.类欧几里德算法都有考察.在省选模拟赛中做到了这题,然而数据范围是n,m小于等于100 ...

  10. Android APK打包流程

    简单build流程图 官网给了我们一张非常简单的编译.打包.apk生成内容以及签名的图片.图片大体介绍了从Project到运行到设备或者模拟器的一个大体流程,我们也从中看到一个完整的apk包含如下内容 ...