在 AWS EC2 上的 eth1(附加網路介面)CentOS 7 上無法訪問伺服器
我在EC2上創建了一個****CentOS 7實例,安裝了我所需的應用程序,為預設網路介面(eth0 )分配了 1 個****彈性 IP ,並且它都可以訪問。
現在我創建了另一個Network Interface,為其分配了一個彈性 IP,然後將ENI附加到實例。現在,無法在eth1(新的附加網路介面)上訪問該實例。
我嘗試了在Google上找到的各種方法,在**/etc/sysconfig/network-scripts創建****ifcfg-eth1**但沒有運氣。
尋求幫助,這是ifconfig -a的輸出(IP 被屏蔽):
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 9001 inet 1XX.3XX.2XX.4XX netmask 255.255.240.0 broadcast 1XX.3XX.2XX.4XX inet6 fe80::2e:a1ff:fe01:c763 prefixlen 64 scopeid 0x20<link> ether 02:2e:a1:01:c7:63 txqueuelen 1000 (Ethernet) RX packets 219 bytes 28188 (27.5 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 284 bytes 31055 (30.3 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 eth1: flags=4098<BROADCAST,MULTICAST> mtu 1500 ether 02:78:73:34:66:35 txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) 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 0 (Local Loopback) RX packets 23 bytes 4968 (4.8 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 23 bytes 4968 (4.8 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
這是來自ip addr:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 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 9001 qdisc pfifo_fast state UP qlen 1000 link/ether 02:2e:a1:01:c7:63 brd ff:ff:ff:ff:ff:ff inet 1XX.3XX.2XX.4XX/20 brd 1XX.3XX.2XX.4XX scope global dynamic eth0 valid_lft 3404sec preferred_lft 3404sec inet6 fe80::2e:a1ff:fe01:c763/64 scope link valid_lft forever preferred_lft forever 3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000 link/ether 02:78:73:34:66:35 brd ff:ff:ff:ff:ff:ff
我的**/etc/sysconfig/network-scripts/ifcfg-eth0**文件包含以下內容:
DEVICE="eth0" BOOTPROTO="dhcp" ONBOOT="yes" TYPE="Ethernet" USERCTL="yes" PEERDNS="yes" IPV6INIT="no" PERSISTENT_DHCLIENT="1"
最後,除了這個人之外沒有人幫助我: https ://www.internetstaff.com/multiple-ec2-network-interfaces-on-red-hat-centos-7/。
為了在將來連結失效時保留資訊,以下是文章中富有成果的內容:
- 強制您的預設網關為eth0:
編輯**/etc/sysconfig/network**並添加:
GATEWAYDEV=eth0
不這樣做會將主路由表的預設網關設置為要配置的最後一個介面,這會導致一些奇怪的行為。 2. 配置您添加的每個附加介面:
在**/etc/sysconfig/network-scripts中,為每個新介面創建一個ifcfg-eth X。**
調整:
- 與ENI匹配的DEVICE名稱。
DEVICE="eth1" BOOTPROTO="dhcp" ONBOOT="yes" TYPE="Ethernet" USERCTL="yes" PEERDNS="yes" IPV6INIT="no" PERSISTENT_DHCLIENT="1"
3. 為每個附加介面添加自定義路由。 再次在**/etc/sysconfig/network-scripts**中,為每個介面創建一個**route-eth *X文件。*** 調整: 設備名稱。 增加表號。 您的 VPC 子網網關的網關。 將源 IP 更改為 ENI 分配的內部網路地址。
fault via 10.0.0.1 dev eth0 table 1 .0.0.0/24 dev eth0 src 10.0.0.10 table 1
4. 同樣在**/etc/sysconfig/network-scripts**中,為每個介面創建一個**rule-eth *X。*** 調整: 增加表號以匹配**route-eth *X***。 將 IP 更改為 ENI 分配的內部網路地址。
om 10.0.0.10/32 table 1
重新啟動網路服務,您應該可以啟動並執行。您可以使用**ip rule**進行確認:
ip rule
0: from all lookup local 32764: from 10.0.0.10 lookup 3 32765: from 10.0.0.11 lookup 2 32766: from all lookup main 32767: from all lookup default
請注意,亞馬遜為**eth0**建議了自定義路由和規則,但我們發現允許**eth0**使用預設主路由表不僅有效,而且更靈活。