Linux 网络设置与基础服务

一 配置网络设置

  • 主机名 hostname

  • IP地址/netmask ifconfig ; ip a

  • 路由:默认网关 route -n

  • DNS服务器 cat /etc/resolv.conf

  • 网络连接状态 ss netstat

  • 域名解析 nslookup host

ifconfig

复制代码
ifconfig          具体网卡名称         #只显示具体网卡的详细信息(无论该网卡是否使用)

ifconfig          -a                 #表示显示所有网卡包括没有启动的网卡

ifconfig          网卡名称   [up|down]      #表示开启或关闭网卡

ifconfig          网络接口    ip地址/[netmask  子网掩码]

ifconfig          网络接口    ip地址[/子网掩码长度]      临时修改网卡名称

ifconfig           ens33:0          地址          #表示虚拟网卡

ifconfig修改IP地址

inconfig ens33 新的IP地址

bash 复制代码
[root@localhost ~]# ifconfig ens33 192.168.11.8


[root@localhost ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.11.8  netmask 255.255.255.0  broadcast 192.168.11.255
        inet6 fe80::42b7:9714:f504:2343  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:96:50:48  txqueuelen 1000  (Ethernet)
        RX packets 641  bytes 49417 (48.2 KiB)
需要重新连接一下Xshell

ifconfig添加临时IP地址

ifconfig删除临时IP地址

临时修改网卡名称

bash 复制代码
ip link set ens36 down
#先将网卡down掉
ip link set ens36 name abc
#然后改名
ip link set abc up
#最后再启动网卡

永久修改IP地址的方法

vim /etc/sysconfig/network-scripts/ifcfg-ens33

最好重启#systemctl restart network

临时修改网卡名称

①先down掉

②修改网卡名

③重启之后,就会消失

bash 复制代码
[root@localhost ~]# ifconfig ens33 down

Socket error Event: 32 Error: 10053.

连接另一个网卡ens33登录改名

[root@localhost ~]# ip link set ens33 name mcb
[root@localhost ~]# ifconfig mcb up
[root@localhost ~]# ifconfig mcb 
mcb: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.11.8  netmask 255.255.255.0  broadcast 192.168.11.255
        inet6 fe80::761e:9150:7c6f:2b3d  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:96:50:48  txqueuelen 1000  (Ethernet)
        RX packets 1870  bytes 129554 (126.5 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 536  bytes 63192 (61.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[root@localhost ~]# 

永久修改网卡名

vim /etc/default/grub

init 6,成功了

双卡配置

先在虚拟机设置里添加一张网卡

bash 复制代码
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens36
[root@localhost network-scripts]# vim ifcfg-ens36


TYPE=Ethernet
BOOTPROTO=static
NAME=ens36
DEVICE=ens36
ONBOOT=yes
IPADDR=192.168.91.110
NETMASK=255.255.255.0
GATEWAY=192.168.91.2


[root@localhost network-scripts]# systemctl restart network



[root@localhost ~]# ping 192.168.11.20
PING 192.168.11.20 (192.168.11.20) 56(84) bytes of data.
64 bytes from 192.168.11.20: icmp_seq=1 ttl=64 time=0.058 ms
64 bytes from 192.168.11.20: icmp_seq=2 ttl=64 time=0.051 ms
64 bytes from 192.168.11.20: icmp_seq=3 ttl=64 time=0.050 ms
64 bytes from 192.168.11.20: icmp_seq=4 ttl=64 time=0.049 ms
64 bytes from 192.168.11.20: icmp_seq=5 ttl=64 time=0.048 ms
bash 复制代码
[root@localhost ~]# ip link    #断网或拔掉网线状态
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 00:0c:29:96:50:48 brd ff:ff:ff:ff:ff:ff
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT qlen 1000
    link/ether 52:54:00:8d:7b:87 brd ff:ff:ff:ff:ff:ff
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN mode DEFAULT qlen 1000
    link/ether 52:54:00:8d:7b:87 brd ff:ff:ff:ff:ff:ff
[root@localhost ~]# 

ip add del

bash 复制代码
ip address del 10.0.0.8/24 dev ens33

#先加新IP,再删除旧的IP

#ip  a

ip route 路由

bash 复制代码
[root@localhost ~]# ip route 
default via 192.168.11.2 dev ens33 proto static metric 100 
192.168.11.0/24 dev ens33 proto kernel scope link src 192.168.11.20 metric 100 
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1 

route-n

Destnation

Gateway

Genmask

Flags

Metric

Ref

Use

Iface

①route add -net 10.0.0.0/8 gw 192.168.227.2

添加一条去往10.0.0.0段路由,通过网关192.168.227.2转发

②route del -net 10.0.0.0/8

删除去往10.0.0.0段路由

③route add -net 0.0.0.0(default) gw 192.168.227.2

添加默认路由

netstat

查看网络连接情况

-a 显示主机中所有活动的网络连接信息(包括监听、非监听状态的服务端口)。

-n 拒绝显示别名,以数字的形式显示相关的主机地址、端口等信息。

-t 查看TCP协议相关的信息。

-u 显示UDP协议相关的信息。

-r 显示路由表信息。

-l 显示处于监听状态(Listen)的网络连接及端口信息。

-p 显示与网络连接相关联的进程号、进程名称信息(该选项需要root权限)

ss

查看网络连接情况

-t tcp协议相关

-u udp协议相关

-w 裸套接字相关

-x unix sock相关

-l listen状态的连接

-a 显示所有连接

-n 数字格式

-p 相关的程序及PID

-e 扩展的信息

-m 内存用量

-o 计时器信息

-r --resolve 把 IP 解释为域名,把端口号解释为协议名称

区别

ss 更靠近内核(快)

netstat更靠近用户 (慢)

traceroute IP地址 跟踪数据包

nslookup

hostname 临时修改主机名

bash 复制代码
[root@localhost ~]# hostname  mg


登出

Connection closed.

Disconnected from remote host(7-64-2) at 18:46:11.


Last login: Tue Jan  9 18:01:12 2024 from 192.168.11.1
[root@mg ~]# ^C
[root@mg ~]# 
重启就消失

hostname 永久生效

①指令修改

②文件修改

tcpdump

一个强大的网络协议分析器,它主要用于监控和捕获网络流量数据包,并能够以易于阅读的格式显示这些信息。在Linux和其他类Unix系统中广泛使用,是网络管理员、安全专家和开发者进行网络故障排查、性能分析以及安全审计的重要工具

①tcpdump -i ens33 指定查看 ens33 网卡

②tcpdump -D 查看网卡

复制代码
#查看系统当前所有网卡的信息
#tcpdump -D
 
#监听特定网卡
tcpdump -i ens33
 
#监听特定主机,监听主机192.168.11.12的通信包,注意:出、入的包都会被监听
tcpdump host 192.168.11.12
 
#特定来源的通信
tcpdump src host hostname或ip地址/子网掩码
#特定目标地址的通信
tcpdump dst host hostname或ip地址/子网掩码
#如果不指定src跟dst,那么来源或者目标是hostname或ip地址/子网掩码的通信都会被监听
tcpdump host hostname或ip地址/子网掩码
 
#捕获从ip地址为192.168.11.12的主机发送到ip地址为192.168.11.9的主机的icmp报文
tcpdump -i eth0 -nn icmp and src host192.168.12 and dst host 192.168.11.9
 
#捕获特定端口的数据包
tcpdump port 1000
 
#监听TCP/UDP,服务器上不同服务分别用了TCP、UDP作为传输层,假如只想监听TCP的数据包
tcpdump tcp
 
#来源主机+端口+TCP,监听来自主机192.168.11.12在端口22上的TCP数据包
tcpdump tcp port 22 and src host 192.168.11.12
 
#监听特定主机之间的通信
tcpdump ip host 172.16.12.10 and 192.168.11.12
 
#192.168.11.12和除了192.168.11.9之外的主机之间的通信
tcpdump ip host 1192.168.11.12 and ! 192.168.11.9
 
#在eth1接口上抓取前100个源IP地址在172.16.12.0/24网段内、目标端口不为SSH的TCP 数据包,并将这些数据包保存到target.cap文件中,以便后续分析和处理
tcpdump tcp -i eth1 -t -s 0 -c 100 and dst port ! 22 and src net 172.16.12.0/24 
-w ./target.cap
(1)tcp: ip icmp arp rarp 和 tcp、udp、icmp这些选项等都要放到第一个参数的位置,用来过滤数
据报的类型
(2)-i eth1 : 只抓经过接口eth1的包
(3)-t : 不显示时间戳
(4)-s 0 : 抓取数据包时默认抓取长度为68字节。加上-S 0 后可以抓到完整的数据包
(5)-c 100 : 只抓取100个数据包
(6)dst port ! 22 : 不抓取目标端口是22的数据包
(7)src net 172.16.12.0/24 : 数据包的源网络地址为172.16.12.0/24
(8)-w ./target.cap : 保存成cap文件,方便用wireshark分析
 
#限制抓包的数量,如下,抓到1000个包后,自动退出
tcpdump -c 1000

bond网卡绑定

主备替用

1 直接给两块网卡设置同一IP地址是不可以的

2 将多块网卡绑定同一IP地址对外提供服务,实现利用率或者负载均衡

3 虚拟一块网卡对外提供连接,物理网卡的被修改为相同的MAC地址

①虚拟机再添加一张网卡

复制代码
[root@localhost ~]#systemctl stop firewalld
[root@localhost ~]#setenforce 0
setenforce: SELinux is disabled
[root@localhost ~]#cd /etc/sysconfig/network-scripts
[root@localhost network-scripts]#ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.11.9  netmask 255.255.255.0  broadcast 192.168.11.255
        inet6 fe80::49b8:5a32:b24e:fc95  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:83:50:c4  txqueuelen 1000  (Ethernet)
        RX packets 115353  bytes 167503435 (159.7 MiB)
        RX errors 1354  dropped 7209  overruns 0  frame 0
        TX packets 80916  bytes 4458103 (4.2 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 19  base 0x2000  

ens37: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether 00:0c:29:83:50:ce  txqueuelen 1000  (Ethernet)


[root@localhost network-scripts]#cp ifcfg-ens33 ifcfg-bondo
[root@localhost network-scripts]#vim ifcfg-bond0

[root@localhost network-scripts]#vim ifcfg-ens33

root@localhost network-scripts\]#vim ifcfg-ens37 ![](https://file.jishuzhan.net/article/1747255161199267841/25f04dd9d2960816dd1004c3268208e1.webp) \[root@localhost network-scripts\]#systemctl restart network ![](https://file.jishuzhan.net/article/1747255161199267841/61102e791e6e4595cd4f95b0d51cf8cd.webp) 若不断网#cd /etc/sysconfig/network-scripts # ls # rm-rf ifcfg-bondo 再次连接起来 ![](https://file.jishuzhan.net/article/1747255161199267841/fe04b11af210a6ba6e8cbe385e5f3457.webp) 查看bind0状态 ![](https://file.jishuzhan.net/article/1747255161199267841/c621f32aa75d6bb8db9f656c42d8e44a.webp) ![](https://file.jishuzhan.net/article/1747255161199267841/16047c766a44ec37584937dcd739cd6c.webp) 用另外虚拟机ping一下bond0的IP地址 ![](https://file.jishuzhan.net/article/1747255161199267841/7b146083a18578cf6ac87c6e6602340b.webp) 查看一下bond0状态 第一种情况 ![](https://file.jishuzhan.net/article/1747255161199267841/bc337766909e63afad9997359ca00e55.webp) ![](https://file.jishuzhan.net/article/1747255161199267841/25aab00cda18d4c72796f5de32579542.webp) 第二种状态 ![](https://file.jishuzhan.net/article/1747255161199267841/28f1343d5f05285c8a57ab8aec94f7fb.webp) ![](https://file.jishuzhan.net/article/1747255161199267841/bc0d4211f5877a9f59afe268ba2912c8.webp) ![](https://file.jishuzhan.net/article/1747255161199267841/cce16e4bfc12e405270b5f2bab2b01e5.webp) #### 方法二 centos8: nmcli实现bonding #创建新连接static ,指定静态IP,不自动连接 nmcti con add con-name static ifname eth0 autoconnect no type Ethernet ipv4.addresses 172.25.X.10/24 ipv4.gateway 172.25.X.254 nmcli connection modify ens33 ipv4.addresses 192.168.91.100/2 nmcli connection up ens33 #添加bonding接口 nmcli con add type bond con-name mybond0 ifname bond0 mode active-backup ipv4.method manual ipv4.addresses 192.168.91.123/24 #添加从属接口 nmcli con add type bond-slave ifname ens33 master bond0 nmcli con add type bond-slave ifname ens36 master bond0 #注:如无为从属接口提供连接名,则该名称是接口名称加类型构成 #要启动绑定,则必须首先启动从属接口 nmcli con up bond-slave-ens33 nmcli con up bond-slave-ens36 #启动绑定 nmcli con up mybond0

相关推荐
伤不起bb几秒前
MySQL 高可用
linux·运维·数据库·mysql·安全·高可用
shykevin2 小时前
python开发Streamable HTTP MCP应用
开发语言·网络·python·网络协议·http
whgjjim2 小时前
docker迅雷自定义端口号、登录用户名密码
运维·docker·容器
tmacfrank3 小时前
网络编程中的直接内存与零拷贝
java·linux·网络
数据与人工智能律师5 小时前
虚拟主播肖像权保护,数字时代的法律博弈
大数据·网络·人工智能·算法·区块链
瀚高PG实验室5 小时前
连接指定数据库时提示not currently accepting connections
运维·数据库
QQ2740287565 小时前
Soundness Gitpod 部署教程
linux·运维·服务器·前端·chrome·web3
淡忘_cx6 小时前
【frp XTCP 穿透配置教程
运维
qwfys2006 小时前
How to configure Linux mint desktop
linux·desktop·configure·mint
南方以南_6 小时前
Ubuntu操作合集
linux·运维·ubuntu