阿里云弹性网卡更改默认出口IP

阿里云购买了弹性IP并绑定到弹性网卡后,默认出口IP依然为自带的公网IP。

配置弹性网卡

登陆centos服务器,输入以下命令查看网卡信息:

ifconfig

默认的eth0为本机网卡,eth1或者eht2之类的为弹性网卡。
如果没有看到则需要先执行以下命令进行配置:

vi /etc/sysconfig/network-scripts/ifcfg-eth1

内容如下:

DEVICE=eth1  # 表示新配置的网卡接口。
BOOTPROTO=dhcp
ONBOOT=yes
TYPE=Ethernet
USERCTL=yes
PEERDNS=no
IPV6INIT=no
PERSISTENT_DHCLIENT=yes
HWADDR=00:16:3e:12:e7:**  # 必须使用您查到的网卡对应的MAC地址。可以在阿里云控制台“弹性网卡”列表页中查看
DEFROUTE=no  # 表示该网卡接口是不是默认路由。这里只需要改成yes,则出口ip就变为了弹性网卡的ip

修改默认路由参数:

sed -i 's/DEFROUTE\=no/DEFROUTE\=yes/g' /etc/sysconfig/network-scripts/ifcfg-eth1

重启网络服务:

service network restart

测试出口IP

curl https://myip.ipip.net

结果显示弹性网卡IP则说明配置成功

通过webify将shell命令转化为web服务

webify下载地址:https://github.com/beefsack/webify/releases
新建/home/switchip.sh,内容如下:

#!/bin/bash
if [ $1 == "eip" ];then
  sudo sed -i 's/DEFROUTE\=no/DEFROUTE\=yes/g' /etc/sysconfig/network-scripts/ifcfg-eth1
  sudo systemctl restart network.service 2>&1
  echo "{\"code\":2}"
elif [ $1 == "ip" ];then
  sudo sed -i 's/DEFROUTE\=yes/DEFROUTE\=no/g' /etc/sysconfig/network-scripts/ifcfg-eth1
  sudo systemctl restart network.service 2>&1
  echo "{\"code\":3}"
else
  echo "{\"code\":1,\"errorMsg\":\"No instruction received\"}"
fi

由于需要使用sudo,需要设置nobody用户免密码

vi /etc/sudoers
nobody ALL = NOPASSWD: ALL

新建/usr/lib/systemd/system/webify.service,内容如下:

[Unit]
Description=Webify Switchip Service
After=network.target

[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/home/webify -addr=:4000 xargs /home/switchip.sh

[Install]
WantedBy=multi-user.target
#添加开机启动
systemctl enable webify   # 开机禁止启动服务 systemctl disable webify.service
#启动服务
systemctl start webify

测试:

curl -d 'eip' http://xxxx:4000

发表评论

邮箱地址不会被公开。 必填项已用*标注