一、网络基础知识
TCP/IP四层模型
以太网地址(MAC地址):
段16进制数据
IP地址:
子网掩码:
二、接口管命令
ip命令:字符终端,立即生效,重启配置会丢失
nmcli命令:字符终端,立即生效,重启后配置也不会丢失
nmtui命令:可视化终端,立即生效,重启后有效
1、ip命令:
(1)作用:可以显示或操作路由,网络设备,设置路由策略和通道。
(2)语法:ip [选项] OBJECT COMMAND [help]
OBJECT对象可以是:link——网络设备,addr——设备协议地址,route——路由器
rule——策略,等等
COMMAND是操作命令,不同对象有不同的命令
link对象支持:set,show
addr对象支持:add,del,flush,show
route对象支持:list,flush,get,add,del,change,append,replace
(3)实例:
ip link #显示网络运行状态
ip -s link #显示更多详细link的数据
ip -s link show ens160 #只显示ens的信息
ip link set ens160 down #让ens160停止工作
ip link set ens160 up #让ens160继续工作
ip address #协议地址管理
ip addr|a show [网络设备名] #查看指定网络设备的配置信息ip -s a show #详细信息
ip [4/6可选协议选择] addr add 1.1.1.1/24 dev ens160 #添加(临时,重启会失效)IP地址
ip [4/6可选协议选择] addr del 1.1.1.1/24 dev ens160 #删除IP地址
ip route #路由表管理
ip route show #查看路由情况
ip route add default via 192.168.0.254 dev eth0 #设置默认网关(下一跳设备IP)为192.168.0.254
下一条的地址不对,使用本电脑的IP地址192.168.68.133
ip route add default via 192.168.68.133 dev eth0
ip route show #再次查看是否添加成功
ip route del default via 192.168.68.133 #删除1192.168.68.133网关
ip route del default #删除默认路由
2.nmcli命令
NetworkManager Client
使用这个命令,系统会自动将配置写入/etc/NetworkManager/system-connections/ens160.nmconnections中,实现永久修改。
接口(device)是一个物理设备,一个物理设备可以拥有多个配置文件,但只有一个配置文件属于使用(active)状态:配置文件的生成与使用状态均由NetworkManager控制。
(1)查看网卡设备
语法格式:nmcli device/d
实例:
nmcli d show |grep IP4 #仅查看IP4的信息(|grep #过滤)
nmcli d disconnect ens160 #断开连接
nmcli d connect ens160 #建立连接
(2)查看网卡配置
语法格式:nmcli connection/c
实例:
nmcli c #查看网卡信息
nmcli c show ens160 |grep -i gateway #仅查看gateway的信息
nmcli c show ens160 |grep -i dns #查看当前网卡的DNS域名服务器
(3)配置网卡信息:
非交互式:
需求:修改ens160的IP地址为192.168.68.128,并且时ipv4,自动连接,dns为114.114.114.114,网关为192.168.68.2,子网掩码为:255.255.255.0。
nmcli c modify ens160 ipv4.method manual autoconnect yes ipv4.addresses 192.168.68.128/24 ipv4.gateway 192.168.68.2 ipv4.dns 114.114.114.114
如果没有立即生效,需要重启服务:systemctl restart NetworkManager
交互式:
nmcli c edit ens160 #交互式编写ens160
goto ipv4 #前往ipv4
set dns 8.8.8.8 #设置域名为8.8.8.8
set addresses 1.1.1.1/24 #设置地址为1.1.1.1/24
save #更新
activate #激活
quit #退出
说明:
在NM里,在2个维度:连接(connection)和(device),
这是多对一的关系,想给某个网卡配置ip地址,首先NM要能纳管这个网卡。
设备里存在的网卡(及nmcli c可以看到的),就是NM纳管的。接着,可以为一个设备
配置多个连接(即nmcli c可以看到的),每个连接可以理解为一个ifcfg配置文件。
同一时刻,一个设备只能有一个连接活跃。可以通过nmcli c up切换连接。
nmcli d ==>device是设备的意思,一般都是某个网卡设备
nmcli c ==>connect是连接的意思,一般都是某个配置文件
一个设备可以有多个连接,一个连接一定只有一个设备。
常用:
nmcli d show ens160nmcli d connect ens160nmcli d disconnect ens160nmcli d modify ens160 +ipv4.addresses 192.168.0.2/24nmcli c show ens160 |grep -i gatewaynmcli c up ens160 nmcli c down ens160nmcli c mod ens160 +ipv4.addresses 192.168.0.2/24
最后可以通过如下方式让命令生效,需要重新取消激活,或者重启网络服务才能使之生效
systemctl(控制系统) restart (重启) NetworkManager(对象)
3.nmtui命令(NetworkManager Termial user interface)
这个命令用于可视化方式来进行配置
DNS域名服务器
114.114.114.114 国内的
8.8.8.8 国外的
三、网络维护命令
1、ssh命令:远程登陆,在自己的虚拟机上登陆别人的虚拟机,前提是要网络可达
xshell就是基于ssh
语法:ssh [参数] 域名或IP地址
实验环境:192.168.68.129为登陆端
192.168.68.128为被登录端
首先在登录端测试192.168.68.128是否可达:ping 192.168.68.128
使用ssh命令登陆
ssh 192.168.68.128 #用默认的root身份访问目标路由器
输入密码后登陆成功,可以对被登陆端中的文件进行操作,退出exit
其他实例:
ssh -l bzy 192.168.68.128 #使用存在的用户身份进行登陆
ssh 192.168.68.128 "free -m" #不登进去,但是会执行冒号的命令,并且把执行结果返回来
ssh -1 192.168.68.128 #强制使用v1版本的SSH加密协议连接远程服务器主机
也可以使用xshell通过ssh的22端口
2、netstat命令:查看网络状态
netstat命令来自英文词组network statistics的缩写,其功能是显示各种网络相关信息
实例:
netstat -a #显示所有连接信息
netstat -nu #显示系统网络状态中的UDP连接信息
netstat -apu #显示系统网络状态中的UDP连接端口号的使用信息
netstat -i #显示网卡当前状态信息
netstat -r #显示网络路由表当前的信息状态
netstat -anp |grep ssh #过滤出某个对应的连接信息
对照学习:ss指令
ss -a #显示所有套接字
ss -l #显示处于监听状态的套接字
ss -n #不解析服务名称,以数字形式显示
ss -p #显示使用套接字的进程
ss -t #显示TCP协议的套接字
ss -u #显示UDP协议的套接字
ss -tunl |grep 22(端口号) #参数输出(常用)
3、dhclient命令:手动打开再次自动获取IP地址
下载:yum install dhclient
实例:
dhclient ens160 #通过指定网卡发起DHCP请求,获取网卡参数
dhclient -r #释放系统已获取的网卡参数
dhclient -s 192.168.68.128 #向指定服务器请求网卡参数
dhclient -x #手动停止执行dhclient服务进程
4、ifconfig命令:与IP命令相似
设置或显示网络信息
语法格式:ifconfig 参数 网卡名 动作
常用参数:
-a 显示所有网卡状态
-v 显示执行过程详细状态
-s 显示简短状态列表
常用动作:
add 设置网络设备的IP地址
del 删除网络设备的IP地址
down 关闭指定的网络设备
up 打开指定的网络设备
实例:
ifconfig #显示网络设备存活信息,不包括down状态的网卡
ifconfig -a #显示网络设备信息,包括down状态的网卡
ifconfig ens160 down #关闭网卡设备
ifconfig ens160 up #打开网卡设备
ifconfig ens160 192.168.68.130 netmask 255.255.255.0 #临时修改IP
或者ifconfig ens160 192.168.68.130/24
ifconfig ens160 hw ether 00:0c:29:72:34:50 #修改MAC地址(极度危险!)
ifconfig ens160 -arp #对指定网卡设备关闭ARP协议
ifconfig ens160 arp #对指定网卡设备打开ARP协议
(ARP地址解析协议——IP获取MAC)
arp -an #记录消息来源(记录谁来了)
ifconfig ens160 192.168.68.129/24 up
ens160就是网卡名称
192.168.68.129是要配置的IP地址
24配置给IP地址的子网掩码24
up配置IP和mask后启动该网卡
ifconfig ens160 down 网卡停用
ifconfig ens160 192.168.68.129/24 网卡重新配置
ifconfig ens160 up 网卡启动
ifconfig ens160 0.0.0.0 up 网卡地址没有配置
5、ping命令:测试网络可达性
语法格式:ping 参数 域名或IP地址
实例:
ping baidu.com #测试与指定域名之间的网络可达性
ping -c 4 192.168.68.128 #测试指定主机间网络可达性,发送请求限定在4个
ping -c 3 -i 0.2 -w 3 192.168.68.128
请求3次 间隔0.2秒 最长等待时间3秒
互联网出故障的解决流程:
①ping 自己的网卡 #确认网卡(IP地址)正常工作
②ping 自己的网关 #确认下一跳工作正常(ip route show查看网关)
③ping (114.114.114.114)dns服务器 #如果不行修改dns服务器(修改/etc/resolv.conf)
④ping 公共地址(baidu.com) #测试与外网服务器的联通状态
添加网关指令:route add default gw 192.168.68.2
route del default gw 192.168.68.2
6、iptables命令:网络防火墙
基于内核级别的防火墙服务。对数据包进行过滤操作,拒绝掉危险的外部请求流程,保护内网安全
iptables命令默认ipv4。
语法格式:iptables [参数] [对象]
实例:
iptables -L #显示当前防火墙策略中过滤的全部信息
input——防范进来的
forward——防范经过的
output——防范过去的
iptables -L -t nat #显示当前防火墙策略中指定的NAT表的信息
iptables -I INPUT -s 192.168.68.128 -j DROP #禁止192.168.
68.128主机访问本地。
结果为192.168.68.128访问不到192.168.68.129
iptables -F #删除所有禁止
192.168.68.128就可以访问192.168.68.129。
iptables -I INPUT -s 192.168.68.128 -p tcp --dport 22 -j DROP
#禁止192.168.68.128的22号端口,其余的允许进入
可以ping通,但ssh使用的是22号端口。
连不上。