CentOS 7主机需要使用virt-install和kickstart文件安装CentOS 7客户操作系统。然后,主机和客人都需要通过ssh通过互联网使用单独的公共静态IP地址进行访问。
ssh访问?我的理解是,设置此设置包括以下步骤:
1.)在主机上配置桥接网络,以替换默认NAT
2.)在客户端配置静态网络
但应该如何设置呢?我们是用如下所示的新virbr0替换br0,还是只修改virbr0?
请注意,此设置具有以下公共静态IP地址(出于安全原因,此处隐藏/匿名):
host: 12.34.567.8aa
guest: 12.34.567.8cc
network gateway: 12.34.567.8bb当前错误:
使用下面概述的方法,安装期间的终端输出包括与此网络连接问题相关的下列线路:
[ 4.555887] 8021q: adding VLAN 0 to HW filter on device eth0
[ 4.447513] dracut-initqueue[588]: RTNETLINK answers: Network is unreachable
......................
[ 8.096306] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready第一次尝试配置主机:
主机的公共网络(功能非常好)是用以下命令设置的:
nmcli con mod eno1 ipv4.addresses 12.34.567.8aa/29
nmcli con mod eno1 ipv4.gateway 12.34.567.8bb
nmcli con mod eno1 ipv4.dns "xx.xx.xx.xx xx.xx.yy.yy"
nmcli con mod eno1 ipv4.method manual
nmcli con mod eno1 connection.autoconnect yes然后,使用以下命令设置主机的桥(尚未工作):
nmcli con add type bridge con-name br0 ifname br0 autoconnect yes
nmcli con add type ethernet con-name br0-slave-1 ifname eno1 master br0 autoconnect yes
nmcli con add type ethernet con-name br0-slave-2 ifname eth0 master br0 autoconnect yes
nmcli con modify br0 bridge.stp no
nmcli connection modify br0 ipv4.addresses 12.34.567.8aa/29 ipv4.method manual ipv4.gateway 12.34.567.8bb ipv4.dns xx.xx.xx.xx,xx.xx.yy.yy
nmcli con up br0
brctl show br0注意,上面的命令试图奴役eth0和eno,因为eth0是在客户机中定义的,而eno1是在主机中定义的。不清楚这些名称的可见性范围是什么,所以在这里尝试这两种方法,但都没有成功。
来宾是如何创建的:
以下是如何创建来宾的详细信息:
主机上的启动文件是:
[root@remote-host ~]# vi /tmp/vm.ks
install
lang en_US.UTF-8
keyboard us
timezone SomeContinent/SomeCity
auth --enableshadow --passalgo=sha512
services --enabled=NetworkManager,sshd
eula --agreed
reboot
network --bootproto=static --ip=12.34.567.8cc --netmask=255.255.255.248 --gateway=12.34.567.8bb --nameserver=xx.xx.xx.xx,xx.xx.yy.yy --device=eth0
bootloader --location=mbr
zerombr
clearpart --all --initlabel
part swap --asprimary --fstype="swap" --size=1024
part /boot --fstype xfs --size=200
part pv.01 --size=1 --grow
volgroup rootvg01 pv.01
logvol / --fstype xfs --name=lv01 --vgname=rootvg01 --size=1 --grow
# Root password
rootpw --iscrypted $someLongHashedPassword
repo --name="CentOS" --baseurl="http://mirror.centos.org/centos/7/os/x86_64/"
%packages
@core
%end
~
"/tmp/vm.ks" 30L, 1002C从主机运行的virt-install命令是:
[root@remote-host ~]# virt-install --name=public-centos7 --disk path=/home/disk_test.img,size=100 --graphics none
--vcpus=1 --memory=2048 --location /tmp/CentOS-7-x86_64-Minimal-1611.iso --network bridge=br0
--os-type=linux --os-variant=rhel7.0 --initrd-inject=/tmp/vm.ks --extra-args "ks=file:/vm.ks console=ttyS0"主机配置信息:
在主机上,nmcli的详细信息是:
[root@remote-host ~]# nmcli con show
NAME UUID TYPE DEVICE
br0 very-long-string bridge br0
eno1 very-long-string 802-3-ethernet eno1
virbr0 very-long-string bridge virbr0
vnet0 very-long-string tun vnet0
br0-slave-1 very-long-string 802-3-ethernet --
br0-slave-2 very-long-string 802-3-ethernet --
[root@remote-host ~]# nmcli con show br0
connection.id: br0
connection.uuid: very-long-string
connection.interface-name: br0
connection.type: bridge
connection.autoconnect: yes
connection.autoconnect-priority: 0
connection.timestamp: 1490056018
connection.read-only: no
connection.autoconnect-slaves: -1 (default)
connection.gateway-ping-timeout: 0
connection.lldp: -1 (default)
ipv4.method: manual
ipv4.dns: xx.xx.xx.xx,xx.xx.yy.yy
ipv4.dns-options: (default)
ipv4.dns-priority: 0
ipv4.addresses: 12.34.567.8aa/29
ipv4.gateway: 12.34.567.8bb
ipv4.routes:
ipv4.route-metric: -1
ipv4.ignore-auto-routes: no
ipv4.ignore-auto-dns: no
ipv4.dhcp-timeout: 0
ipv4.dhcp-send-hostname: yes
ipv4.never-default: no
ipv4.may-fail: yes
ipv4.dad-timeout: -1 (default)
........skipping ipv6 stuff
bridge.stp: no
bridge.priority: 32758
bridge.forward-delay: 15
bridge.hello-time: 2
bridge.max-age: 20
bridge.ageing-time: 300
bridge.multicast-snooping: yes
GENERAL.NAME: br0
GENERAL.UUID: very-long-string
GENERAL.DEVICES: br0
GENERAL.STATE: activated
GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/ActiveConnection/40
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/Settings/38
GENERAL.SPEC-OBJECT: /
GENERAL.MASTER-PATH: --
IP4.ADDRESS[1]: 12.34.567.8aa/29
IP4.GATEWAY: 12.34.567.8bb
IP4.DNS[1]: xx.xx.xx.xx
IP4.DNS[2]: xx.xx.yy.yy
.....skipping ipv6 stuff
[root@remote-host ~]# nmcli con show virbr0
connection.id: virbr0
connection.uuid: very-long-string
connection.stable-id: --
connection.interface-name: virbr0
connection.type: bridge
connection.autoconnect: no
connection.autoconnect-priority: 0
connection.timestamp: 1490056018
connection.read-only: no
connection.autoconnect-slaves: -1 (default)
connection.gateway-ping-timeout: 0
connection.metered: unknown
connection.lldp: -1 (default)
ipv4.method: manual
ipv4.dns-options: (default)
ipv4.dns-priority: 100
ipv4.addresses: 192.168.122.1/24 (purposely NOT obscured because this IP is private and auto-generated)
ipv4.route-metric: -1
ipv4.ignore-auto-routes: no
ipv4.ignore-auto-dns: no
ipv4.dhcp-timeout: 0
ipv4.dhcp-send-hostname: yes
ipv4.never-default: no
ipv4.may-fail: yes
ipv4.dad-timeout: -1 (default)
.............skipping ipv6 stuff
bridge.stp: yes
bridge.priority: 32xx8
bridge.forward-delay: 2
bridge.hello-time: 2
bridge.max-age: 20
bridge.ageing-time: 300
bridge.multicast-snooping: yes
GENERAL.NAME: virbr0
GENERAL.UUID: very-long-string
GENERAL.DEVICES: virbr0
GENERAL.STATE: activated
GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/ActiveConnection/1
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/Settings/1
GENERAL.SPEC-OBJECT: /
IP4.ADDRESS[1]: 192.168.122.1/24 (purposely NOT obscured because this IP is private and auto-generated)
[root@remote-host ~]# nmcli con show eno1
connection.id: eno1
connection.uuid: very-long-string
connection.interface-name: eno1
connection.type: 802-3-ethernet
connection.autoconnect: yes
connection.autoconnect-priority: 0
connection.timestamp: 1490056018
connection.read-only: no
connection.autoconnect-slaves: -1 (default)
connection.gateway-ping-timeout: 0
connection.metered: unknown
connection.lldp: -1 (default)
802-3-ethernet.speed: 0
802-3-ethernet.auto-negotiate: yes
802-3-ethernet.mtu: auto
802-3-ethernet.wake-on-lan: 1 (default)
ipv4.method: manual
ipv4.dns: xx.xx.xx.xx,xx.xx.yy.yy
ipv4.dns-options: (default)
ipv4.dns-priority: 0
ipv4.addresses: 12.34.567.8aa/29
ipv4.gateway: 12.34.567.8bb
ipv4.route-metric: -1
ipv4.ignore-auto-routes: no
ipv4.ignore-auto-dns: no
ipv4.dhcp-timeout: 0
ipv4.dhcp-send-hostname: yes
ipv4.never-default: no
ipv4.may-fail: yes
ipv4.dad-timeout: -1 (default)
..........skipping ipv6 stuff
GENERAL.NAME: eno1
GENERAL.UUID: very-long-string
GENERAL.DEVICES: eno1
GENERAL.STATE: activated
GENERAL.DEFAULT: yes
GENERAL.DEFAULT6: yes
GENERAL.VPN: no
GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/ActiveConnection/3
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/Settings/0
GENERAL.SPEC-OBJECT: /
IP4.ADDRESS[1]: 12.34.567.8aa/29
IP4.GATEWAY: 12.34.567.8bb
IP4.DNS[1]: xx.xx.xx.xx
IP4.DNS[2]: xx.xx.yy.yy
..........skipping ipv6 stuff
[root@remote-host ~]# nmcli con show br0-slave-1
connection.id: br0-slave-1
connection.uuid: very-long-string
connection.interface-name: eno1
connection.type: 802-3-ethernet
connection.autoconnect: yes
connection.autoconnect-priority: 0
connection.read-only: no
connection.master: br0
connection.slave-type: bridge
connection.autoconnect-slaves: -1 (default)
connection.gateway-ping-timeout: 0
connection.lldp: -1 (default)
802-3-ethernet.speed: 0
802-3-ethernet.auto-negotiate: yes
802-3-ethernet.mtu: auto
802-3-ethernet.wake-on-lan: 1 (default)
bridge-port.priority: 32
bridge-port.path-cost: 100
bridge-port.hairpin-mode: no
[root@remote-host ~]# nmcli con show br0-slave-2
connection.id: br0-slave-2
connection.uuid: very-long-string
connection.interface-name: eth0
connection.type: 802-3-ethernet
connection.autoconnect: yes
connection.autoconnect-priority: 0
connection.read-only: no
connection.master: br0
connection.slave-type: bridge
connection.autoconnect-slaves: -1 (default)
connection.gateway-ping-timeout: 0
connection.metered: unknown
connection.lldp: -1 (default)
802-3-ethernet.speed: 0
802-3-ethernet.auto-negotiate: yes
802-3-ethernet.mtu: auto
802-3-ethernet.wake-on-lan: 1 (default)
bridge-port.priority: 32
bridge-port.path-cost: 100
bridge-port.hairpin-mode: no客人知道它的静态公共IP,但不能出去:
下面是从来宾内部运行的ping和curl命令的结果。正如您所看到的,这两个程序都在运行,但这两个程序都无法将VM输出到外部世界:
[root@localhost ~]# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
From 12.34.567.8cc icmp_seq=1 Destination Host Unreachable
From 12.34.567.8cc icmp_seq=2 Destination Host Unreachable
From 12.34.567.8cc icmp_seq=3 Destination Host Unreachable
..........
--- 8.8.8.8 ping statistics ---
14 packets transmitted, 0 received, +13 errors, 100% packet loss, time 13004ms
pipe 4
[root@localhost ~]# curl ipinfo.io/ip
curl: (6) Could not resolve host: ipinfo.io; Unknown error客户内部的配置:
从来宾内部访问的自动生成的ifcfg-eth0文件是:
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
# Generated by dracut initrd
NAME="eth0"
HWADDR="11:22:33:44:55:66"
ONBOOT=yes
NETBOOT=yes
UUID="some-very-long-complex-string"
IPV6INIT=yes
BOOTPROTO=none
IPADDR="12.34.567.8cc"
NETMASK="255.255.255.248"
GATEWAY="12.34.567.8bb"
TYPE=Ethernet
DNS1="xx.xx.xx.xx,xx.xx.yy.yy"
~
"/etc/sysconfig/network-scripts/ifcfg-eth0" 13L, 281C以下是在来宾内部运行的nmcli命令的结果:
[root@localhost ~]# nmcli con show
NAME UUID TYPE DEVICE
eth0 very-long-string 802-3-ethernet eth0
[root@localhost ~]# nmcli con show eth0
connection.id: eth0
connection.uuid: very-long-string
connection.type: 802-3-ethernet
connection.autoconnect: yes
connection.autoconnect-priority: 0
connection.timestamp: 1490079856
connection.read-only: no
connection.autoconnect-slaves: -1 (default)
connection.gateway-ping-timeout: 0
connection.metered: unknown
connection.lldp: -1 (default)
802-3-ethernet.speed: 0
802-3-ethernet.auto-negotiate: yes
802-3-ethernet.mac-address: qq:ww:ee:rr:tt:yy (not really qwerty)
802-3-ethernet.mtu: auto
802-3-ethernet.wake-on-lan: 1 (default)
ipv4.method: manual
ipv4.dns: xx.xx.xx.xx,xx.xx.yy.yy
ipv4.dns-options: (default)
ipv4.dns-priority: 0
ipv4.addresses: 12.34.567.8cc/29
ipv4.gateway: 12.34.567.8bb
ipv4.route-metric: -1
ipv4.ignore-auto-routes: no
ipv4.ignore-auto-dns: no
ipv4.dhcp-timeout: 0
ipv4.dhcp-send-hostname: yes
ipv4.never-default: no
ipv4.may-fail: yes
ipv4.dad-timeout: -1 (default)
.........skipping ipv6 stuff
GENERAL.NAME: eth0
GENERAL.UUID: very-long-string
GENERAL.DEVICES: eth0
GENERAL.STATE: activated
GENERAL.DEFAULT: yes
GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/ActiveConnection/0
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/Settings/0
GENERAL.SPEC-OBJECT: /
IP4.ADDRESS[1]: 12.34.567.8cc/29
IP4.GATEWAY: 12.34.567.8bb
IP4.DNS[1]: xx.xx.xx.xx
IP4.DNS[2]: xx.xx.yy.yy
......skipping ipv6 stuff
[root@localhost ~]# @garethTheRed的建议:
输入@garethTheRed的4个nmcli命令并使用--network bridge=br1重新运行virt-install命令以创建新的虚拟机后,主机上的防火墙设置现在如下:
[root@remote-host ~]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: br0 br1 eno1
sources:
services: dhcpv6-client ssh
ports:
protocols:
masquerade: no
forward-ports:
sourceports:
icmp-blocks:
rich rules:
[root@remote-host ~]# 然后,在来宾上,防火墙设置为:
[root@localhost ~]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: dhcpv6-client ssh
ports:
protocols:
masquerade: no
forward-ports:
sourceports:
icmp-blocks:
rich rules:
[root@localhost ~]#类似地,以下结果似乎表明在主机上启用了路由:
[root@remote-host ~]# /sbin/sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1
[root@remote-host ~]#虽然以下结果似乎表明客户的路由已关闭:
[root@localhost ~]# /sbin/sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 0
[root@localhost ~]# 主机上的ip addr show提供以下内容:
[root@remote-host ~]# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
link/loopback mm:mm:mm:mm:mm:mm brd mm:mm:mm:mm:mm:mm
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether mm:mm:mm:mm:mm:mm brd mm:mm:mm:mm:mm:mm
inet 12.34.567.8aa/29 brd 12.34.567.8(bb+1) scope global eno1
valid_lft forever preferred_lft forever
3: wlp3s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
link/ether mm:mm:mm:mm:mm:mm brd mm:mm:mm:mm:mm:mm
4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN qlen 1000
link/ether mm:mm:mm:mm:mm:mm brd mm:mm:mm:mm:mm:mm
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
5: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN qlen 1000
link/ether mm:mm:mm:mm:mm:mm brd mm:mm:mm:mm:mm:mm
41: br0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN qlen 1000
link/ether mm:mm:mm:mm:mm:mm brd mm:mm:mm:mm:mm:mm
inet 12.34.567.8aa/29 brd 12.34.567.8(bb+1) scope global br0
valid_lft forever preferred_lft forever
50: br1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000
link/ether mm:mm:mm:mm:mm:mm brd mm:mm:mm:mm:mm:mm
inet 12.34.567.8cc/29 brd 12.34.567.8(bb+1) scope global br1
valid_lft forever preferred_lft forever
51: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br1 state UNKNOWN qlen 1000
link/ether mm:mm:mm:mm:mm:mm brd mm:mm:mm:mm:mm:mm
inet6 ipv6:doesnt:matter:to:me/64 scope link
valid_lft forever preferred_lft forever
[root@remote-host ~]#我注意到eno1和br0具有相同的IP地址。这是否意味着从eno1中删除IP并使外部世界仍然能够通过br0与机器的相同IP地址通信是安全的?我还在学习这是如何工作的。
在来宾上,ip addr show给出了以下内容:
[root@localhost ~]# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether mm:mm:mm:mm:mm:mm brd mm:mm:mm:mm:mm:mm
inet 12.34.567.8cc/29 brd 12.34.567.8(bb+1) scope global eth0
valid_lft forever preferred_lft forever
[root@localhost ~]#虽然我更喜欢在所有方面使用nmcli和NetworkManager,但我在下面包含virsh诊断信息如下。注意,主机只看到默认网络。
在主机上运行了以下所有操作:
[root@remote-host ~]# virsh net-list --all
Name State Autostart Persistent
----------------------------------------------------------
default active yes yes
[root@remote-host ~]# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.000000000000 no
br1 8000.oneLongID... yes vnet0
virbr0 8000.secondLongID yes virbr0-nic
[root@remote-host ~]# virsh edit public-centos7
....skipping irrelevant stuff for brevity
<controller type='virtio-serial' index='0'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</controller>
<interface type='bridge'>
<mac address='qq:ww:ee:rr:tt:yy'/>
<source bridge='br1'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
.....skipping irrelevant stuff
<channel type='unix'>
<target type='virtio' name='org.qemu.guest_agent.0'/>
<address type='virtio-serial' controller='0' bus='0' port='1'/>
</channel>
....skipping irrelevant stuff
<memballoon model='virtio'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
</memballoon>
</devices>
</domain>
[root@remote-host ~]# virsh net-dumpxml default
<network>
<name>default</name>
<uuid>some-very-long-complex-string</uuid>
<forward mode='nat'>
<nat>
<port start='1024' end='65535'/>
</nat>
</forward>
<bridge name='virbr0' stp='on' delay='0'/>
<mac address='aa:nn:oo:tt:hh:er'/>
<ip address='192.168.122.1' netmask='255.255.255.0'>
<dhcp>
<range start='192.168.122.2' end='192.168.122.254'/>
</dhcp>
</ip>
</network>然后,我使用以下命令在主机上创建了第二个网络:
vi /root/test-bridge.xml
<network>
<name>test-bridge</name>
<forward mode="bridge"/>
<bridge name="br1"/>
</network>
virsh net-create /root/test-bridge.xml在创建新的test-bridge之后,外部世界现在能够成功地实现ping 12.34.567.8cc**。但客人仍然无法得到外界对**ping 8.8.8.8*的回应。
在来宾中,我检查了路由是否已定义,并给出了以下内容:
[root@localhost ~]# ip route
default via 12.34.567.8bb dev eth0 proto static metric 100
12.34.567.8mm/29 dev eth0 proto kernel scope link src 12.34.567.8cc metric 100其中,12.34.567.8bb是物理路由器的正确网关,12.34.567.8cc是客人的正确/预期静态公共IP,12.34.567.8mm不是分配给我们的静态公共IP地址之一。然而,12.34.567.8mm等于12.34.567.(8aa-1),这意味着它可能是从我们的5个公共IP地址中的一个编程派生出来的。
当我要求主机上的virsh显示客户的接口和ip时,virsh可以显示接口,但不能显示ip,如下所示:
[root@remote-host ~]# virsh domiflist public-centos7
Interface Type Source Model MAC
-------------------------------------------------------
vnet0 bridge br1 virtio 11:22:33:44:55:66
[root@remote-host ~]# virsh domifaddr public-centos7
Name MAC address Protocol Address
------------------------------------------------------
[root@remote-host ~]# 将firewall --disabled和selinux --disabled添加到启动文件中,然后使用相同的virt-install命令重新安装,并不能从新创建的VM内部成功地将ping 8.8.8.8发送到外部世界。
发布于 2017-03-21 15:24:03
将网络设置添加到桥中是正常的,而不是物理接口。
从eno1中删除IP详细信息(首先要确保您知道如何在需要时恢复它们)。
然后,试着:
nmcli connection add type bridge autoconnect yes con-name br1 ifname br1
nmcli connection modify br1 ipv4.addresses aa.bb.cc.dd/29 ipv4.method manual
nmcli connection modify br1 ipv4.gateway aa.bb.cc.ee
nmcli connection modify br1 ipv4.dns xx.xx.xx.xx其中aa.bb.cc.dd等是您在eno1上拥有的IP设置。
在主机上,需要加载br_netfilter模块:
modprobe br_netfilter然后,使用以下内容创建/etc/sysctl.d/bridge.conf:
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0并加载设置:
sysctl -p /etc/sysctl.d/bridge.conf最后,使用virt-install运行--net bridge=br1
给客人和IP地址,并尝试平下一个主机。
记住,您可能需要考虑防火墙,也可以在主机上启用路由。
https://unix.stackexchange.com/questions/352726
复制相似问题