亞馬遜平台創建ec2實例時默認創建一個網卡primary網卡,主網卡是不能分離的。
在ec2服務控制台為ec2附加網卡。 平台資料中為正在使用的ec2添加網卡用到的操作系統是Amazon Linux AMI 。而當我們使用centos7 系統,附加網卡是可以的,但附加網卡后是需要在系統內進行添加網卡配置文件才能使用。
添加網卡配置文件時,無論你的eni(網絡接口是否是dhcp都要按照下面方式配置,不然網絡無法啟動,如果你想試試,會導無法鏈接服務器,此時你需要把附加的網卡分離,從控制台重啟系統后才能恢復網絡)。
ssh登陸到centos的命令行界面,獲取root權限,創建 /etc/sysconfig/network-scripts/ifcfg-eth1 文件,內容如下:
# BOOTPROTO="none" DEVICE="eth1" MTU="1500" NM_CONTROLLED="yes" ONBOOT="yes" IPADDR=10.0.3.94 NETMASK=255.255.255.0 TYPE="Ethernet"
ipaddr 屬性和NETMASK屬性改為你創建網絡接口 dhcp或者手動配置的ip地址信息。
至此使用 ip add查看eth1網卡信息是否正常使用,如果有問題service network restart
完~
路由設置:
我之前的網絡設置了公有子網(可以提供服務的)和私有子網(內網通信)
10.0.2.0 /24 屬於私有子網 通過nat網關上網
10.0.3.0/24 屬於公有子網 通過internet網關上網
這兩個網關都是在aws配置的。本來這台機器只是用於內網測試,現在想把這台機器的服務端口暫時對外開放,要么就是在加一台服務器做代理,要么就是把服務器的網絡改到公有子網中。
考慮成本,就考慮到了改子網。但改子網后,之前配置的連接服務IP地址都要改。最終想到加一塊網卡。通過上面的配置是添加了一塊公有子網,並且公有子網也可以內網通信了,接下來給10.0.3.94地址綁定了一個公有IP的彈性地址。理所當然的想,這時候服務就可以出來了。但是我錯了。怎么都是通不了,這時候滿腦子fuck。
后來想想,路由改掉。因為10.0.2.0是主網卡,一台centos服務器不能有兩個網關(大家都知道的)。默認路由肯定走的是2.0網段。假設綁定的彈性IP地址生效,在回復信息的時候出口卻是nat網關,這樣肯定是不通的。所以我就想把默認路由改掉,在添加一個10.0.0.0/16路由網關為10.0.2.1(10.0.2.0子網的網關),這樣外網通過彈性IP地址可以訪問服務了,內網又可以不改變之前的通信。最終是成功了,只是這台服務器的出口網絡也變成了彈性IP地址,不再走nat網關了,但沒有影響。
改之前路由:
Destination Gateway Genmask Flags Metric Ref Use Iface default ip-10-0-2-1.ec2 255.255.0.0 UG 0 0 0 eth0 10.0.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 10.0.3.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
命令執行:
sudo route delete default gw 10.0.2.1 sudo route add default gw 10.0.3.1 sudo route add -net 10.0.0.0/16 gw 10.0.2.1
再次查看路由:
$ route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default ip-10-0-3-1.ec2 0.0.0.0 UG 0 0 0 eth1 10.0.0.0 ip-10-0-2-1.ec2 255.255.0.0 UG 0 0 0 eth0 10.0.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 10.0.3.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
這樣就OK了。我們可以把修改路由的命令放到/etc/rc.local 文件中。 完~