CentOS 7 中的网络如何工作?具体来说,ifconfig?

CentOS 7 中的网络如何工作?具体来说,ifconfig?

目标:配置从虚拟机到 PC 和互联网的流量路由。在 CentOS7 上配置从 wlan0 到 eth0 的流量转发,反之亦然。

我的拓扑:

VM - (有线) --- eth0=RPI=wlan0 -(无线)- 路由器 -- ISP
                                               |
                                           (无线的)
                                               个人电脑

正在发出的命令:

sudo ifconfig eth0 192.168.56.1 netmask 255.255.255.0
sudo sysctl -w net.ipv4.ip_forward=1
sudo iptables -A FORWARD --in-interface eth0 -j ACCEPT
sudo iptables --table nat -A POSTROUTING --out-interface wlan0 -j MASQUERADE

现在,我检查了网络脚本文件夹:

[pi@rtr001 network-scripts]$ ls
ifcfg-FunBox-84A8  ifdown-ppp       ifup-ippp    ifup-TeamPort
ifcfg-link         ifdown-routes    ifup-ipv6    ifup-tunnel
ifcfg-lo           ifdown-sit       ifup-isdn    ifup-wireless
ifdown             ifdown-Team      ifup-plip    init.ipv6-global
ifdown-bnep        ifdown-TeamPort  ifup-plusb   keys-FunBox-84A8
ifdown-eth         ifdown-tunnel    ifup-post    network-functions
ifdown-ippp        ifup             ifup-ppp     network-functions-ipv6
ifdown-ipv6        ifup-aliases     ifup-routes
ifdown-isdn        ifup-bnep        ifup-sit
ifdown-post        ifup-eth         ifup-Team

注意到,ifcfg-eth0那里不存在,甚至,下面的输出ifconfig显示地址已分配,并且我能够对插入以太网端口的设备执行 ping 操作,IP 为 10.10.10.2:

[pi@rtr001 network-scripts]$ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.10.10.1  netmask 255.255.255.0  broadcast 10.10.10.255
        ether b8:27:eb:d7:d7:9a  txqueuelen 1000  (Ethernet)
        RX packets 3  bytes 214 (214.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 50  bytes 8296 (8.1 KiB)
        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 1000  (Local Loopback)
        RX packets 32  bytes 2592 (2.5 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 32  bytes 2592 (2.5 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.26  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::47ae:281a:680f:11eb  prefixlen 64  scopeid 0x20<link>
        ether b8:27:eb:82:82:cf  txqueuelen 1000  (Ethernet)
        RX packets 649  bytes 42528 (41.5 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 492  bytes 69881 (68.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

此外,IP 为 10.10.10.2 的虚拟机能够 ping 通 10.10.10.1,但无法 ping 通 192.168.1.22(位于 RPI - 路由器之间的子网 192.168.XX 中的任何 IP)。

问题:

  1. sudo ifconfig eth0 10.10.10.1 netmask 255.255.255.0在 Linux 中修改文件有什么作用?换句话说,根据 的输出ifconfig,看起来 的地址eth0已被分配,但是,没有具体的ifcfg-eth0存在。
  2. 如何让eth0的配置在重启后出现?
  3. 我应该在 RPI 中修改什么,以便能够从虚拟机 192.168.XX 子网 ping 通?
  4. 如何查看 NAT ip 表,我应该运行哪个命令?看起来,iptables -L没有显示 NAT 规则...

答案1

该命令sudo ifconfig...不会对文件进行任何更改。它会更改,直到下次重新启动或下一次ifconfigIP、网络掩码等值。

要进行持久更改,请创建文件ifcfg-eth0并在其中输入信息(类似)。

DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
NETWORK=192.168.56.0
NETMASK=255.255.255.0
IPADDR=192.168.56.1
USERCTL=no

相关内容