Linux 网络设置

Ø  简介

本文主要记录 Linux 中的网络命令、网络配置等,包括如下内容:

1.  互联网寻址过程

2.  网络配置文件

3.  网络管理命令

4.  防火墙管理命令

 

1.  互联网寻址过程

1)  TCP/IP OSI 的比较

clip_image002

该图为左侧TCP/IP 四层参考模型与 OSI 的七层参考模型的对应关系。

TCP/IP 物理层:网卡                OSI 物理层:网卡

数据链路层:MAC

网络层:IPARPICMP

传输层:TCPUDP

TCP/IP 应用层:SSHApache         OSI 会话层:客户端服务端建立连接

                                       表示层:加密、压缩等

                                       应用层:服务应用

 

简单的说:OSI七层参考模型可以理解为对 TCP/IP 四层参考模型的更细化,便于对整个网络连接更详细的分析。对OSI 参考模型有简单的了解即可,没必要深入的学习,重点掌握 TCP/IP 参考模型即可。

 

2)  互联网的计算机寻址

clip_image004

1.  MAC(数据链路层)

Windows 查看 MAC 地址,ipconfig -all

clip_image006Linux 查看 MAC 地址,ifconfig

clip_image00800:0c:29:ad:77:fe      #48位,分为6

厂商标识 网卡标识       #理论上,可以确保世界上的网卡是唯一的

 

说明:MAC地址可以标记唯一的一台主机。

 

2.  IP(网络层)

192.168.1.150          #ipv4 的地址

ipv4 地址:32位,分为4段,以十进制来书写。

ipv6 地址:128位,以十六进制来书写。ipv6 除了在数量上增加了很多,可以防止攻击(比如:DOS 拒绝服务攻击 SYNFLOOD

 

拒绝服务攻击SYNFLOOD:不需要知道程序的任何漏洞,像洪水一样不停的向攻击主机发送 SYN请求,由于主机忙于应答,可能照成无法响应正常请求。

 

TCP / UDP

TCP 可靠的协议,很重要的原因是 TCP 会进行三次握手(断点重发、定时器)。例如:

A主机      B主机

IP          IP

MAC         MAC

1024+       80      #端口

-------------à     SYN请求(问B主机,我们可以建立连接吗?)

ß------------      ACK/SYN(可以建立连接、我正在等待跟你建立连接)

-------------à     ACKOK,我们建立网络连接)

TCP 协议可以简单理解:就像公交车在道路上行驶,需要遵循交通规则,这个规则就类似于网络 TCP 协议。网络在传输的过程中,就需要遵循这种协议。

TCP 的典型应用:SSH

 

全双工:TCP 属于全双工。

单工:好比单行线,只能从一端到另一端。比如电视机就是单工设备。

半双工:同一时刻只能有一个传输,比如对讲机设备。

 

UDP 速度快,这正是 TCP 的缺点。因为 UDP 不需要进行三次握手,但缺点是可靠性上不如 TCP

UDP 的典型应用:QQ发送消息,比如观看视频、以及一些网络服务同时使用了 TCP UDP

 

3.  FQHN – 完整的计算机名称(应用层)

www.mdingdang.com.

www(主机名)mdingdang(二级域)net(顶级域).(根域)

 

4.  ARP 地址解析协议

n  ARP 解析过程

clip_image010

根据 IP 地址,获取对方的 MAC 地址:

1)  发送广播包,局域网中的每台主机都会受到,只有IP地址为166.111.1.1的这台主机才会应答;

2)  应答中包含 MAC 地址;

3)  两台主机建立连接后,就可以数据传输了。

 

arp -a                  #查看 APR 缓存表

arp -d IP地址          #删除 ARP 地址

arp -s IP地址MAC地址  #添加 ARP 静态记录

 

5.  RARP 反向地址解析协议

知道自己的 MAC 地址,去询问自己的 IP 地址。

 

6.  域名解析

1)  本机域名解析文件

/etc/hosts

IP地址主机名或域名    别名

1.  这是比较原始的方式,因为互联网存在太多的IP地址和域名,不可能将所有的IP地址和域名都存放在文件中,将会特别庞大,所以没有被使用。

2.  但是注意:在域名解析时,首先还是寻找本机的 hosts文件,没有匹配的域名解析才会使用 DNS 解析。

3.  注:Windows 下位于 C:\Windows\System32\drivers\etc 目录下。

 

2)  DNS

DNS Domain Name System 的缩写,称为域名系统。目前使用最多的是 BIND 的这个域名解析软件,占市场的80%

n  域名服务的层次结构

clip_image012

DNS 中域的数据是分散管理的。

 

n  域的委托管理

clip_image014

13组根域由 Network Information Center 组织管理。连日本鬼子都有一组,可惜中国还没有。另外顶级域也是有该组织来增加和管理的。

 

n  递归查询

clip_image016

比如:客户端访问:www.mdingdang.com

1.  首先询问本机 DNS 服务器

缓存(广义缓存)

www.mdingdang.com       ipaddr

会自动记录解析记录,比如下一次访问以下域名时,就不会去访问根域了:

www.234.com        à .com

abc.mdingdang.com   à  .mdingdang.com

2.  如果 DNS 缓存中没有,先去询问根域 .

è .com

3.  顶级域 .com

è mdingdang.com

返回 DNS 服务 à 客户端

 

n  IP MAC

1)  一个 MAC 地址可以对应多个 IP 地址;

2)  一个 IP 地址也可以对应多个 MAC 地址,比如cluster(集群)的应用;

3)  一个域名也可以对应多个 IP 地址;

4)  一个 IP 也可以对应多个域名。

 

2.  网络配置文件

1)  /etc/sysconfig/network-scripts/ifcfg-ens33 文件,保存 IP 地址和网关

IPADDR=IP地址

NETMASK=子网掩码

BROADCAST=广播地址

GATEWRY=网关

 

2)  /etc/sysconfig/network 文件,保存本机主机名

HOSTNAME=主机名

 

3)  /etc/rc.d/init.d/network 网络启动脚本

/etc/rc.d/init.d/network start/stop/restat

 

4)  /etc/hosts 主机名数据库

 

5)  /etc/services 文件,网络服务信息

 

6)  /etc/resolv.conf,指定 NDS 服务器地址

nameserver DNS服务器IP地址(小于等于3个)

 

3.  网络管理命令

1)  ifconfig

功能描述

用于查看或设置网络设备

语法

ifconfig [选项]

示例:

ifconfig                       #查看网络设备信息

ifconfig ens33 192.168.1.152    #临时修改 IP 地址

ifconfig ens33 down/up          #关闭或开启 ens33 网卡

 

2)  ethtool

功能描述

检测网络连接

语法

ethtool [选项]

示例:

ethtool ens33       #检测ens33 网卡是否插入网线

 

3)  arp

功能描述

查看 APR 表信息

语法

arp [选项]

示例:

arp -a                 #查看 APR 缓存表

arp -d IP地址          #删除 ARP 地址

arp -s IP地址MAC地址  #添加 ARP 静态记录

 

4)  ping

功能描述

探测远程主机

语法

ping [选项]

示例:

ping -c 3 47.99.169.130         #指定发送ping 包的次数

ping -s 1000 47.99.169.130     #指定发送ping 包的大小

 

提示:0% packet loss            #需要注意丢包率

 

5)  route

功能描述

操作路由表

语法

route [选项]

示例:

 

6)  traceroute

功能描述

查看路由路径

语法

traceroute [选项]

示例:

traceroute test.ms.zxsxdd.com      #查看路由过程

 

7)  netstat

功能描述

监控网络状态

语法

netstat [选项]

示例:

netstat -tunpl                 #查看全部端口

netstat -tunpl | grep 6379      #查看某个端口

netstat -an | more              #查看系统监听的端口

netstat -an | grep :80          #查看运行端口

 

说明:也可以使用 !net 命令。

 

8)  查看监听的端口

netstat -lnpt

netstat -tunpl | grep :80

netstat -lnpt | grep 5672       #检查端口被哪个进程占用

ps 6832                        #查看进程的详细信息

kill -9 6832                   #中止进程

 

9)  重启网络

service restart network

 

4.  防火墙管理命令

1)  使用systemctl 管理

systemctl status firewalld          #查看防火墙状态

systemctl start firewalld           #开启防火墙

systemctl stop firewalld            #关闭防火墙

systemctl disable firewalld         #停止并禁用开机自启动

systemctl enable firewalld          #启用开机自启动

systemctl restart firewalld         #重新启动

 

或者 service firewalld status

 

2)  使用 firewall-cmd 命令管理(CentOS7 以上版本)

firewall-cmd --state                #查看防火墙状态

firewall-cmd --reload              #使配置立即生效

或者 service firewalld restart

 

1.  查看开放的端口

firewall-cmd --zone=public --list-ports --permanent

 

2.  开放端口

firewall-cmd --zone=public --add-port=80/tcp --permanent

--zone             #作用域

--add-port=80/tcp   #开放的端口,格式为:端口/通讯协议

--permanent        #永久生效(没有此参数重启后会失效)

 

开放区间端口

firewall-cmd --zone=public --add-port=30000-31000/tcp --permanent

firewall-cmd --zone=public --add-port=30000-31000/udp --permanent

 

3.  验证开放端口是否生效

firewall-cmd --zone=public --query-port=8080/tcp

 

4.  关闭端口

firewall-cmd --zone=public --remove-port=82/tcp --permanent

 

5.  使用开放、关闭服务

列出支持的服务,在列表中的服务是放行的

firewall-cmd --get-services

 

查看 ftp 服务是否支持,返回yes或者no

firewall-cmd --query-service ftp

 

临时开放 ftp 服务

firewall-cmd --add-service=ftp

 

查看当前开了哪些端口

一个服务对应一个端口,每个服务对应/usr/lib/firewalld/services下面一个xml文件。

firewall-cmd --list-services

 

永久开放 ftp 服务

firewall-cmd --add-service=ftp --permanent

 

永久关闭 ftp 服务

firewall-cmd --remove-service=ftp --permanent

 

6.  开启常见的端口

firewall-cmd --zone=public --add-port=20/tcp --permanent

firewall-cmd --zone=public --add-port=21/tcp --permanent

firewall-cmd --zone=public --add-port=22/tcp --permanent

firewall-cmd --zone=public --add-port=80/tcp --permanent

firewall-cmd --zone=public --add-port=443/tcp --permanent

firewall-cmd --zone=public --add-port=1521/tcp --permanent

firewall-cmd --zone=public --add-port=6379/tcp --permanent

firewall-cmd --zone=public --add-port=53/udp --permanent

 

7.  关闭常见的端口

firewall-cmd --zone=public --remove-port=20/tcp --permanent

firewall-cmd --zone=public --remove-port=21/tcp --permanent

firewall-cmd --zone=public --remove-port=22/tcp --permanent

firewall-cmd --zone=public --remove-port=80/tcp --permanent

firewall-cmd --zone=public --remove-port=443/tcp --permanent

firewall-cmd --zone=public --remove-port=1521/tcp --permanent

firewall-cmd --zone=public --remove-port=6379/tcp --permanent

firewall-cmd --zone=public --remove-port=53/udp --permanent

 

firewall-cmd --get-zones

注:如果没有 firewall 需要先安装

yum install firewalld firewalld-config

posted @ 2021-12-25 13:06  Abeam  阅读(140)  评论(0编辑  收藏  举报