Linux网络设置及DHCP

简介: Linux网络设置及DHCP

Linux网络设置及DHCP

一、Linux网络设置基础命令

1、ifconfig

ifconfig  查看本机所有正在运行的网络设备
      设备名   //查看指定设备
      -a:查看所有网络设备(包括不再运行的网卡)
      -s:查看网络通讯情况

image.png

ifconfig 设备名 up   //打开指定设备  =ifup 设备名
ifconfig 设备名 down //关闭指定设备  =ifdown 设备名
ifconfig ens33:0 192.168.147.30/24    //创建虚拟网卡
注意:如果关闭虚拟网卡,虚拟网卡会消失,无法再次打开

2、hostname

hostname 主机名    //临时修改主机名,su命令刷新生效,重启服务器失效
永久修改主机名:
vim /etc/hostname           //修改配置文件
hostnamectl set-hostname 主机名      //命令修改,su刷新生效

3、route

[root@localhost ~]# route     //显示路由表
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         gateway         0.0.0.0         UG    100    0        0 ens33
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
192.168.147.0   0.0.0.0         255.255.255.0   U     100    0        0 ens33
[root@localhost ~]# route -n    //以数字形式显示路由表
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.147.2   0.0.0.0         UG    100    0        0 ens33
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
192.168.147.0   0.0.0.0         255.255.255.0   U     100    0        0 ens33

添加路由的方法:

add -net 网段地址/子网掩码 gw IP地址 dev 网卡名称(ens33)

添加静态路由和默认路由:

add -net 192.168.14.0/24 gw 192.168.147.100 dev ens33
route add default gw 192.168.147.100 dev ens33

删除添加的路由:

route del 192.168.14.0/24 gw 192.168.147.100
route del default gw 192.168.147.100

永久添加路由:

[root@localhost ~]# vim /etc/sysconfig/static-routes
any net any gw 192.168.147.100          //所有流量都从100转发
any net 192.168.14.0/24 gw 192.168.147.100    //14.0网段都走21网关服务器转发
:wq!
[root@localhost ~]# systemctl restart network

4、netstat

格式:

netstat [选项]
    -a:显示主机中所有活动的网络连接信息
    -n:以数字的形式显示相关的主机地址、端口等信息
    -r:显示路由表信息
    -l:显示处于监听状态(Listen)的网络连接及端口信息
    -t:查看TCP协议相关的信息
    -u:显示UDP协议相关的信息
    -p:显示与网络连接相关联的进程号、进程名称信息(该选项需要root权限)

例:

[root@localhost ~]# netstat -antp | grep sshd
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      59576/sshd          
tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN      64605/sshd: root@pt 
tcp        0      0 127.0.0.1:6012          0.0.0.0:*               LISTEN      60712/sshd: root@pt 
tcp        0     36 192.168.147.100:22      192.168.147.1:62318     ESTABLISHED 64605/sshd: root@pt 
tcp        0      0 192.168.147.100:22      192.168.147.1:57348     ESTABLISHED 60712/sshd: root@pt 
tcp6       0      0 :::22                   :::*                    LISTEN      59576/sshd          
tcp6       0      0 ::1:6010                :::*                    LISTEN      64605/sshd: root@pt 
tcp6       0      0 ::1:6012                :::*                    LISTEN      60712/sshd: root@pt 
[root@localhost ~]# netstat -antp | grep 22
tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN      1648/dnsmasq        
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      59576/sshd          
tcp        0     36 192.168.147.100:22      192.168.147.1:62318     ESTABLISHED 64605/sshd: root@pt 
tcp        0      0 192.168.147.100:22      192.168.147.1:57348     ESTABLISHED 60712/sshd: root@pt 
tcp6       0      0 :::22                   :::*                    LISTEN      59576/sshd          

5、ss

ss也可以查看网络连接情况,主要用于获取 socket 统计信息,它可以显示和 netstat 命令类似的输出内容

ss [选项]
    -t:tcp协议相关
    -u:udp协议相关
    -w:裸套接字
    -x:内核socket信息
    -l:处于监听状态
    -a:显示所有网络链接活动
    -n:数字格式显示
    -p:相关的程序及PID

例:

[root@localhost ~]# ss -antp | grep sshd
LISTEN     0      128          *:22                       *:*                   users:(("sshd",pid=59576,fd=3))
LISTEN     0      128    127.0.0.1:6010                     *:*                   users:(("sshd",pid=64605,fd=9))
LISTEN     0      128    127.0.0.1:6012                     *:*                   users:(("sshd",pid=60712,fd=9))
ESTAB      0      36     192.168.147.100:22                 192.168.147.1:62318               users:(("sshd",pid=64605,fd=3))
ESTAB      0      0      192.168.147.100:22                 192.168.147.1:57348               users:(("sshd",pid=60712,fd=3))
LISTEN     0      128         :::22                      :::*                   users:(("sshd",pid=59576,fd=4))
LISTEN     0      128        ::1:6010                    :::*                   users:(("sshd",pid=64605,fd=8))
LISTEN     0      128        ::1:6012                    :::*                   users:(("sshd",pid=60712,fd=8))
[root@localhost ~]# ss -antp | grep 22
LISTEN     0      5      192.168.122.1:53                       *:*                   users:(("dnsmasq",pid=1648,fd=6))
LISTEN     0      128          *:22                       *:*                   users:(("sshd",pid=59576,fd=3))
ESTAB      0      0      192.168.147.100:22                 192.168.147.1:62318               users:(("sshd",pid=64605,fd=3))
ESTAB      0      0      192.168.147.100:22                 192.168.147.1:57348               users:(("sshd",pid=60712,fd=3))
LISTEN     0      128         :::22                      :::*                   users:(("sshd",pid=59576,fd=4))

6、ping

ping -c 数字        //指定ping的次数
   -w 数字        //指定等待超时的次数

7、traceroute

traceroute IP地址或域名    //测试从当前主机到目的主机之间经过的节点
例:
traceroute 180.101.50.188

8、nslookup

nslookup  目标主机地址  [DNS服务器地址]
(正向解析,域名——>IP地址)

image.png

9、dig

[root@localhost ~]# dig www.baidu.com     //将域名解析为IP地址,显示更多信息
; <<>> DiG 9.9.4-RedHat-9.9.4-50.el7 <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54451
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;www.baidu.com.     IN  A
;; ANSWER SECTION:
www.baidu.com.    406 IN  CNAME www.a.shifen.com.
www.a.shifen.com. 58  IN  A 180.101.50.242
www.a.shifen.com. 58  IN  A 180.101.50.188
;; Query time: 46 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: 四 5月 18 19:06:33 CST 2023
;; MSG SIZE  rcvd: 101

二、网络设置

1、网卡设置

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 
TYPE=Ethernet               //类型为以太网
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static              //IP地址获取形式,dhcp表示动态获取,static表示静态 
DEFROUTE=yes                //原本为no,修改为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                  //设备名ens33
UUID=8237b057-d2f0-4c8c-a235-d8df458162da
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.147.100            //本机IP地址
NETMASK=255.255.255.0           //子网掩码
GATEWAY=192.168.147.2           //网关
DNS1=8.8.8.8                //IP地址的DNS服务器
:wq!
[root@localhost ~]# systemctl restart network

2、DNS解析地址的配置文件

[root@localhost ~]# vim /etc/resolv.conf 
# Generated by NetworkManager
nameserver 8.8.8.8

3、主机域IP地址进行映射的配置文件

[root@localhost ~]# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

三、DHCP原理及配置

1、原理

DHCP(动态主机配置协议),专门用于为TCP/IP网络中的计算机自动分配TCP/IP参数的协议

2、好处

  • 减少管理员的工作量
  • 避免输入错误的可能
  • 避免IP地址冲突
  • 当更改lP地址段时,不需要重新配置每个用户的IP地址
  • 提高了IP地址的利用率
  • 方便客户端的配置

3、分配方式

  • 自动分配:分配到一个IP地址后永久使用
  • 手动分配:由DHCP服务器管理员专门指定IP地址
  • 动态分配:使用完后释放该IP,供其它客户机使用

4、DHCP租约过程

image.png

  1. 客户端搜索服务端 discover报文—dhcp服务器 方式:广播
  2. 服务端向客户端响应
  3. 我从地址池选一个可用的ip地址,打上标记,以offer广播的形式发出去
  4. 客户端request —服务端,第一个响应的客户端发
  5. ACK确认 提供可用的IP和租期信息

5、设置DHCP服务器并分配地址

[root@localhost dhcp]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example  /etc/dhcp/dhcpd.conf 
[root@localhost dhcp]# vim dhcpd.conf 

image.png

[root@localhost dhcp]# systemctl restart dhcpd
[root@localhost dhcp]# systemctl stop firewalld
[root@localhost dhcp]# setenforce 0

将两台虚拟机设置为仅主机模式

image.png

image.pngimage.png


客户端配置(2号虚拟机)

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 

image.png

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# ifconfig 
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.147.101  netmask 255.255.255.0  broadcast 192.168.147.255  //原本地址为101
        inet6 fe80::7127:f87a:135a:9530  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:82:f7:07  txqueuelen 1000  (Ethernet)
        RX packets 24938  bytes 1941009 (1.8 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 9176  bytes 1578896 (1.5 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1  (Local Loopback)
        RX packets 56031578  bytes 61900219422 (57.6 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 56031578  bytes 61900219422 (57.6 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:53:76:9e  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
[root@localhost ~]# systemctl restart network

验证

[root@localhost ~]# ifconfig 
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.147.40  netmask 255.255.255.0  broadcast 192.168.147.255 //地址改变为40
        inet6 fe80::7127:f87a:135a:9530  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:82:f7:07  txqueuelen 1000  (Ethernet)
        RX packets 25169  bytes 1963436 (1.8 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 9429  bytes 1613110 (1.5 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1  (Local Loopback)
        RX packets 58798429  bytes 91769092952 (85.4 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 58798429  bytes 91769092952 (85.4 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:53:76:9e  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

四、给单机分配固定的 IP 地址

host hostname {                   #指定需要分配固定 IP地址的客户机名称
  hardware ethernet 00:0c:29:f7:ef:23;        #指定该主机的 MAC地址
  fixed-address 192.168.147.200;            #指定保留给该主机的 IP地址
}

image.png

image.png

目录
相关文章
|
3天前
|
监控 安全 Linux
【专栏】Linux 中有哪些常用的网络命令,分别适用于什么场景?
【4月更文挑战第28天】本文介绍了Linux中六个常用的网络命令:ping、traceroute、netstat、nmap、ifconfig和ip,以及它们在测试网络连通性、追踪路由、查看网络状态、安全扫描和接口配置等场景的应用。通过学习和运用这些命令,系统管理员和网络爱好者能更有效地诊断和管理网络问题,确保网络稳定运行。
|
4天前
|
网络协议 算法 Linux
【Linux】深入探索:Linux网络调试、追踪与优化
【Linux】深入探索:Linux网络调试、追踪与优化
|
1天前
|
JSON 网络协议 Linux
Linux ip命令:网络的瑞士军刀
【4月更文挑战第25天】
7 1
|
2天前
|
缓存 网络协议 Linux
Linux 网络命令大全,详细归纳!
【4月更文挑战第24天】
22 3
Linux 网络命令大全,详细归纳!
|
3天前
|
网络协议 JavaScript Linux
Linux常用网络指令(下)
Linux常用网络指令(下)
10 0
|
3天前
|
Linux
Linux常用网络指令(上)
Linux常用网络指令(上)
6 0
|
3天前
|
安全 Linux 网络安全
【专栏】Linux 网络扫描工具:nmap,涨知识的时间到了!
【4月更文挑战第28天】nmap, 开源网络扫描工具,用于探测主机、网络信息,包括开放端口、服务类型、OS等。本文分三部分介绍:1) nmap简介与基本原理;2) 使用方法和高级技巧,如脚本扩展;3) 实际应用,如网络安全评估、系统管理和渗透测试。学习nmap需注意合规性,持续探索新技巧,以提升网络管理与安全能力。一起开始nmap的探索之旅吧!
|
3天前
|
安全 网络协议 Linux
【专栏】一文教你玩转 Linux 的 ping 命令,从此成为 Linux 网络高手
【4月更文挑战第28天】本文详细介绍了Linux系统中ping命令的使用,包括其基本语法、输出信息、常用参数及高级用法。通过ping,用户可测试网络连通性、诊断故障及评估性能。此外,文章还讨论了ping在不同协议、模拟网络环境及与其他命令结合使用时的场景。注意防火墙和网络环境可能影响ping结果,理解错误信息有助于网络问题排查。熟练掌握ping命令,能助你成为Linux网络专家。不断学习和实践,提升网络技能,为构建稳定网络环境贡献力量。
|
3天前
|
运维 监控 安全
【专栏】运维工程师必须知道的 11 个 Linux 网络命令
【4月更文挑战第28天】本文介绍了11个必备的Linux网络命令,包括ifconfig、ip、ping、traceroute、netstat、tcpdump、ss、telnet、ftp、ssh和nmap,这些命令在网络配置、故障排查和性能监控中发挥关键作用。通过实例分析,强调了它们在实际工作中的综合应用,帮助运维工程师提升效率和应对网络挑战。学习和熟练运用这些命令是提升网络管理能力的基础。
|
3天前
|
监控 负载均衡 网络协议