centos7配置静态网卡--------------CSDN中该方面最详细教程
以centos7为例子,这份文档总结了几十种,五花八门的错误,只有你想不到,没有我没遇到的。
这份文档足够你解决关于centos7配置静态网卡的所有问题,已经是csdn最全的了
从零开始配图形化网卡
1.首先在 win系统 :
win+R
Cmd ,进入命令行
ipconfig, 查看网卡net8是否连接
2.搜索win中控制面版,
如下图,开启net8
找到ip4属性 先开启自动获取,等系统分配一个固定的内网ip,如下图
刚刚界面最小化
3.现在回到cmd命令行界面 ipconfig
已经配好了 ping -c 3 www.baidu.com 试试能否上网,
ping -c 3 www.baidu.com 表示在返回三次ping通的百度的数据后自动中断
ping成功如下图,丢包率为0.
命令行配置网卡 如下
注意图形化界面配置 IP DNS 静态路由 配置 也可以用命令行配置,但是新手不建议,当确切理解这些后或者准备多个机器装配了6遍以上再建议使用
命令行配置IP,和上面图形化类似 前面步骤一致win +R, ipconfig 查看nat的ip,网关,。虚拟机虚拟网络编辑器和win中的IP一致这些步骤和图形化配置一致,只是把如下图的内容换成命令行 vim /etc/sysconfig/network-scripts/ ifcfg-ens33,这个中的内容了
1 .前期准备:激活网卡:若网卡丢失则激活网卡
CentOS 7 中,可以使用多种方法来激活网络接口,常用的方法如下:
1.1使用 nmcli 命令:
使用 nmcli 命令可以管理网络连接,包括激活和禁用网络接口。可以使用以下命令激活网络接口:
sudo nmcli con up 连接名称
其中,连接名称>是要激活的网络连接的名称。
1.2修改 ifcfg 文件:
可以手动编辑网络接口的配置文件来激活网络接口。配置文件通常存在vim /etc/sysconfig/network-scripts/ 目录下,以 ifcfg-<接口名称> 的形式命名(例如 ifcfg-eth0)。
打开相应的 ifcfg 文件,确保 ONBOOT 选项设置为 yes,然后重启网络服务:
sudo systemctl restart network
1.3使用 ip 命令:
使用 ip 命令也可以激活网络接口。可以使用以下命令激活网络接口:
sudo ip link set dev 接口名称 up
1.4使用 nmtui 命令:
nmtui 是一个基于文本的用户界面工具,可以用于管理网络连接。可以使用以下命令打开 nmtui 界面:
sudo nmtui
在界面中选择相应的连接,然后编辑并激活它。
以上是一些在 CentOS 7 中激活网络接口的常用方法。根据您的习惯和需求选择适合您的方法。
2.配置网卡,包括IP,网关,dns,
[root@slave1 sysconfig]# cd /etc/sysconfig/network-scripts/
[root@slave1 network-scripts]# ls
[root@slave1 network-scripts]# vim ifcfg-ens33
我的配置如上图片中 ,为了方便你使用纯文字形式如下 但切记有些要修改成自己的
TYPE=Ethernet # 指定了网络接口的类型,这里是以太网接口
PROXY_METHOD=none # 指定了代理方法,这里是没有代理。
BROWSER_ONLY=no # 指定了是否仅供浏览器使用,这里是不仅供浏览器
BOOTPROTO=static # 使用静态IP地址配置。动态则设为DHCP
DEFROUTE=yes # 指定了默认路由是否打开。
IPV4_FAILURE_FATAL=no # 指定了IPv4连接失败时该错误是否致命
IPV6INIT=yes # 指定是否开启IPv6进行初始化
IPV6_AUTOCONF=yes # 是否开启IPv6的自动配置。
IPV6_DEFROUTE=yes # 指定了IPv6的默认路由是否打开。
IPV6_FAILURE_FATAL=no # 用来指定IPv6连接失败时是否被认为致命错误,设为no,系统会将其视为致命错误,连接失败不会导致系统停止网络功能或整体系统受到严重影响。系统将继续尝试处理连接问题,而不会立即放弃,设为yes, 则表示当IPv6连接失败时,系统将把这种情况视为致命错误,可能会导致系统停止网络功能或者出现其他严重问题。ip4同理
IPV6_ADDR_GEN_MODE=stable-privacy # 指定了IPv6地址生成模式
NAME=ens33 # 自动生成默认的接口名称
UUID=85e0b05c-db67-4789-9257-4b4c39afe49c # 自动生成的默认唯一网卡id每个虚拟机唯一不要胡乱更改否则网卡会消失
DEVICE=ens33 # 自动生成默认的网卡名称
ONBOOT=yes # 设为yes表示网卡设备会开机自启,开机自动打开并连接
DNS1=8.8.8.8 # 指定了首选的DNS服务器的IP地址为8.8.8.8。这是Google Public DNS的IP地址,用于解析域名
IPADDR=192.168.28.144 # 指定了该网络接口的IPv4地址为192.168…144。这个要改你自己的
PREFIX=24 # 指定了子网掩码的前缀长度为24,表示子网掩码为255.255.255.0,
GATEWAY=192.168.28.2 # 指定了网关的IP地址为192.168.28.2,这是用于连接本地网络和外部网络的路由器的IP地址,这个要改成你自己的
3.临时添加多个网卡 此步骤一般不用,有需求再用
ifconfig ens33:0 192.168.153.123/24 # 添加一个临时ip
ip a add dev ens33 192.168.28.112/24 # 添加一个临时ip
用ip a add添加的临时ip,用ip a del删除;
用ifconfig添加的临时ip,用ifconfig删除
4.永久添加多个网卡 此步骤一般不用,有需求再用
5.为了防止dns未生效,手动追加
更换DNS服务器:编辑vim /etc/resolv.conf文件,确保其中包含正确的DNS服务器地址。
找到以"nameserver"开头的行,将其中的DNS服务器地址更改为你想要使用的公共DNS服务器地址,您可以尝试将以下内容添加到该文件中:
nameserver 8.8.8.8
nameserver 114.114.114.114
Win 配置静态ip, 企业用静态,自己用动态,原因:企业IP给别人访问,要用静态IP ,企业服务器集群要配静态IP不然集群IP一直变会导致各种报错
6.命令行配置静态路由
此步骤可不做,125 做完,ip可上网就不必配置这,除非是,没有图形化界面, 且前三步弄完,ping 不通在尝试此步骤
首先可以检查/etc/sysconfig/static-routes文件是否存在,如果不存在,请创建一个并将自己的路由网关添加到其中
假如我的IP是192.168.28.4,掩码255.255.255.0 网关192.168.28.1
那么下一跳网关为192.168.28.1
通过执行以下命令打开该文件:sudo vi /etc/sysconfig/network-scripts/route-eth0。这是centos7的地址其它步骤一致地址经查找换成各自的
如果文件不存在,可以创建一个新的文件并打开编辑器。在文件中添加以下行:
192.168.28.0/24 via 192.168.28.1 dev eth0
这将添加一个静态路由,将目标网络192.168.28.0/24的流量通过网关192.168.28.1发送到eth0接口。
保存并关闭文件。
重启网络服务以应用新的路由设置:sudo systemctl restart network
测试一下: ping -c 3 www.baidu.com 表示在返回三次ping通的数据后自动中断
总结,这样就添加了一个静态路由来访问目标网络192.168.28.0/24,下一跳网关为192.168.28.1。
请确保在编辑文件时按照正确的格式添加路由信息,并确保你了解你要添加的路由的详细参数,如目标网络和下一跳网关的IP地址。
若命令行ping不通,则,
ping失败,或者说网卡不能够上网,解决方案如下
ping www.baidu.com 报错如下:
ping; www.baidu.com: 未知的名称或服务
ping: www.baidu.com: 未知的名称或服务ping: www.baidu.com: 未知的名称或服务
ping:www.baidu.com:未知的名称或服务是因为无法解析出
www.baidu.com的IP地址。这可能是由于网络配置问题导致的。请按照以下步骤进行排查:
那么 开始按以下步骤检查
- 检查物理设备 确保网线或光缆已连接,
- 网络电缆断开、无线连接丢失等
- 而检查服务器云防火墙或物理机 如火绒这种 是不是禁止虚拟机联网了 我就有几次自定义没配好,虚拟机,没加入指定白名单
- 检查目标主机是否开机并连接到网络。
- 如果可以访问目标主机,登录后检查网络配置和连接
- 确认两台设备是否在同一个子网内,或者中间的路由配置是否正确。
- 使用
ifconfig
(Linux/Mac)或ipconfig
(Windows)查看网络接口配置。 - 验证源主机和目标主机的IP配置是否正确。
- 查看这些设备的日志,以检测是否有任何网络问题。
- 检查交换机和路由器的状态,确认是否正常工作。
-
检查路由表:虚拟机配静态如下 步骤5,物理机则自行百度,
Copy
route -n
- 原因:交换机、路由器或其他网络设备可能存在故障或配置错误。
-
检查防火墙设置:有问题则 根据以下步骤1关闭,或根据文章末尾
iptables
添加指定通过ipCopy
sudo iptables -L -v -n sudo firewall-cmd --list-all
- 检查源主机和目标主机的防火墙设置,确保允许ICMP流量。
- 在Linux系统上,可以使用
iptables
或firewalld
查看和修改防火墙规则。 - 在Windows系统上,可以通过
Windows Defender Firewall
进行设置。 -
ARP缓存问题:
- 原因:ARP缓存中的MAC地址可能错误或已过期。
- 排查:
- 在源主机上清理ARP缓存。可以使用
arp
命令查看和清理ARP缓存。例如,在Linux上可以用ip -s -s neigh flush all
。 - 重新Ping目标主机,查看问题是否解决
- 在源主机上清理ARP缓存。可以使用
-
清理ARP缓存:
Copy
sudo ip -s -s neigh flush all
-
检查网络设备状态:
192.168.28.1
这是我的局域网网网关 你的:192.168.xx.1 或10 .xx.xx.1或 10.8.xxx.1 -
Copy
ping -c 3 192.168.28.1 # Ping网关,确认网关是否可达
1.关防火墙和selinux,
setenforce 0
sestatus
vim /etc/selinux/config
SELINUX=disabled
systemctl status firewalld
systemctl disabled firewalld 或systemctl disable firewalld
1.1停止网卡管理服务的运行
sudo systemctl stop NetworkManager #network有时会和NetworkManager冲突
systemctl restart network
再次测试:
ping -c 3 baidu.com
如果还是连接失败
2. 检查DNS解析设置。
2.1 固定DNS 设为静态
更换DNS服务器:您可以编辑vim /etc/resolv.conf文件,确保其中包含正确的DNS服务器地址。找到以"nameserver"开头的行,将其中的DNS服务器地址更改为你想要使用的公共DNS服务器地址,您可以尝试将以下内容添加到该文件中: nameserver 8.8.8.8 nameserver 114.114.114.114
这些是Google的公共DNS服务器地址,您也可以使用其他可靠的DNS服务器。
2.2 清除本地DNS缓存:
在终端中执行以下命令来清除本地DNS缓存:sudo systemctl restart NetworkManager
然后关闭 sudo systemctl stop NetworkManager
NetworkManager 和network 有时会冲突
重启 网卡 sudo systemctl restart network
再次编辑vim /etc/resolv.conf文件
再次ping:
若还是失败那么
3.固定ip 和钉死主机名
Vim /etc/hosts 添加以下内容
192.168.28.4 master #改成自己的静态ip 主机名
保存退出重启网卡
systemctl restart network
ping -c 3 baidu.com
还是失败
4.检查以下
cd /etc/sysconfig/network-scripts/
ls
vi ifcfg-ens32
# 改成自己的网卡名
vi ifcfg-ens34
# 重启网卡 :
systemctl restart network
再次编辑vim /etc/resolv.conf文件
5 检查路由设置。
如果有图形化界面优先使用图形化界面配置
我的手动静态ip 和命令行终端上的 网关和虚拟网路编辑器保持一致, 掩码默认 ,静态路由ip一般和静态IP前三位保持一致,最后一位归零 ,静态路由网关一般和静态ip的网关 一致
度量值(metric),用于确定路由的优先级,默认情况下可以将其设置为 0。
点击 “保存” 按钮。如下图所示:
如果没有图形化那么命令行 设置静态路由如下
首先可以检查/etc/sysconfig/static-routes文件是否存在,如果不存在,请创建一个并将自己的路由网关添加到其中
假如我的IP是192.168.28.4,掩码255.255.255.0 网关192.168.28.1
那么下一跳网关为192.168.28.1
通过执行以下命令打开该文件:sudo vi /etc/sysconfig/network-scripts/route-eth0。这是centos7的地址其它步骤一致地址经查找换成各自的
如果文件不存在,可以创建一个新的文件并打开编辑器。在文件中添加以下行:
192.168.28.0/24 via 192.168.28.1 dev eth0
这将添加一个静态路由,将目标网络192.168.28.0/24的流量通过网关192.168.28.1发送到eth0接口。
保存并关闭文件。
重启网络服务以应用新的路由设置:sudo systemctl restart network
测试一下: ping -c 3 www.baidu.com 表示在返回三次ping通的数据后自动中断
总结,这样就添加了一个静态路由来访问目标网络192.168.28.0/24,下一跳网关为192.168.28.1。
请确保在编辑文件时按照正确的格式添加路由信息,并确保你了解你要添加的路由的详细参数,如目标网络和下一跳网关的IP地址。
6.检查网络配置文件。
检查/etc/sysconfig/network-scripts/ifcfg-ens33(根据您的网络适配器名称可能会有所不同)文件,确保其中的网络配置正确。
vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet # 指定了网络接口的类型,这里是以太网接口
PROXY_METHOD=none # 指定了代理方法,这里是没有代理。
BROWSER_ONLY=no # 指定了是否仅供浏览器使用,这里是不仅供浏览器
BOOTPROTO=static # 使用静态IP地址配置。动态则设为DHCP
DEFROUTE=yes # 指定了默认路由是否打开。
7.若是systemctl restart network 报错如下
则修改代码为
systemctl restart network
若是 systemctl restart network后 报错如下
job for network.service failed because the control proces exited with error code.see "s y"stemctl status network.service" and "journalctl -xe" for details
failed to start LSB bring up/down networking
则解决方法如下:
根据错误提示,进入到对应位置
cd /etc/sysconfig/network-script/
ls
发现里面多了很多除了ifcfg-ens33,ifcfg-lo之外的文件如下,果断删除
rm -rf ifcfg-ens33.swo ifcfg-ens33.swp ifcfg-default ifcfg-static
在CentOS系统上,目前有NetworkManager和network两种网络管理工具。如果两种都配置会引起冲突。由于一般我们都是使用 network 配置静态ip,可能是关机或挂起虚拟机(某种缘故)导致NetWorkManager自动配置,发生了冲突,所以把它禁用掉就好了。
临时关闭
systemctl stop NetworkManager
永久关闭
systemctl disable NetworkManager
重启
systemctl restart network重启网卡之后发现还是报错
进入提示报错的位置: vi /etc/sysconfig/network-script/ifup-eth, 检查了一下,发现这个文件里面多了很多东西,删除多余的东西,最终留下内容如下:
#!/bin/bash
# Network Interface Configuration System
# Copyright (c) 1996-2014 Red Hat, Inc. all rights reserved.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License, version 2,
# as published by the Free Software Foundation.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
. /etc/init.d/functions
cd /etc/sysconfig/network-scripts
. ./network-functions
[ -f ../network ] && . ../network
CONFIG=${1}
need_config "${CONFIG}"
source_config
if [ "${BOOTPROTO}" = "bootp" -o "${BOOTPROTO}" = "dhcp" ]; then
DYNCONFIG=true
fi
重启网卡
systemctl restart network
ping一下试试 :
ping -c 3 www.baidu.com
8.最后以上问题都没有出现但就是连不上那么启用,最终技能,端口转发
8. 最终技能,端口转发
:端口转发,缺点,ping的过程与dns有关,如果你真的连不上网,能不能ping通我不太确定但是用了端口转发,一定可以下载东西 ,一定可以上网,可以使用yum下载软件了,
Ping与端口转发的区别
ping命令通常用于检查主机之间的网络连通性,它基于ICMP协议(Internet Control Message Protocol)。在正常情况下,ping命令并不会经过端口转发,因为它并不是基于TCP或UDP协议通信,而是通过ICMP协议来发送和接收网络数据包。
端口转发通常应用TCP和UDP流,将特定端口的流量从一个网络接口的端口转发到另一个网络接口的不同端口。因此,对于ping命令来说,并不涉及端口转发的概念。
当你使用ping命令进行网络连通性测试时,它会直接发送ICMP数据包到目标主机,并等待目标主机的回复。这个过程不涉及端转发,而是直接进行IP数据包的传输。
端口转发
端口转发的作用是将来自一个端口的网络流量转发到另一个端口。允许来自外部网络的特定端口上的请求被转发到指定的目标端口上。这通常用于将外部网络请求转发给虚拟机、容器或其他网络设备来提供服务。端口转发” 或类似的部分,点击 “添加” 或类似的选项。
输入你想要转发的端口号和目标端口号。例如,如果你想将外部的 HTTP 请求转发到虚拟机的端口 80,你可以将源端口设置为 80,目标端口设置为虚拟机的 IP 地址和端口 80。
配置如下图 保存配置。
端口转发的进一步归纳
对端口转发的进一步归纳
概念解释:
端口转发指的是将网络数据包从一个网络接口的特定端口转发到另一个网络接口的另一个端口。这在网络管理和安全配置中非常常见,可以用于许多不同的场景,比如内部服务器暴露到公共网络、负载均衡、网络隔离等。端口转发通常与网络地址转换(NAT)结合使用,从而实现将外部流量转发到内部网络的特定设备或服务。
例子:
一个常见的例子是将公共互联网上的Web流量(端口80)转发到内部服务器的特定端口(比如8080),或者将某个特定端口的流量转发到负载均衡器上。
作用:
暴露内部服务: 通过端口转发,可以将内部的服务暴露到公共网络上,例如将内部的Web服务器暴露给外部用户访问。
负载均衡 可以将某个特定端口的流量转发到多个服务器上,从而实现负载均衡。
安全配置: 可通过端口转发来限制外部访问内部服务的方式,增强网络安全。
内网穿透: 通过端口转发,可以在防火墙后面的内部服务能够被外部访问。
协议转换: 可以将一种协议的流量转发为另一种协议的流量。
用于哪些场景:**
Web服务器部署: 将公共网络上的HTTP流量转发到内部Web服务器。
**负载均衡:**特定端口的流量转发到多个服务器上进行负载均衡。
内网穿透: 使得在内网的服务能够被外部访问,比如远程桌面服务或者内部应用程序服务。
应用部署: 用于将不同服务的流量转发到特定的服务器上,比如数据库服务、邮件服务等。
总的来说,端口转发是一种非常有用的网络技术,可以帮助网络管理员实现许多不同的网络配置和安全策略。
端口转发举例
在Linux系统中,可以使用iptables工具进行端口转发配置。以下是一个简单的例子,将接收到的外部TCP流量从公共IP地址的80端口转发内部服务器的8080端口。
sudo iptables -t nat -AEROUTING - tcp --dport -j DNAT --to-destination .168.1.:8080
sudo iptables -t nat -A POSTROUT -j MASQUERADE
这例子中,第一条规则将接收到的TCP流量的目的端口为80的数据包进行目标地址转换(Destination NAT,DNAT),将其转发到内部服务器的IP地址和8080端口。第二条规则则是对转发的数据包进行源地址转换(Source NAT,SNAT),以确保返回流量能够正确返回。
另外关于iptables 如果你想删除编号为3的规则,你可以使用以下命令:
sudo iptables -D FORWARD 3 #删除编号为3的规则
sudo iptables -A FORWARD -s 192.168.28.0/24 -j ACCEPT #iptables工具向防火墙添加一条规则,允许从192.168.28.0/24局域网的主机发出的流量通过防火墙转发到其他网络
除了iptables之外,还可以使用其他工具如firewalld或者专门的代理软件、反代理软件来进行端口转配置,具体的操作取决于你的网络架构和需求。
iptables 命令:企业常用
1.添加规则:
iptables -A INPUT -p tcp --dport 22 -j ACCEPT:允许TCP流量通过22端到达本机。
iptables -A OUTPUT -p icmp --icmp-type echo -j DROP禁止本机发送ICMP回显请求
2. 删除规则:
iptables -D INPUT -s 192..1.100 -j DROP:删除针对特定源IP地址的DROP规则。3.查看规则:
iptables -L:列出当前的火墙规则。iptables -L --line-numbers 将这些规则按照编号进行列出,
iptablesL -n -v:以数字格式显示规则,包括流量统计信息。
保存规则:
ptables-save > /etc/iptables/rules.v4:将当前iptables规则保存到文件。
4.恢复规则:
iptables-restore < /etc/iptables/rules.v4:从文件中恢iptables规则。
5.清除规则:
iptables -F:清除所有规则。
iptables -X:删除所有自定义链。
这些是iptables命令中的一部分,iptables具有非常丰富的功能和选项。
延申拓展
配置双网卡
1.查看本地ip
使用命令
Ifconfig 或ip a
2.添加网络适配器
打开虚拟机设置——>添加——>网络适配器——>完成;我的设置是nat 仅主机
并且将两个网络适配器的连接模式改为主机模式。现在是联网状态,第二张网卡已经自动获取到了IP地址,由于它没有配置文件,所以不可以手动给它配置IP地址,所以将虚拟机的两块网卡改为仅主机模式,以便于后续IP静态地址的设置
- 修改网络配置文件
- 双网卡规划 因为我装了Hadoop集群 hbase集群及win7因此虚拟网络编辑网卡要ping通所有虚拟机,且所有虚拟机都要可以上网ip互不影响,
因此 仅主机网卡 192.168.138.0
仅NAT网卡 192.168.148.0
控制节点 en 32 192.168.138.210
en34 192.168.148.210
计算节点
en 32 192.168.138.220
en34 192.168.148.220
cd /etc/sysconfig/network-scripts/
ll
上图看出 俩网卡均未配置 网卡的配置文件ifcfg-ens32 ifcfg-ens33
vi ifcfg-ens32
ifcfg-ens32中:将BOOTPROTP设置为静态static,ONBOOT改为yes,然后设置好ip地址和网关,DNS可设置也可不设置。
:wq
修改完成之后,重启网络
systemctl restart network
在controller节点 重复上述步骤.ip按照IP规划配置
完成后
任意`虚拟机ping集群测试结果如下