[toc]

IP分类(IPV4/IPV6)(不必记住)

32位的二进制数字, IP地址由网络地址和主机地址组合

特殊的IP地址:
    32位全为0的IP地址, 代表本机本身
    32位全为1的IP地址, 代表全网广播地址
    10 172 192开头的地址为内网IP(局域网地址)
    127开头的地址代表回环地址, 代表本机本身, 用于测试使用


A   前8位为网络地址, 后24位为主机地址
    首位固定为0, 范围:1-127
    00000000.00000000.00000000.00000001 - 01111111.11111111.11111111.11111111
    0.0.0.1         -  127.255.255.255

B   前16位为网络地址,后16位为主机地址, 2的7次方128开始
    开头两位固定为10, 范围128-191
    10000000.00000000.00000000.00000000 - 10111111.11111111.11111111.11111111
    128.0.0.0       -  191.255.255.255
    默认子网掩码:255.255.255.0

C   前24位为网络地址,后8位为主机地址, 2的7次方 + 2的6次方 192开始
    开头两位固定为110, 范围192-223
    11000000.00000000.00000000.00000000 - 11011111.11111111.11111111.11111111
    192.0.0.0   -  223.255.255.255
    默认子网掩码:255.255.255.0

D   组播地址, 用于视频会议, 2的7次方 + 2的6次方 + 2的5次方 224开始
    11100000.00000000.00000000.00000000 - 11101111.11111111.11111111.11111111
    224.0.0.0   -  239.255.255.255

E   军方使用和预留, 2的7次方 + 2的6次方 + 2的5次方 + 2的4次方 240开始
    11110000.00000000.00000000.00000000 - 11110111.11111111.11111111.11111111
    240.0.0.0   -  247.255.255.255

特殊的网络地址

0.0.0.0 <---- 代表全世界所有的地址
127.0.0.1 - 127.255.255.255 <---- 本地环回地址,测试本机tcp/ip是否正常
--某些集群软件也会使用环回地址(lvs集群的DR(direct routing)架构会使用环回地址)

记住三个私网IP段

A类: 10.0.0.0    - 10.255.255.255
B类: 172.16.0.0  - 172.31.255.255
C类: 192.168.0.0 - 192.168.255.255

网络通信的类型

点对点,平常大多数的网络行为都是点对点,比如发邮件,从http下载文件,从DNS服务器获取域名解析
组播(点对多点),集群
广播(点对多点),dhcp获取地址,ARP (Address resolution protocol)

子网掩码是如何影响对网络号的确定。(PPP1)

192.168.0.183/24
55 - 32 = 23
11000000.10101000.00000000.10110111 IP
11111111.11111111.11111111.00000000 掩码
11111111.11111111.11111111.10110111
    二进制的与运算, 只有位值都为0时才取0,否则取1

子网掩码把一个IP地址分成两部分,左边是网络部分,右边是主机部分
网络号  :10.1.1.0   (主机部分的二进制位全部为0)
广播地址:10.1.1.255 (主机部分的二进制位全部为1)
可用的IP地址数量:主机部分除开网络号和广播地址,剩下的IP都是可用IP

---> 网络号相同就是同一个网段,同一个网段的节点在默认配置下可以直接通信 <---

两个节点能通信的条件

物理上连通(线缆符合规格,交换机加电)
有正确的路由,也就是知道到达目的地的路
有通信的权限(防火墙)

网络故障排查

1. 检查网线
    a.  查看物理网口的黄灯是否闪烁
        不闪烁, 检查物理网线是否正常
    b.  闪烁
        操作的网卡
            sudo mii-tool 网卡设备名(PPP2)
                显示link ok代表网卡连接情况正常
                这里的正常是网卡能正常使用, 并不是可以正常上网
2. 查看右上角的网络连接状态, 查看有线网络是否有连接
3. 查看当前使用的网卡是否是停用状态
    ip a s
        查看enp0s25后面的信息,查看mtu 1500 qdisc pfifo_fast state
        后面的字母是UP还是DOWN
    如果是DOWN, 执行命令:
        sudo ip l set enp0s25 up
        停用网卡: sudo ip l set enp0s25 down
4. 查看当前使用的网卡是否有ip
    ip a s
        如果没有的话就可以临时获取ip
            删除当前的ip
                sudo ip a del 192.168.0.*/24 dev enp0s25

            添加一个临时ip
                sudo ip a add 192.168.0.*/24 dev enp0s25
            ip的获取方式是动态的时候, 随机获取一个动态ip
                sudo dhclient enp0s25
                或者点右上角, 断开再连接
                或者重新插拔网线
        也可以设置永久
            在设置之前先把防火墙和selinux关闭
                sudo iptables -F        <-- 清空放火墙的规则
                sudo setenforce 0       <-- 暂时关闭selinux
                getenforce              <-- 查看selinux的状态
                    Permissive/disable  表示已经关闭
            永久设置selinux
                sudo vim /etc/selinux/config
                    SELINUX=disable     <-- 修改这个值
                sudo vim /etc/sysconfig/network-scripts/ifcfg-enp2s0
    
                DEVICE="enp0s25"            <-- 网卡名字
                BOOTPROTO=static            <-- 使用固定IP
                NM_CONTROLLED=no            <-- 不受networkmanager控制
                ONBOOT=yes                  <-- 自动启动
                TYPE=Ethernet
                IPADDR=192.168.0.200        <-- IP 地址
                NETMASK=255.255.255.0       <-- 子网掩码
                GATEWAY=192.168.0.1         <-- 默认网关
                DNS1=223.5.5.5              <-- DNS1 服务器
                DNS2=192.168.0.1            <-- DNS2 服务器
    
                sudo systemctl restart network  <-- 重启网卡
    
                sudo systemctl status network   <-- 查看network的服务状态
                sudo systemctl stop network     <-- 停止network的服务
                sudo systemctl start network    <-- 启动network的服务
5.  检查网关(路由器)连接情况
    使用ping命令检查网关连接情况
        ping -c 1 192.168.0.1

    外网IP ping不通, 先检查路由表, 再检查网关的配置

    查看路由表
        route -n
            查看UG标识行里有没有网关IP

    网关ping不通, 检查本机到网关的线路问题及网关
        sudo ip r add default via 192.168.0.1        <-- 添加默认路由
        sudo ip r del default                        <-- 删除默认路由

6.  检查DNS解析情况
    ping -c 3 www.baidu.com

    域名ping不通, 外网IP能ping通, DNS设置问题

    设置DNS: sudo vim /etc/resolv.conf
        添加以下内容:(顶行)
            nameserver 223.5.5.5

        只有前三个DNS能起作用

# vi /etc/sysconfig/network
NETWORKING=yes
    如果这里设置为no,那么本机的网络将可能不可用,网络服务不能中场重启




上互联网的三要素:IP, Gateway, DNS

/etc/resolv.conf <-- 域名服务器信息会记录在这个文件中

hosts文件(本地DNS缓存)
    格式: IP地址 域名

主机名(局域网使用)(PPP3)
    查看主机名
        hostname

    1. 修改主机名 /etc/hostname
        临时修改主机名
            hostname 主机名

        永久修改主机名
            hostnamectl set-hostname 主机名
      或者  hostnamectl set-hostname --static look.com
    2. 修改主机名一定要修改/etc/hosts文件, 将回环地址与主机名对应关系
        不修改/etc/hosts,会出现图形界面启动速度慢

1hosts.png)

ssh, 安全的链接方式,可用于远程登录,传输文件,创建加密隧道等

1. 普通远程登录 ssh username@ip(PPP4)
(1)ssh 的证书登录方式的配置(PPP8)

客户端创建一组密码钥匙 ssh-keygen -t rsa -b 4096
-rw------- 1 root root 3239 May 9 14:35 id_rsa <-- 私钥
-rw-r--r-- 1 root root 736 May 9 14:35 id_rsa.pub <-- 公钥

(2) 把客户端所创建的公钥id_rsa.pub传给服务器
(3) 服务器把客户端的公钥添加到文件$HOME/.ssh/authorized_keys 中,具体如下:
假设想允许客户端以用户u9的身份登录到服务端,那么就把公钥放到
/home/u9/.ssh/authorized_keys 里面。
如果想允许客户端以用户root的身份登录到服务端,那么就把公钥放到
/root/.ssh/authorized_keys 里面。

2. 远程登录并允许运行远程机上的图形软件
ssh -X username@hostname
ssh -Y username@hostname
vncviewr

3. scp(PPP5) 远程传输文件
传输bash文件 到 192.168.224.12服务器下的/tmp/目录下,并命名newbash
scp /bin/bash root@192.168.224.12:/tmp/newbash

scp root@192.168.224.12:/some/where/file /local/dir/file

远程复制文件夹
scp -r root@192.168.0.182:/some/where/dirname /local/dir/file

4. 把一个字符串传输到远程,并在远程存储为文件
    echo "hello " | ssh user@host.com "cat > /somewhere/file"
   
5. 修改远程机的帐号密码
    必须登录对方的root账户才可以去修改, 可以试下uplooking用户的结果
    echo "123" | ssh root@192.168.0.1 "passwd --stdin u1"

nc 远程传输命令(PPP6)

yum install -y nc telnet nmap

网络点对点聊天
    服务端: (谁先运行谁是服务端)
        nc -l 本机的IP地址 端口号
            端口号建议的取值范围: 1024 ~ 65535
        例: nc -l 192.168.224.11 8000

    客户端:
        nc 服务器IP 服务器设置的端口号
        例: nc 192.168.224.11 8000
例二:
  A机器   nc  -l 8000
  
  B机器   telnet 192.168.224.11 8000
  在B机器上telnet A机器此端口,如下显示表示B机器可以访问A机器此端口
  telnet 192.168.224.11   8000
  Trying 192.168.224.11...
Connected to 192.168.224.11.
Escape character is '^]'.



1. 文件传输
    A作为服务器, A发给B
        A: Server(假设服务器的ip为192.168.224.11)

            nc -l 192.168.224.11 8000 < file.txt

        B: Client

            nc 192.168.224.11 8000 < file.txt

2. 目录传输
    A: Server

        tar -cvzf – dir_name1 di_rname2 | nc -l 192.168.224.11 8000

    B: Client

        nc 192.168.224.11 8000 | tar -xvzf -

rsync

1. rsync是什么
    它是一个远程数据同步工具,它在同步文件的同时,可通过LAN/WAN快速同步多台主机间的文件。
    Rsync使用所谓的“rsync算法”来使本地和远程两个主机之间的文件达到同步,
    这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。
    可以保持原来文件的权限、时间、软硬链接等附加信息。
2. 配置文件
    rsync的主要有以下三个配置文件,后面两个文件默认不存在,请手动创建它。
        /etc/rsyncd.conf(主配置文件)
        /etc/rsyncd.secrets(密码文件)
        /etc/rsyncd.motd(rsync服务器信息)

3. Rsync选项
    -v      # verbose 详细模式输出
    -q      # quiet 精简输出模式。
    -a      # archive归档模式,以递归的方式传输文件,并保持所有文件属性,(-a = -rlptgoD)
    -l      # links 保留链接
    --delete        # 删除那些DST(目标主机)中SRC(源主机)没有的文件
    --exclude       # 指定不传输的文件

    rsync  -av  /test/  /backup
        本机上的同步,把/test目录下的内容同步到/backup目录下(包括隐藏文件)

    rsync  -av  /test/  u1@192.168.224.12:/backup
        把本地的/test目录内容,同步到远端192.168.224.12的/backup目录下

    rsync  -av  u1@192.168.224.12:/backup/  /backup/
        把远端192.168.224.12的/backup目录下的内容同步到本地的/backup目录

        (注意:路径写法的区别!原目录后面加不加/也影响你的同步目录;
            没加/,就是将目录本身同步过去;
            目录加/,就是将目录里的内容同步过去!)

    rsync  -av  /test/  --exclude=no.txt  /backup
        将/test目录下除了no.txt其他内容都同步到/backup目录下

    rsync  -a  --delete  /backup/  /test/
        如果同步后,源主机中有文件删除了,这时要想目标主机与源主机的内容保持一致,可以使用--delete参数进行同步

    PPP7

nfs网络共享服务(PPP9)

查看当前挂载情况: mount
    或者 df -h

安装:
    sudo yum -y install nfs-utils

共享端:
    使用sudo打开/etc/exports文件(NFS服务配置文件)
        追加共享配置信息(必须顶行):
            /test  *(ro)

    常用参数:
    ro                  <-- 只读
    rw                  <-- 读写
    no_root_squash      <-- 不映射uid 0 的请求到匿名用户
    root_squash         <-- 把来自uid 0 的请求映射到匿名用户(默认启用)
    all_squash          <-- 映射所有uid 和 uid 的请求到匿名用户/组(65534)
    no_all_squash       <-- 和all_squash相反(默认启用)
    anonuid             <-- 自定义匿名用户的uid
    anongid             <-- 自定义匿名组的gid
    sync                <-- 同步写入
    async               <-- 异步写入

提示:在启动NFS SERVER之前,首先要启动RPC服务(即portmap服务,下同)否则NFS SERVER就无法向RPC服务区注册,另外,如果RPC服务重新启动,原来已经注册好的NFS端口数据就会全部丢失。因此此时RPC服务管理的NFS程序也要重新启动以重新向RPC注册。特别注意:一般修改NFS配置文档后,是不需要重启NFS的,直接在命令执行/etc/init.d/nfs  reload或exportfs –rv即可使修改的/etc/exports生效。

    /test 192.168.224.12(ro)  代表只有192.168.224.12这条可以访问
 /test 192.168.224.12(rw,sync)  表示可以同步写入
    sudo exportfs -arv    使修改配置文件的内容生效
    sudo systemctl restart rpcbind
    sudo systemctl restart nfs
    sudo iptables -F


root访问端:
    查看服务器共享了什么:
        showmount -e 192.168.224.11
            /root *
            显示共享目录信息代表服务器没有问题

    挂载服务器共享目录:
        sudo mount 192.168.224.11:/test /mnt

    进入/mnt目录即可看到共享内容, 可以像操作本地目录一样操作网络共享目录

    操作完成取消挂载:
        sudo umount /mnt

        强制取消挂载: sudo umount -l /mnt

Last modification:December 20th, 2019 at 02:58 am
如果觉得我的文章对你有用,请随意赞赏