这篇文章记录了oracle永久免费机器从注册到可访问的完整步骤。
整个过程我都是通过询问AI进行的,没有看一篇文章,但也踩了坑。主要是AI第一次没告诉我VCN要创建Gateways,导致一直ssh不上机器。还有就是80端口一直访问不通,排查后发现iptables里有一条默认拒绝规则。所以就都记录下来,方便后面自己看吧。
1、注册OCI账号
1.1、oracle云基础设施(Oracle Cloud Infrastructure),简称OCI。网址是https://www.oracle.com/cloud/,也可以搜索引擎找OCI打开。
1.2、点击Try OCI for free,或Sign Up for Free Cloud Tier,打开的页面一样。
1.3、点击Start for free,如实填写国家、姓名、邮箱,点验证邮箱。
1.4、邮箱会收到一封邮件,点击里面的链接,进入下一步。
1.5、完善账号信息:
设置密码;
选Customer type,可以选Individual(个人)填的信息少;
选主区域,这个取决于你的服务主要在哪访问,一般地理上近的地方延迟小。
将Cloud 账户名称改成记得住的,以后登录要输入。
1.6、验证银行卡:
填写真实的地址和手机号;
填写银行卡信息,目前只支持Visa、Mastercard、Amex的外币信用卡。
提交后oracle会扣款 1.38 新加坡元,并立即退回,所以这里其实没有收费只是验证银行卡有效。如果不放心,可以把银行号的限额调低。
2、登录OCI
2.1、重新打开OCI首页,点右上角小人图表,点击Sign in to Cloud。
2.2、输入Cloud 账户名称,点Next。
2.3、输入邮箱和密码点登录,
2.4、首次登录提示你要开启多因素身份验证(Multifactor Authentication, MFA),根据提示下载安装Oracle Mobile Authenticator APP,然后用APP扫描页面上的二维码绑定账号到APP。oracle只提供了google play链接,国产手机打不开google play的可以去 apkpure下载apk手动安装到手机。后续登录需要在手机APP上点允许。
3、创建机器
3.1、点左上角菜单>Networking>Virtual cloud networks
点Create VCN
起个名字填到Name
IPv4 CIDR Blocks填写10.0.0.0/16
开启Assign an Oracle allocated IPv6 /56 prefix.
其它保持默认,提交
3.2、点击刚才创建的VCN,点Subnet
点Create Subnet
起个名字填到Name
IPv4 CIDR Block填写10.0.0.0/24
开启Assign an Oracle allocated IPv6 /64 prefix.Help available,填写01
确认Subnet Access是Public Subnet(默认是,但确认下,否则无法公网访问)
其它保持默认,提交
3.3、还是刚才创建的VCN,点Gateways
点Create Internet Gateways
起个名字填到Name
其它保持默认,提交
3.4、还是刚才创建的VCN,点Routing
点Default Route Table for xxx,xxx是你3.1创建的VCN名字
点Route Rules
点Add Route Rules
Target Type选Internet Gateway
Destination CIDR Block填0.0.0.0/0
Target Internet Gateway选你3.3创建的Gateway名字
其它保持默认,提交
3.5、还是刚才创建的VCN,点Security
点Default Security List for xxx,xxx是你3.1创建的VCN名字
点Security rules
点Add Ingress Rules
Source CIDR填0.0.0.0/0
Destination Port Range填80,443(如果你还要暴露其它端口,就在这继续添加)
其它保持默认,提交
3.6、点左上角菜单>Compute>Instances
点Create instance
点Change image,可以根据自己的习惯选系统镜像,我这里选的是Canonical Ubuntu 22.04 Minimal。ARM机器要选aarch64版本,如Canonical Ubuntu 22.04 Minimal aarch64,当然机器规格下一步会选
点Change shape,免费机器主要是两种,Ampere(ARM处理器)下的VM.Standard.A1.Flex,和Specialty and previous generation(特定和上一代)下的VM.Standard.E2.1.Micro。前者能创建最大4C24G的大规格机器,也可拆为4台1C6G或在额度内自由组合。后者只能创建1C1G的机器,但可创建两台。也就是说最多能创建6台机器。
点Next,进入Security,这块保持默认
点Next,进入Networking
Virtual cloud networks 选择3.1创建的,
Subnet选择3.2创建的
Private IPv4 address选Automatically assign private IPv4 address(默认是这个,确认下)
打开Automatically assign public IPv4 address
打开Assign IPv6 address from subnet prefix
Add SSH keys确认选的是Generate a key pair for me,并下载private key和public key,后面登录机器要用。
点Next,进入Storage
打开Specify a custom boot volume size and performance setting
Boot volume size (GB)按需填写,最小填50
Boot volume performance (VPU)填120,性能拉满
点Next,确认配置没问题后点Create
4、登录机器
给private key文件授权,chmod 600 xxx.key
用终端登录机器:ssh -i xxx.key ubuntu@x.x.x.x
Canonical Ubuntu 22.04 Minimal默认有iptables拦截规则,也就是说需要暴露的端口不仅需要在VCN的Security配置,还需要配置到iptables规则。修改方式:编辑/etc/iptables/rules.v4文件,在第一行REJECT前一行添加-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT(这里以80为例,可以改为你需要的端口),iptables是顺序匹配的注意顺序,保存后执行netfilter-persistent reload(如果不生效执行iptables -F后再执行netfilter-persistent reload)
5、友情提示
Ubuntu 22.04 Minimal没有vi、netstat等常用软件,需手动安装
OCI会对资源利用率低的机器(说是<20%,但好像也不是很严格的在执行)进行回收,所以适当跑一些定时任务会好些,但也不要放重要数据在上面以免不测
6、常见问题
ping不通ip,没有配Gateways或Routing,参考3.3、3.4
打不开部署的网页,原因是iptables拦截,见4
certbot给nginx安装Let's Encrypt证书,报错Error getting validation data,原因是iptables拦截,见4