相关概念
路由器的作用
- 用来进行NAT(网络地址转换)操作,将私有地址转换为公有地址使数据包能够发到因特网上,同时从因特网上接收数据包时,将公用地址转换为私有地址。
地址转换分为:
- 原地址转换
- 目的地地址转换
网络传输的方式
- 电磁信号
网关
- 路由器上与主机处于同一网段的ip就是网关,主机在访问互联网上不在同一网段的ip时需要先访问路由器的网关,然后路由器进行NAT,然后去访问互联网
DNS
- 域名服务器,是一台主机,把网络中所有的网址对应的ip都存在里面并通过网络共享出来
地址解析
- 将一个网址转化为ip
子网掩码
- 是一种用来指明一个IP地址的哪些位标识的是主机所在的子网
- 以及哪些位标识的是主机的位掩码。
- 子网掩码不能单独存在,它必须结合IP地址一起使用。
Linux中查看系统所有的配置文件
该文件中记录的就是系统中所有的配置信息
/usr/share/doc/initscripts-9.49.37/sysconfig.txt
查看主机的IP
hostnamectl
查看主机的信息
yum install lftp -y
下载lftp,lftp是一个文字界面的浏览器,用于文件下载。
ifconfig
查看网卡和ip,这里查看到的网卡是一个事实存在的硬件,名字不能乱写.
ip addr show ens33
查看网卡配置,最后一位是网卡的名字
nm-connection-editor
图形化的方式设置以太网
可以设置IPV4:
ping 172.25.254.250
测试与目标ip或地址的链接情况
让虚拟机可以上网
- 在Linux真机中新安装的Linux虚拟机是不能上网的需要配置
- 设置的原理是开启真机的路由功能让虚拟机借助真机来上网
1. 开启真机的路由功能
systemctl stop libvirtd.service //关掉虚拟机的libvirtd
//这一步是因为该服务会和设置真机防火墙冲突
systemctl restart firewalld //启动防火墙
systemctl start libvirtd.service //重启虚拟机libvirtd
firewall-cmd --add-masquerade //防火墙允许ip地址伪装
firewall-cmd --list-all //查看防火墙的状态
防火墙的信息:
trusted (active)
target: ACCEPT
icmp-block-inversion: no
interfaces: br0 enp0s25 wlp3s0
sources:
services:
ports:
protocols:
masquerade: yes //这一项为yes表示真机的路由功能已经打开
forward-ports:
sourceports:
icmp-blocks:
rich rules:
通过图形的方式设置虚拟机的ip和网关、
1.修改虚拟机的网关为真机的本地ip,让虚拟机通过真机来上网
nm-connection-editor //打开图形化设置界面
选择网卡
IPV4设置为如图方式
-这里Netmask(子网掩码)设置为24相当于255.255.255.0
2. 修改/etc/sysconfig/network
- 文件末尾添加
GATEWAY=真机的IP
- 保存退出
3. 重启network:systemctl restart network
4. 此时网关便添加进去了,可以通过route -n
查看
5. 此时虚拟机就可以通过真机进行上网了
- 但是上网需要通过ip上网,可以通过真机
ping 网址
来得到网址的ip - 但是现在大部分网站通过ip访问会被服务器拒绝,因为服务器会进行网址跳转
- 想直接通过网上上网还需要配置DNS服务器
上面的操作是将真机作为路由器,虚拟机将真机的本地ip作网关,访问真机的本地ip然后真机通过可以上网的ip来访问网络.
新安装的虚拟机配置上网
virt-manager
启动虚拟机管理器
- 新安装的虚拟机需要配置ip和DNS服务器才能正常上网
设置虚拟机ip
- 删除
/etc/sysconfig/network-scripts/ifcfg-ens3
- 新建
/etc/sysconfig/network-scripts/ifcfg-ens3
- 输入:
DEVICE=网卡名 //设备名称,这个网卡必须是`ifconfig`中查看到的一个事实存在的网卡
ONBOOT=yes //网络服务启动是否启动网卡配置
BOOTPROTO=none //网卡工作方式:获取ip的方式,none为静态手动指定,dhcp为自动设置
IPADDR0=172.25.7.107 //虚拟机的ip地址
PREFIX0=24 //子网掩码也可以写为NETMASK0=255.255.255.0
GATEWAY0=172.25.254.7 //设置网关,设为真机的本地ip
DNS1=114.114.114.114 //设置DNS服务器,最多设置两个
GATEWAY0指定的ip是真机中用
ip addr show br0
查看到的ip.在真机中使用
ip addr show br0
查看到的内容:- 这里查看到的就是真机中的ip
- 这里选172.25.254.7作为虚拟机的网关
4: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000
link/ether 00:21:cc:70:d9:c5 brd ff:ff:ff:ff:ff:ff
inet 172.25.7.250/24 brd 172.25.7.255 scope global br0
valid_lft forever preferred_lft forever
inet 172.25.254.7/24 brd 172.25.254.255 scope global br0
valid_lft forever preferred_lft forever
inet6 fe80::221:ccff:fe70:d9c5/64 scope link
valid_lft forever preferred_lft forever
4. 重启network:systemctl restart network
- 此时虚拟机就可以正常访问网络了
- 可以通过ping来测试
故障排除
- 如果联网失败先检查真机防火墙地址伪装功能是否允许
- 检查虚拟机网关是否设置正确
- 检查DNS服务是否设置
如果上述操作均无误,则可能是内核的路由功能没有开启
- 查看内核是否开启路由功能
sysctl -a |grep ip_forward
- 显示内容:
net.ipv4.ip_forward = 1
net.ipv4.ip_forward_use_pmtu = 0
net.ipv4.ip_forward
为0则没开启
- 如果没开启在
/etc/sysctl.conf
文件末尾添加net.ipv4.ip_forward = 1
- 然后执行
sysctl -p