皮皮虾的博客

一个备受大佬们欺负的萌新

[搞事]AWS-lightsail如何使用动态IP

《[搞事]AWS-lightsail如何使用动态IP》

前言

用过Aws lightsail的大佬们都知道,lightsail是支持随时更换IP的,然后今天嘉佬在说国外动态拨号VPS的事情

于是乎,萌生的用lightsail做动态IP VPS的想法(以前也有过,懒

本文章以Ubuntu16 *64为基础

操作

首先,你要有一个AWS账号

获取好Key之后,配置aws api (如何获取key请看前文 https://ppxwo.com/lightsailm.ppx

安装配置

apt update -y
apt install python-pip -y
pip install awscli --upgrade
aws configure #输入AK和SK以及默认地域

部分地域表

美国:
us-east-1 弗吉尼亚
us-east-2 俄亥俄州
us-west-2 俄勒冈州
欧洲:
eu-west-1 爱尔兰
eu-west-2 伦敦
eu-central-1 德国
亚洲:
ap-northeast-1 日本
ap-southeast-1 新加坡
ap-southeast-2 悉尼
ap-south-1 印度

注册方便使用DDNS的DNS商:

https://asia.cloudns.net/aff/id/214693/ 带AFF

https://asia.cloudns.net/ 不带AFF

先随便添加一个解析ttl为1分钟,点击右边的上下箭头

《[搞事]AWS-lightsail如何使用动态IP》

点击active激活

《[搞事]AWS-lightsail如何使用动态IP》

点击下载python,或者直接执行那一段wget command也会在后台自动更新ddns

 

我这里演示利用python脚本的

下载脚本,重命名为ddns.py 并放到/usr目录下

/usr/ddns.py

然后启动脚本,设置实例名和IP名

设置之后会保存在/etc/awsip.conf里面,可以后期自行修改

执行脚本

wget https://img.ppxwo.com/post/ddns/ddns.sh

bash ddns.sh &

一定要后面的& 否则可能ddns会不同步

 

添加计划任务,以达到自动更换IP的效果

建议24小时左右一次

如果太快DNS同步会出问题(全球DNS生效约24H,解析出来的IP可能于实际IP不符合

更加高端的功能大佬们可以自行研发。(网页端发送更改IP请求,QQ机器人发送请求,更改IP同时通过邮件发送实时IP,通过网页显示实时IP和ddns地址

 

脚本内容()

#!/usr/bin/env bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

function logo(){

echo "by:ppx"

}

function setconfig(){
if [[ -f /etc/awsip.conf ]]; then
ipname=`grep "ipname" /etc/awsip.conf | grep -oP '(?<==).*'`
instancename=`grep "instancename" /etc/awsip.conf | grep -oP '(?<==).*'`
else
echo && stty erase '^H' && read -p "需要创建的IP名: " ipname
echo && stty erase '^H' && read -p "需要创建的实例名: " instancename
echo -e "ipname=${ipname}\ninstancename=${instancename}" > /etc/awsip.conf
fi
}

function ddns(){
echo "等待5秒生效"
sleep 5
/usr/bin/python /usr/ddns.py
}

function changeip(){
echo "删除现有IP。"
aws lightsail release-static-ip --static-ip-name ${ipname} >/dev/null 2>&1
echo "创建新IP"
aws lightsail allocate-static-ip --static-ip-name ${ipname} >/dev/null 2>&1
echo "绑定IP"
aws lightsail attach-static-ip --static-ip-name ${ipname} --instance-name ${instancename} >/dev/null 2>&1
echo "更新DDNS"
sleep 1
ddns
}
logo
setconfig
changeip

 

 

 

点赞

发表评论

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

Captcha Code