一、Linux网络设置基础命令

1、ifconfig

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

在这里插入图片描述

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地址)

在这里插入图片描述

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: 四 518 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租约过程

在这里插入图片描述

  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 

在这里插入图片描述

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

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

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

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

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

在这里插入图片描述

[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地址
}

在这里插入图片描述
在这里插入图片描述

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐