Linux-网络相关知识
网络
网络基础知识 ipv4:4段 32位 网络位+主机位 网段: 主机: A 网络位为8位 主机位为24位 第一位不可以变 0 0000001 0 1111111 1-126 127 有特殊用途,回环地址 可用网段数:2^7 -1 每一个网段有多少可用主机:2^24-2 有两个是不可以用: 主机位全为0,表示一个网段 主机位全为1,表示网段里面的广播地址 私有地址:自己可以用的 子网掩码:255.0.0.0 10 段 共有地址: 都可以访问的地址 1.1.1.1/8 00000001.0.0.0 11111111.0.0.0 1.0.0.0 B 16位网络位 16位为主机位 10 000000 00000000 10 111111 11111111 128 191 可用网段:2^14 每个网段有多少可用主机:2^16-2 私有地址: 172.16-172.31 子网掩码:255.255.0.0 C 前24位为网络位 后8位为主机位 110 00000 000000000 00000000 110 11111 11111111 11111111 192 223 可用网段:2^21 每个网段有多少可用机器:2^8-2 私有地址: 192.168.0 -192.168.255 子网掩码 255.255.255.0 D 作为多播地址 1110 0000 1110 1111 224 239 E 作为科研使用 CIDR(无类域间路由) 网络位向主机位借位 16 +5 21位网络位 11个 2^11 2046 255.255.11111000.0 255.255.248.0 网络位向主机位借位: 24+6 30 2^2 -2 子网掩码 网络位全为1,主机位全为0 ip地址和子网掩码来确定属于那个网段
按位与 :只要有0就是0,全部为1,才是1 ``` 1&0 0 2&3 2 ``` 按位或:只要有1就是1,全部为0,才是0 ``` 1|0 1 2|3 3 ``` 异或:相同为0,不同为1 ``` 1^0 1 2^3 1 3^5 6 ``` 取反:-(n+1) ``` ~2 -3 ~-4 3 ``` 左移:n*2的左移次方 ``` 2<<2 8 10<<3 80 ``` 右移:n/2的右移次方(向下取整,不是四舍五入) ``` 12>>2 3 13>>2 3 50>>2 12 2>>2 0 ```
10.20.43.65/10 网段 ``` 10.20.43.65 00001010.00010100. 11111111.11000000 10.0.0.0 ```
网络配置
1 - 手动 2 - ip 3 - 配置文件 4 - 自动分配 5 - dhcp
ip
- 增加ip地址 ip a add 192.168.21.23/24 dev ens33 - 删除 ip ip a del 192.168.21.23/24 dev ens33 - 增加ip地址并增加别名 ip a add 192.168.21.23/24 dev ens33 label ens33:0 - 删除 ip a del 192.168.21.23/24 dev ens33 label ens33:0
网卡配置文件
- 配置文件 /etc/sysconfig/network-scripts/ifcfg-name ``` TYPE="Ethernet" # 网卡的接口类型 PROXY_METHOD="none" BROWSER_ONLY="no" BOOTPROTO="dhcp" # 获取ip地址的方式,可以是dhcp,static,none DEFROUTE="yes" IPV4_FAILURE_FATAL="no" IPV6INIT="yes" IPV6_AUTOCONF="yes" IPV6_DEFROUTE="yes" IPV6_FAILURE_FATAL="no" IPV6_ADDR_GEN_MODE="stable-privacy" NAME="ens33" # 网卡名称 UUID="c252096f-57e0-41bd-a1d9-5158a86f9ba1" # 设备唯一标识码 DEVICE="ens33" ONBOOT="yes" #开机是否启动 HWADDR="" #mac地址 IPADDR=ip地址 NTEMASK=子网掩码 GATEWAY=网关 ```
DNS配置文件
- /etc/reslov.conf ``` nameserver 192.168.21.2 ```
主机名
- 获取主机名 hostname - 设置主机名 hostname name - 配置文件 - /etc/hostname centos7 - /etc/sysconfig/network centos6 - 永久生效 - hostnamectl set-hostname s22 - 修改配置文件
ss、netstat
ss命令用来打印linux系统中网络的状态信息,可以让管理员更好的了解网络情况 ``` -a 所有 -l 监听中的 -t tcp -u udp -x unix socket文件 -p 相关的程序 -n 显示服务的端口号 常用组合 -anlp -tnlp -unlp * ipv4 0.0.0.0 表示当前主机上的所有ip地址 :: ipv6 所有地址 ```
解析
- 本地解析 /etc/hosts - dns解析 - 根节点 总共13组
wget
用来下载网络资源 ``` -q 静默模式 -c 断点续传 -O filename 另存为的名称 -P 保存到指定的目录 -r 递归下载 -p 下载所有的html文件 ```
systemctl
管理服务 service start name ... 启动服务 stop name ... 关闭服务 reload name 重读配置文件 平滑重启 restart name 重启服务 status name 查看状态 enable name 开机自启动 disabled name 关闭开机自启动 systemctl list-unit-files |grep sshd 查看服务是否开机自启动 centos6 service 动作 服务 chkconfig 用来管理服务的开机启动
计划任务(定时任务)
``` /etc/crontab SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root # For details see man 4 crontabs # Example of job definition: # .---------------- minute (0 - 59) # | .------------- hour (0 - 23) # | | .---------- day of month (1 - 31) # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * user-name command to be executed 22 * * * * * root touch b.txt 每天的每小时的第22分钟做什么事 25 15 * * * root touch /tmp/c.txt 每天下午的三点25分 27 15,16,17 * * * root touch /tmp/d.txt 每天的15点,16点,17点的第27分钟 28 15-19 * * * root touch /tmp/e.txt 表示 每天的15点到19点的28分钟 30 10-20/5 * * * root touch /tmp/f.txt 每天的10点到20点每个5小时 */7 * * * * root touch /tmp/f.txt 从0开始重新结算 37 * 10,20,30 * 4 echo $(date) >> /tmp/g.txt 表示每个月的10,20,30或者每周的周四 建议: 分钟不要写成* 分钟不要写成* 分钟不要写成* ```
crontab 命令
``` -e 编辑 -u 指定用户,如果不写,默认为当前用户 -l 列出当前用户的计划任务 -r 删除用户的计划任务 ``` - 默认写入的文件在/var/spool/cron/username
计划任务作用
- 定时删除 - 定时备份 - 同步时间 ntpdate
补充
1.crontab的日志 /var/log/cron 2.命令最好写绝对路径 3.ping ``` -c 指定次数 ICMP 协议 ---> 自行百度 ```