Linux网络设置及DHCP
一、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: 四 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租约过程
- 客户端搜索服务端 discover报文—dhcp服务器 方式:广播
- 服务端向客户端响应
- 我从地址池选一个可用的ip地址,打上标记,以offer广播的形式发出去
- 客户端request —服务端,第一个响应的客户端发
- 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地址 }