网络概念

网络发展

1、1969年互联网元年

2、局域网(LAN,Local Area Network)、城域网(MAN)、广域网(WAN,Wide Area Network)

ip地址

网络基础命令

ping

检测当前主机与目标主机是否连通,不是100%准确(有的服务器禁ping)

原理:使用了ICMP回送请求和回送应答报文

计算的时间是数据包的往返总时间

常用命令:

-c num  ——表示使用ping发出去num个数据包  
-n   ——表示ping的输出中包含主机信息的都用ip表示,不在进行ip和主机名之间的映射,那样ping的响应速度会更快  
-s packetsize   ——指定ping发出去的数据包的大小,单位是B.  如果不配置此选项将默认为56B  
-t  ttl  ——设定数据包在网络上传输的Time To Live(TTL)生命周期  
-f   ——快速ping,Flood ping,发送接收ICMP Echo报文的频率快了非常多

ping  ip/域名  -t   :一直发送数据包

举例:

[root@VM_0_14_centos ~]# ping -c 3 -s 512 wwww.baidu.com #表示向www.baidu.com发送3个512B大小的数据包,来进行网络探测 

PING ps_other.a.shifen.com (220.181.38.148) 512(540) bytes of data.
520 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=1 ttl=250 time=36.4 ms
520 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=2 ttl=250 time=36.4 ms
520 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=3 ttl=250 time=36.5 ms --- ps_other.a.shifen.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 15851ms
rtt min/avg/max/mdev = 36.462/36.489/36.517/0.022 ms

netstat

查看网络的连接信息

netstat -tnlp   (-t:tcp协议,-n:将字母转化为数字,-l:列出状态为监听,-p:显示进程信息)

netstat  -an(-a:全部信息,-n:将字母转化为数字)

traceroute

原理:使用了ICMP的时间超过差错报告报文以及ICMP终点不可达报文

查找当前主机与目标主机之间所有的网关(路由器,会给沿途各个路由器发送icmp数据包)

用于追踪数据包在网络上的传输时的全部路径,它默认发送的数据包大小是40字节

通过traceroute我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径。当然每次数据包由某一同样的出发点(source)到达某一同样的目的地(destination)走的路径可能会不一样,但基本上来说大部分时候所走的路由是相同的。

traceroute通过发送小的数据包到目的设备直到其返回,来测量其需要多长时间。一条路径上的每个设备traceroute要测3次。输出结果中包括每次测试的时间(ms)和设备的名称(如有的话)及其ip地址。

traceroute(选项)(参数)
-d:使用Socket层级的排错功能;
-f<存活数值>:设置第一个检测数据包的存活数值TTL的大小;
-F:设置勿离断位;
-g<网关>:设置来源路由网关,最多可设置8个;
-i<网络界面>:使用指定的网络界面送出数据包;
-I:使用ICMP回应取代UDP资料信息;
-m<存活数值>:设置检测数据包的最大存活数值TTL的大小;
-n:直接使用IP地址而非主机名称;
-p<通信端口>:设置UDP传输协议的通信端口;
-r:忽略普通的Routing Table,直接将数据包送到远端主机上。
-s<来源地址>:设置本地主机送出数据包的IP地址;
-t<服务类型>:设置检测数据包的TOS数值;
-v:详细显示指令的执行过程;
-w<超时秒数>:设置等待远端主机回报的时间;
-x:开启或关闭数据包的正确性检验。
-U   ——使用UDP协议来探测,这是默认的检测协议。 
-I   ——使用ICMP协议来探测  
-T   ——使用TCP协议来探测 
[root@VM_0_14_centos ~]# traceroute www.baidu.com
traceroute to www.baidu.com (14.215.177.38), 30 hops max, 60 byte packets
1 * 9.31.61.130 (9.31.61.130) 1.002 ms *
2 9.31.123.100 (9.31.123.100) 0.973 ms 1.552 ms 1.238 ms
3 10.196.18.125 (10.196.18.125) 0.946 ms 10.196.18.109 (10.196.18.109) 0 .952 ms 10.196.18.125 (10.196.18.125) 1.191 ms
4 10.162.33.1 (10.162.33.1) 1.711 ms 1.690 ms 10.200.16.169 (10.200.16.1 69) 0.872 ms
5 10.162.32.145 (10.162.32.145) 1.532 ms 1.459 ms 1.506 ms
6 * * *
7 113.96.7.34 (113.96.7.34) 8.462 ms 113.108.209.53 (113.108.209.53) 2.2 35 ms 113.96.6.18 (113.96.6.18) 3.495 ms
8 113.96.11.78 (113.96.11.78) 4.783 ms 102.96.135.219.broad.fs.gd.dynamic .163data.com.cn (219.135.96.102) 3.121 ms 113.96.11.78 (113.96.11.78) 5.63 4 ms
9 14.215.32.130 (14.215.32.130) 3.672 ms 121.14.67.146 (121.14.67.146) 2 .926 ms 14.215.32.114 (14.215.32.114) 3.130 ms
10 * * *
11 * * *
12 * * *
13 * * *
14 * * *
15 * * *

分析:

1、记录按序列号从1开始,每个纪录就是一跳 ,每跳表示一个网关,我们看到每行有三个时间,单位是ms,其实就是-q的默认参数。探测数据包向每个网关发送三个数据包后,网关响应后返回的时间;如果用traceroute -q 4 www.58.com,表示向每个网关发送4个数据包。

2、有时我们traceroute一台主机时,会看到有一些行是以星号表示的。出现这样的情况,可能是防火墙封掉了ICMP的返回信息,所以我们得不到什么相关的数据包返回数据。

3、有时我们在某一网关处延时比较长,有可能是某台网关比较阻塞,也可能是物理设备本身的原因。当然如果某台DNS出现问题时,不能解析主机名、域名时,也会 有延时长的现象;您可以加-n参数来避免DNS解析,以IP格式输出数据。

4、如果在局域网中的不同网段之间,我们可以通过traceroute 来排查问题所在,是主机的问题还是网关的问题。如果我们通过远程来访问某台服务器遇到问题时,我们用到traceroute 追踪数据包所经过的网关,提交IDC服务商,也有助于解决问题;但目前看来在国内解决这样的问题是比较困难的,就是我们发现问题所在,IDC服务商也不可能帮助我们解决。

5、使用traceroute返回的每行信息中有三个时间值,那是因为对于每个节点或者路由器,源端发了三次探测请求

6、windows下的命令:tracert ip / 域名

在线工具:站长之家

dig

用来查询DNS包括NS记录,A记录,MX记录等相关信息

推荐:链接

常用命令:

@<服务器地址>:指定进行域名解析的域名服务器;
-b<ip地址>:当主机具有多个IP地址,指定使用本机的哪个IP地址向域名服务器发送域名查询请求;
-f<文件名称>:指定dig以批处理的方式运行,指定的文件中保存着需要批处理查询的DNS任务信息;
-P:指定域名服务器所使用端口号;
-t<类型>:指定要查询的DNS数据类型;
-x<IP地址>:执行逆向域名查询;
-4:使用IPv4;
-6:使用IPv6;
-h:显示指令帮助信息。

nslookup

指定查询的类型,可以查到DNS记录的生存时间还可以指定使用那个DNS服务器进行解析

参考:链接

nslookup 域名   :查询域名对应的IP地址,包括A记录和CNAME记录

host

分析域名查询工具,可以用来测试域名系统工作是否正常

参考:链接

-a:显示详细的DNS信息;
-c<类型>:指定查询类型,默认值为“IN“;
-C:查询指定主机的完整的SOA记录;
-r:在查询域名时,不使用递归的查询方式;
-t<类型>:指定查询的域名信息类型;
-v:显示指令执行的详细信息;
-w:如果域名服务器没有给出应答信息,则总是等待,直到域名服务器给出应答;
-W<时间>:指定域名查询的最长时间,如果在指定时间内域名服务器没有给出应答信息,则退出指令;
-4:使用IPv4;
-6:使用IPv6.

mtr

结合了traceroute和ping的工具

常用选项:

-r     ——将mtr设置为报告模式,追踪结果以报告模式输出。若没有-r显现,那么将进入mtr的实时交互模式。

-c num ——定义追踪的次数,每次是1s,且-c必须和-r配合使用,默认的10次

mtr host:跟踪到主机并持续ping所有中间跃点

说明:

第一列:显示的是IP地址和本机域名,这点和tracert很像
第二列:snt:10 设置追踪的次数,默认值是10 可以通过参数 -c来定制,例如mtr -r -c 15 202.108.33.94
第三列 Loss: 是显示的每个对应IP的丢包率
第四列 Last: 显示的最近一次的返回时延
第五列 Avg : 是平均值 这个应该是发送ping包的平均时延
第六列 Best: 是最好或者最短时延
第七列 Wrst: 是最差或者最常时延
第八列 StDev: 是标准偏差

arp

arp -a  :查看本地缓存的mac表

arp -d 主机地址:删除指定的缓存记录

tcpdump

用于抓数据包

可以打印所有经过网络接口的数据包的头信息,也可以使用-w选项将数据包保存到文件中,方便以后分析。

tcpdump 协议 port 端口

tcpdump 协议 port 端口  host 地址

tcpdump -i 网卡设备名

查看内网ip地址

1、ifcondig

2、通过 cURL 工具或是 HTTP 的 GET 请求访问 metadata,获取公网 IP 地址

# 例如
curl http://metadata.tencentyun.com/meta-data/public-ipv4

网卡

功能:负责计算机之间数据的封装和解封

网卡文件位置:/etc/sysconfig/network-scripts

网卡配置文件的名称命名格式:ifcfg-网卡名称

onboot:是否开机

bootproto:ip地址分配方式

hwaddr:mac地址

重启网卡

1、service network restart

2、直接调用服务的快捷方式

服务的快捷方式的存放位置:/etc/init.d

故重启网卡:/etc/init.d/network restart

管理单个网卡

ifdown  网卡名

ifup      网卡名

快捷方式

软链接:ln -s 原始文件的路径  快捷方式额路径

SSH

远程连接协议、远程文件传输协议

端口号: 22

端口可以被修改:/etc/ssh/ssh_config

端口号

1、范围:0-65535

2、不能使用已经占用的端口

本地连接

ssh <username>@<hostname or IP address>
  • username 即为前提条件中获得的默认帐号。
  • hostname or IP address 为您的 Linux 实例公网 IP 或自定义域名

服务管理

启动/停止/重启

1、service sshd start / stop / restart

2、/etc/init.d/sshd start / stop / restart

指定ip登录

1、找到并编辑ssh的配置文件默认/etc/ssh/sshd_config

vim /etc/ssh/sshd_config

2、在文件最后面另起一行添加:

AllowUsers root@本机IP地址

3、然后保存并退出,再重启一下ssh服务

/bin/systemctl restart sshd.service

ssh秘钥身份认证

1、通过ssh-keygen 生成私钥 ~/.ssh/id_rsa 和公钥 ~/.ssh/id_rsa.pub,私钥和公钥的权限分别是600和644
2、通过 ssh-copy-id 将公钥复制到目标系统上,默认复制到 ~/.ssh/id_rsa.pub
3、通过ssh远程链接,不需要密码

禁止root用户登录

1、sshd配置文件中修改【/etc/ssh/sshd_config】
PermitRootLogin no
或者
PermitRootLogin without-password
2、重启sshd
systemctl restart sshd

禁止使用ssh远程密码身份验证

1、配置文件修改
PassWordAuthentication no
2、重启sshd
systemctl restart sshd

修改主机名

临时修改

hostname 设置的主机名

永久修改

修改配置文件:/etc/sysconfig/network

需重启后生效,但域名未被dns识别,需要添加到host文件中:

host文件的位置:/etc/hosts

测试

开启http协议:service httpd start

chkconfig

管理开机自启动服务

查看开机自启动服务

chkconfig --list

删除服务

chkconfig --del 服务名

添加开机自启动服务

chkconfig --add 服务名

设置服务在某个级别上开启或关闭

chkconfig -- level 启动级别   服务名 on / off【级别连在一起】

ntp

用于对服务器时间的同步

同步方式两种:

手动同步

上游时间:

ntpdate  时间服务器的域名或者ip

ip地址查询:http://ntp.org.cn/pool.php

自动同步

服务名:ntpd

启动ntpd服务:service ntpd start    或者 /etc/init.d/ntpd  start

设置ntpd 服务开机自启:

chkconfig --list | grep ntpd    :查看

chkconfig --level 35 ntpd on   :启动

防火墙

选择让请求进入,保证网络安全

centos6.5的防火墙是 iptables

查看iptables是否开机启动

iptables服务管理

1) 永久性生效,重启后不会复原

开启: chkconfig iptables on

关闭: chkconfig iptables off

2) 即时生效,重启后复原

开启: service iptables start

关闭: service iptables stop

正确关闭步骤:

service iptables stop

chkconfig iptables off

查看防火墙状态(规则)

service iptables status

查看规则

iptables  -L  -n

  -L  :列出规则

  -n:将单词表达形式改为数字表示

设置防火墙规则

允许80端口通过:iptables -A INPUT -p tcp --dport 80 -j ACCEPT

centos7的防火墙是firewalld

firewall-cmd --state      #查看默认防火墙状态(关闭后显示not running,开启后显示running)

systemctl stop firewalld.service      #停止firewall

systemctl disable firewalld.service    #禁止firewall开机启动

systemctl start firewalld.service       #开启防火墙

systemctl enable firewalld.service    #开机开启防火墙

firewall-cmd --zone=public(作用域) --add-port=80/tcp(端口和访问类型) --permanent(永久生效)         #开启80端口

firewall-cmd --zone= public --remove-port=80/tcp --permanent      #删除80端口

firewall-cmd --list-ports     #查看已开放的端口(默认不开放任何端口)

激活firewall最新配置 :

systemctl restart firewalld 和 firewall-cmd --reload 两种方式,前一种是重启firewalld服务,建议使用后一种“重载配置文件”。

重载配置文件之后不会断掉正在连接的tcp会话,而重启服务则会断开tcp会话。

linux:网络的更多相关文章

  1. Linux网络驱动--snull

    snull是<Linux Device Drivers>中的一个网络驱动的例子.这里引用这个例子学习Linux网络驱动. 因为snull的源码,网上已经更新到适合最新内核,而我自己用的还是 ...

  2. Linux网络相关配置

    一.修改网卡相关配置 Linux网络参数是在/etc/sysconfig/network-scripts/ifcfg-eth0中设置,其中ifcfg-eth0表示是第一个网卡,如果还有另外一块网卡,则 ...

  3. 【深入浅出Linux网络编程】 "开篇 -- 知其然,知其所以然"

    [深入浅出Linux网络编程]是一个连载博客,内容源于本人的工作经验,旨在给读者提供靠谱高效的学习途径,不必在零散的互联网资源中浪费精力,快速的掌握Linux网络编程. 连载包含4篇,会陆续编写发出, ...

  4. 【linux草鞋应用编程系列】_5_ Linux网络编程

    一.网络通信简介   第一部分内容,暂时没法描述,内容实在太多,待后续专门的系列文章.   二.linux网络通信     在linux中继承了Unix下“一切皆文件”的思想, 在linux中要实现网 ...

  5. 1、linux网络服务实验 用PuTTY连接Linux

    这个是大三下学期的Linux网络服务配置详解时,感觉老师上得简单,就整理下,岭南师范学院师弟妹有福,如果是蔡老师交的话,可以拿来预习,复习. 一.用PuTTY连接Linux ①.装有redhat系统的 ...

  6. Linux 网络子系统

    今天记录一下Linux网络子系统相关的东西. 因为感觉对这一块还是有一个很大的空白,这件事情太可怕了. 摘抄多份博客进行总结一下Linux网络子系统的相关东西. 一. Linux网络子系统体系结构 L ...

  7. Linux网络配置基础

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

  8. Linux网络基本配置

    一.Linux网络配置文件 1.  /etc/sysconfig/network-scripts/ifcfg-eth0 文件 在Red Hat系统中,系统网络设备的配置文件保存在/etc/syscon ...

  9. Linux 网络基本配置

    一.Linux网络配置文件 1.  /etc/sysconfig/network-scripts/ifcfg-eth0 文件 在Red Hat系统中,系统网络设备的配置文件保存在/etc/syscon ...

  10. 《Unix/Linux网络日志分析与流量监控》获2015年度最受读者喜爱的IT图书奖

    <Unix/Linux网络日志分析与流量监控>获2015年度最受读者喜爱的IT图书奖.刊登在<中华读书报>( 2015年01月28日 19 版) 我的2015年新作刊登在< ...

随机推荐

  1. 基于Java+SpringBoot+Mysql实现的快递柜寄取快递系统功能实现二

    一.前言介绍: 1.1 项目摘要 随着电子商务的迅猛发展和城市化进程的加快,快递业务量呈现出爆炸式增长的趋势.传统的快递寄取方式,如人工配送和定点领取,已经无法满足现代社会的快速.便捷需求.这些问题不 ...

  2. CF716B Complete the Word 题解

    CF716B Complete the Word 题解 分析 首先观察数据范围是 \(50000\),可以考虑 \(O(n)\) 暴力. 在字符串中枚举子串开始的位置 \(i\),然后再枚举 \(i\ ...

  3. 测试App出现闪退应对方法

    1.使用adb logcat 查看日志,使用adb logcat -f sdcard/log.txt(输出到手机上) ,先查看报错信息 2.保证主线程能够继续运行,避免在子线程中与UI交互 3.内存溢 ...

  4. 鸿蒙开发Hvigor任务简介

    编译构建工具DevEco Hvigor(以下简称Hvigor)是一款基于TS实现的构建任务编排工具,主要提供任务管理机制,包括任务注册编排.工程模型管理.配置管理等关键能力,提供专用于构建和测试应用的 ...

  5. Microsoft.Extensions.AI 初探

    .NET Conf上的介绍 在今年的.NET Conf上Steve Sanderson带来了题为"AI Building Blocks - A new, unified AI layer&q ...

  6. 21stUESTC

    数矩形 平面上有 \(n\) 个点,这 \(n\) 个点两两不重合.问这 \(n\) 个点可以组成多少个矩形 请注意:矩形的边不必平行于坐标轴. \(4 ≤ n ≤ 1000\) 保证这些点两两不重合 ...

  7. 一文聊清楚Redis主从复制原理

    本地缓存带来的挑战 分布式缓存相比于本地缓存,在实现层面需要关注的点有哪些不同.梳理如下: 维度 本地缓存 集中式缓存 缓存量 受限于单机内存大小,存储数据有限 需要提供给分布式系统里面所有节点共同使 ...

  8. (系列十三)Vue3+Echarts搭建超好看的系统面板

    说明 该文章是属于OverallAuth2.0系列文章,每周更新一篇该系列文章(从0到1完成系统开发). 该系统文章,我会尽量说的非常详细,做到不管新手.老手都能看懂. 说明:OverallAuth2 ...

  9. Python 学习记录(3)

    数据 主要是对Pandas相关的数据帧等做处理和一定的可视化 Pandas对数据帧各列的运算 import seaborn as sns import pandas as pd #从Seaborn 当 ...

  10. HTML5 表单新的 Input 类型

    H5新增了电子邮箱,手机号码,网址,数量,搜索,范围,颜色选择,时间日期等input类型 1.电子邮箱 type="email" 提供电子邮箱格式验证 如果格式不对,会阻止表单提交 ...