Linux网络相关知识

简介:

ifconfig命令

  • 查看网卡IP

如果系统没有该命令可以使用yum安装:

[root@adai003 ~]# yum install -y net-tools

查看网卡IP还可以使用命令:ip add,这个显示有点乱!

  • ifconfig -a

显示所有网卡信息(包括down掉的或者没有IP地址的网卡)

启动/关闭网卡

  • ifup/ifdown [网卡名]

应用环境:更改单个指定网卡配置后需要重启才能生效,为了避免关闭或重启所有网卡可以对单个网卡执行该命令。
注: 如果网卡正在使用中,不要单独使用ifdown命令!!!解决办法: “# ifdown ens33 && ifup ens33”,使两个命令一起执行!

为虚拟机添加网卡

关闭虚拟机,按如下顺序操作:

mark

点击下一步:

mark
在此可以指定网络适配器(网卡)类型,也可以在添加完成后进行选择:

mark

点击“确定”即添加完成!

注: 如果以上操作是在开机状态下执行,添加完成后需要重启网络服务!!!

为新增网卡添加配置文件

查看新增网卡的配置信息:

mark
在此可以查看其所在网段。

配置新增网卡信息:
开启虚拟机后进行如下操作:

查看网络信息: mark

网卡配置文件位置(复制原有网卡,进行重命名):
/etc/sysconfig/network-scripts/  
[root@localhost ~]# cd /etc/sysconfig/network-scripts/创建新增网卡配置文件:
[root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens37[root@localhost network-scripts]# vim ifcfg-ens37#更改该配置文件下的网卡名为ens37#删除UUID配置完成后重启网络服务:
[root@localhost network-scripts]# systemctl restart network至此,添加完成,之后变可以通过编辑该文件来配置该网卡!!!

注: 因本次添加的网卡的网络连接类型是host-only模式,所以其IP和ens33不在同一网段。

增加虚拟网卡

  • 步骤:

1、切换至网卡配置文件
[root@adai003 ~]# cd /etc/sysconfig/network-scripts/2、复制系统网卡
[root@adai003 network-scripts]# cp ifcfg-ens33 ifcfg-ens33\:0 3、编辑复制的配置文件
[root@adai003 network-scripts]# vi ifcfg-ens33\:0TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33:0
DEVICE=ens33:0
ONBOOT=yes
IPADDR=192.168.8.138
NETMASK=255.255.255.0
GATEWAY=192.168.8.2
DNS1=119.29.29.29
说明:更改NAME、DEVICE、IPADDR,系统已经设定网关可DNS,所以在此可以删除GATEWAY和DNS,也可以保留,但是,如果要保留该选项则必须保持其与系统网卡配置一致!

4、重启系统网卡
[root@adai003 network-scripts]# ifdown ens33 && ifup ens33成功断开设备 'ens33'。
成功激活的连接(D-Bus 激活路径:/org/freedesktop/NetworkManager/ActiveConnection/3)

5、查看网卡信息
[root@adai003 network-scripts]# ifconfigens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.8.125  netmask 255.255.255.0  broadcast 192.168.8.255
        ……

ens33:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.8.158  netmask 255.255.255.0  broadcast 192.168.8.255
        ether 00:0c:29:61:7d:7a  txqueuelen 1000  (Ethernet)

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)
        ……
6、检测虚拟网啊IP是否通畅

在Windows系统cmd下ping该IP即可!

查看网卡是否连接

  • 方法1:mii-tool [网卡名]

[root@adai003 ~]# mii-tool ens33ens33: negotiated 1000baseT-FD flow-control, link ok

查看:link ok说明网卡连接OK!

  • 方法2:ethtool [网卡名]

[root@adai003 ~]# ethtool ens33Settings for ens33:
	Supported ports: [ TP ]
	Supported link modes:   10baseT/Half 10baseT/Full 
……
	Current message level: 0x00000007 (7)
			       drv probe link
	Link detected: yes

查看:Link detected: yes说明网卡连接OK!

主机名

  • 更改主机名&主机名配置文件

更改:
[root@adai003 ~]# hostnamectl set-hostname adai0003查看主机名:
[root@adai003 ~]# hostnameadai0003
注:更改后的主机名要在系统重启之后才会显示!  

主机名的配置文件:
[root@adai003 ~]# cat /etc/hostname adai003

DNS配置

  • DNS配置文件:/etc/resolv.conf

[root@adai003 ~]# cat /etc/resolv.conf # Generated by NetworkManagernameserver 119.29.29.29

注: 更改网卡配置即可更改DNS配置文件,更改后需要重启网卡(ifdown/ifup)后生效,也可编辑‘/etc/resolv.conf’临时更改DNS配置,该办法在重启网卡后会被网卡配置文件中的DNS覆盖!

  • 本地域名配置文件文件:/etc/hosts

[root@adai003 ~]#  cat /etc/hosts127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

说明: 使用vi命令可在该配置文件下可以自定义IP所对应的域名(一个IP对应多个域名或一个域名对应多个IP,用空格隔开,当一个域名对应多个IP时,以配置文件中靠后面的配置为准),但是该域名配置只在本机生效!

10.12 firewalld和netfilter

SELinux防火墙

  • 临时关闭SELinux防火墙:

[root@adai003 ~]# setenforce 0
  • 永久关闭SELinux防火墙:

编辑配置文件‘/etc/selinux/config’

[root@adai003 ~]# vim /etc/selinux/config……#     disabled - No SELinux policy is loaded.SELINUX=disabled# SELINUXTYPE= can take one of three two values:……#     mls - Multi Level Security protection.SELINUXTYPE=targeted

将SELINUX=enforcing改为disabled保存,重启系统即可!

  • 查看SELinux防火墙状态

[root@adai003 ~]# getenforceDisabled

netfilter(Firewalld)

Centos7中默认将原来(centos5/6)的防火墙netfileter升级为了firewalld。iptables是它们实现防火墙功能的工具。

为了方便学习,暂时停用firewalld,开启centos6/5的防火墙机制netfilter。

  • 停用firewalld

1、关闭firewalld(禁止开机启动)
[root@adai003 ~]# systemctl disable firewalldRemoved symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.2、停止firewalld服务
[root@adai003 ~]# systemctl stop firewalld
  • 开启netfilter

开启前先安装iptables工具包:
[root@adai003 ~]# yum install -y iptables-services  开启iptables服务:
[root@adai003 ~]# systemctl enable iptablesCreated symlink from /etc/systemd/system/basic.target.wants/iptables.service to /usr/lib/systemd/system/iptables.service.
[root@adai003 ~]# systemctl start iptables

说明: 安装完成后默认开启iptables服务。

  • 查看iptables规则:iptables -nvL

[root@adai003 ~]# iptables -nvL
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    7   536 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           
    0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:22
    0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT 5 packets, 684 bytes)
 pkts bytes target     prot opt in     out     source               destination

10.13 netfilter 5表及链的介绍

表名

  • filter:包过滤,用于防火墙规则。

  • nat:地址转换,用于网关路由器。

  • mangle:用于给数据包打标记,然后根据标记去操作那些表。(不常用)

  • 还有两个不常用的表:raw和security,在此不多讲述。

规则链名

  • filter的三种链:

    • INPUT链:作用于输入本机的数据包。

    • OUTPUT链:作用于本机输出的数据包。

    • FORWARD链:作用于与本机无关的包。

  • nat的三种链:

    • PREROUTING链:作用是在包刚刚到达防火墙时改变它的目的地址,如果需要的话。

    • OUTPUT链:改变本地产生的包的目的地址。

    • POSTROUTING链:在包离开防火墙之前改变其源地址。

nat表应用(了解内容)

环境:
假设有三台机器(A,B,C),A机器上有一块网卡连接公网IP1;B机器上有两块网卡b1、b2,b1、b2分别连接公网和私网IP2,、IP3;C机器上有一块网卡连接私网IP4。很明显此时A&B,B&C之间都分别能互通,但是A和C之间是不能直接连通的,只能借助B做媒介才能连通。那么如何设置才能使得A和C之间互通呢?

方法:

先打开路由转发功能:
[root@adai003 ~]# echo "1" > /proc/sys/net/ipv4_forward

然后对nat表做IP转发配置:
[root@adai003 ~]# iptables -t nat -A POSTROUTING -s IP2(此处IP在同一个网段即可) -o ensA(A机器的网卡名称) -j MASQUERADE

说明: -o 选项后面跟设备名称,表示出口网卡,MASQUERADE是伪装、冒充的意思。

10.14 iptables语法

iptables命令是Linux上常用的防火墙软件,是netfilter项目的一部分。可以直接配置,也可以通过许多前端和图形界面配置。

语法: iptables [options] [参数]
Options:
-n:不针对IP反解析主机名
-v:显示更详细的信息
-t:指定表(iptables命令默认作用于filter表)
-L:显示信息
-F:清空所有规则
-A/D:=add/delete,添加/删除一条规则
-I:插入一条规则
-p:指定协议,可以是tcp,udp或icmp
--sport:跟-p一起使用,指定源端口
--dport:跟-p一起使用,指定目标端口
-s:指定源IP(可以是一个IP段)
-d:指定目的IP(可以是一个IP段)
-j:后面跟动作(ACCEPT表示允许包;DROP表示丢掉包;REJECT表示拒绝包)
-i:指定网卡
-Z:把包以及流量计数器清零
-P:=pre,预设策略

  • iptables命令选项输入顺序:

iptables -t 表名 <-A/I/D/R> 规则链名 [规则号] <-i/o 网卡名> -p 协议名 <-s 源IP/源子网> --sport 源端口 <-d 目标IP/目标子网> --dport 目标端口 -j 动作
  • 查看规则

[root@adai003 ~]# iptables -nvL

iptables规则配置文件:/etc/sysconfig/iptables

  • 清空规则

[root@adai003 ~]# iptables -F

注: 该命令不会清除配置文件内的规则!当更改规则后需要执行命令‘service iptables save’将其保存到配置文件。

  • 增加一条规则(-A/I)

[root@adai003 ~]# iptables -A INPUT -s 192.168.188.1 -p tcp --sport 1234 -d 192.168.188.128 --dport 80 -j DROP

说明: 增加一条规则,当IP~192.168.188.1、协议为tcp、端口为‘1234’的向IP~192.168.188.128、端口为80的机器发送包时执行操作:drop(丢掉包)。
注: 该命令也可以把-A换成-I,两者的区别类似于排队和插队,两种方法插入的规则优先级不同。

  • 删除一条规则(-D)
    方法1: 知道规则的内容

[root@adai003 ~]# iptables -D INPUT -s 192.168.188.1 -p tcp --sport 1234 -d 192.168.188.128 --dport 80 -j DROP

注: 要删除一条规则时,必须和插入的规则一致,也就是说,两条iptables命令除了-A/I和-D不一样外,其他地方都一样。

方法2: 忘记规则内容
首先所以用以下命令查看规则序号:

[root@adai003 ~]# iptables -nvL --line-number

然后再执行删除命令:

[root@adai003 ~]# iptables -D INPUT [序号]
  • 更改预设策略(-P)

mark

执行命令:

# iptables -P OUTPUT DROP

结果:
mark

注意: 尽量不要随意更改该配置,尤其是在进行远程登录时,一旦执行该命令后将会断开连接。这个策略设定后只能用命令:‘iptables -P OUTPUT ACCEPT’来恢复成原始状态,不能使用-F参数。










本文转自 芬野 51CTO博客,原文链接:http://blog.51cto.com/yuanhaohao/2064900,如需转载请自行联系原作者
目录
相关文章
|
13天前
|
安全 Linux 虚拟化
网络名称空间在Linux虚拟化技术中的位置
网络名称空间(Network Namespaces)是Linux内核特性之一,提供了隔离网络环境的能力,使得每个网络名称空间都拥有独立的网络设备、IP地址、路由表、端口号范围以及iptables规则等。这一特性在Linux虚拟化技术中占据了核心位置🌟,它不仅为构建轻量级虚拟化解决方案(如容器📦)提供了基础支持,也在传统的虚拟机技术中发挥作用,实现资源隔离和网络虚拟化。
网络名称空间在Linux虚拟化技术中的位置
|
13天前
|
网络协议 安全 Linux
Linux网络名称空间之独立网络资源管理
Linux网络名称空间是一种强大的虚拟化技术🛠️,它允许用户创建隔离的网络环境🌐,每个环境拥有独立的网络资源和配置。这项技术对于云计算☁️、容器化应用📦和网络安全🔒等领域至关重要。本文将详细介绍在Linux网络名称空间中可以拥有的独立网络资源,并指出应用开发人员在使用时应注意的重点。
|
13天前
|
安全 网络协议 Linux
Linux网络名称空间概述
Linux网络名称空间是操作系统级别的一种虚拟化技术🔄,它允许创建隔离的网络环境🌐,使得每个环境拥有自己独立的网络资源,如IP地址📍、路由表🗺️、防火墙规则🔥等。这种技术是Linux内核功能的一部分,为不同的用户空间进程提供了一种创建和使用独立网络协议栈的方式。本文旨在全方面、多维度解释Linux网络名称空间的概念、必要性和作用。
Linux网络名称空间概述
|
21天前
|
Linux
Linux中centos桌面消失网络图标
Linux中centos桌面消失网络图标
13 0
|
1月前
|
Shell Linux C语言
【Shell 命令集合 网络通讯 】Linux 向指定用户或终端发送消息 write命令 使用指南
【Shell 命令集合 网络通讯 】Linux 向指定用户或终端发送消息 write命令 使用指南
34 0
|
11天前
|
存储 算法 Linux
【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现
【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现
31 6
|
14天前
|
网络协议 Linux
在Linux中,管理和配置网络接口
在Linux中管理网络接口涉及多个命令,如`ifconfig`(在新版本中被`ip`取代)、`ip`(用于网络设备配置)、`nmcli`(NetworkManager的CLI工具)、`nmtui`(文本界面配置)、`route/ip route`(处理路由表)、`netstat/ss`(显示网络状态)和`hostnamectl/systemctl`(主机名和服务管理)。这些命令帮助用户启动接口、设置IP地址、查看连接和路由信息。不同发行版可能有差异,建议参考相应文档。
19 4
|
1天前
|
Ubuntu 网络协议 Linux
Linux(20) Ubuntu 20.04 网络接口自动切换路由配置
Linux(20) Ubuntu 20.04 网络接口自动切换路由配置
9 0
|
2天前
|
机器学习/深度学习 缓存 监控
linux查看CPU、内存、网络、磁盘IO命令
`Linux`系统中,使用`top`命令查看CPU状态,要查看CPU详细信息,可利用`cat /proc/cpuinfo`相关命令。`free`命令用于查看内存使用情况。网络相关命令包括`ifconfig`(查看网卡状态)、`ifdown/ifup`(禁用/启用网卡)、`netstat`(列出网络连接,如`-tuln`组合)以及`nslookup`、`ping`、`telnet`、`traceroute`等。磁盘IO方面,`iostat`(如`-k -p ALL`)显示磁盘IO统计,`iotop`(如`-o -d 1`)则用于查看磁盘IO瓶颈。
|
14天前
|
网络协议 Linux SDN
虚拟网络设备与Linux网络协议栈
在现代计算环境中,虚拟网络设备在实现灵活的网络配置和隔离方面发挥了至关重要的作用🔧,特别是在容器化和虚拟化技术广泛应用的今天🌐。而Linux网络协议栈则是操作系统处理网络通信的核心💻,它支持广泛的协议和网络服务🌍,确保数据正确地在网络中传输。本文将深入分析虚拟网络设备与Linux网络协议栈的关联,揭示它们如何共同工作以支持复杂的网络需求。