linux_IP网络
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.224.11/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 <-- 修改这个值
1 | sudo vim /etc/sysconfig/network-scripts/ifcfg-enp2s0 |
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,会出现图形界面启动速度慢
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
- 本文标题:linux_IP网络
- 本文作者:yichen
- 本文链接:https://yc6.cool/2020/08/03/linux_IP网络/
- 版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!
1.sed的常用命令的使用
2.linux根下目录文件介绍
3.vim的使用
4.linux中丢失grub.cfg引导文件修复
5.linux系统管理
6.linux磁盘管理
7.磁盘命令lvm
8.linux软件管理