Rain's 碎碎念 Rain's 碎碎念
首页
关于

Rain

证明自己存在过
首页
关于
  • 拿到新的VPS/服务器后需要做的各种操作
  • 使用CDN后,Nginx如何获取访客(客户端)真实IP
  • 自建KMS服务器
  • Oracle Cloud备忘
    • 0. 丢失SSH私钥后,如何访问Server
    • 1. 开启账号密码登陆
    • 2. 更改ssh端口号
    • 3. 增加块存储
    • 4. 使用docker保活
    • 5. 防火墙关闭
    • 6. centos7 更换源
    • 7. 1c1g低配机器优化(oracle linux系统)
  • 杂项
Rain
2025-06-14
目录

Oracle Cloud备忘

甲骨文云(Oracle Cloud) 提供永久免费的云vps,但是注册比较困难。注册成功后,如果选择的区域不好的话,也很难开出免费的vps。当你经历以上挫折后,好不容易有了一台vps,但是又出现了一些使用上的问题,那么本文有可能帮助到你

# 0. 丢失SSH私钥后,如何访问Server

提示

前提条件需要Server安装了Oracle Cloud Agent

  1. 到实例 (opens new window),开启堡垒(Bastion),等待服务变为正在运行后,搜索堡垒,进入到堡垒配置页面

Oracle Cloud Agent

  1. 创建堡垒 Bastion

这里的CIDR 块允许列表为后面你要通过ssh命令连接服务器的ip配置(你的公网ip或者其他服务器的ip)

  1. 创建会话 session

用户名输入服务器登陆的用户名,一般为opc、root等

然后选择丢失私钥的实例

关键步骤: 添加 SSH 密钥 选择 生成 SSH 密钥对 这时可以保存 私钥(应该是你丢失的那个)和公钥

高级选项中 如果更改了ssh的端口,则需要改成对应的端口

然后创建会话 等待状态变为活动

  1. 使用2步骤保存的私钥ssh连接服务器 ssh 在对应的会话后面点击后面的3个点,可以复制ssh命令 大致如下
# 其中要将以下2处<privateKey> 替换为 前一步骤下载的私钥地址
ssh -i <privateKey> -o ProxyCommand="ssh -i <privateKey> -W %h:%p -p 22 ocid1.bastionsession.oc1.ap-singapore-1.amaaaaaazqshdeqa5b43vgevqvwztep65bcrrampru4hgyqnyrahs3mgimwa@host.bastion.ap-singapore-1.oci.oraclecloud.com" -p 22 opc@10.0.0.194
1
2
  1. 登陆之后 使临时公钥变为永久公钥
cd   ~/.ssh
vi authorized_keys
# 然后你会看到一个#开头的注释,下面就是你前面第2步下载的公钥内容
# 你可以将公钥内容 复制一份或重新用私钥创建一个公钥,然后放到注释到上方。 因为注释下面的公钥内容会在会话时间到期后删除
1
2
3
4
  1. 然后你就可以正常的使用私钥进行登陆Server了(ssh端口需要在防火墙中放行)
ssh -i <privateKey> -p port opc@serverip
1

# 1. 开启账号密码登陆

默认情况下 oracle cloud server 是使用私钥登陆的。 先ssh登陆到对应的server

# 切换到root 如果不记得密码 sudo passwd 更改密码
su -
# 进入sshd 的配置目录,因为使用了配置覆盖 所以直接改/etc/ssh/sshd_config 无效
cd /etc/ssh/sshd_config.d/
# 查看目录下的文件 50-cloud-init.conf 类似xxx-init.conf的文件
ls -al 
vi 50-cloud-init.conf
# 将PasswordAuthentication后的no 改为yes 然后保存
systemctl restart sshd
1
2
3
4
5
6
7
8
9

# 2. 更改ssh端口号

默认情况下 oracle cloud server 的ssh端口号是22 通常不安全 先ssh登陆到对应的server

# 切换到root 如果不记得密码 sudo passwd 更改密码
su -
# 进入sshd 的配置目录,因为使用了配置覆盖 所以直接改/etc/ssh/sshd_config 无效
cd /etc/ssh/sshd_config.d/
# 查看目录下的文件 50-cloud-init.conf 类似xxx-init.conf的文件
ls -al 
vi 50-cloud-init.conf
# 增加Port 端口号 然后保存
# --------------oracle linux 操作 start---------------
# 如果防火墙开着的情况下 需要按顺序执行以下命令 默认防火墙是firewall
firewall-cmd --permanent --add-port=新端口/tcp
firewall-cmd --reload
# 查看防火墙策略
firewall-cmd --list-all
# 移除添加的特定端口
# firewall-cmd --permanent --remove-port=2222/tcp
# 修改 SELinux 策略
semanage port -a -t ssh_port_t -p tcp 新端口
# 查看SELinux策略允许的ssh端口
semanage port -l | grep ssh
# 修改 SELinux 的 SSH 端口映射,去掉其他端口,仅保留 你设置的新端口
semanage port -m -t ssh_port_t -p tcp 新端口
# --------------oracle linux 操作 end---------------
# 重启sshd服务
systemctl restart sshd
# 查看sshd端口是否生效
ss -tulpn | grep sshd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

然后需要到Oracle cloud的网络策略中将新的端口放行 虚拟云网络 (opens new window) --> 对应的网络 --> 安全列表(左侧下面) --> 添加入站规则即可(具体参照老的22端口进行设置)

提示

仅当你使用新的端口成功连接ssh后,再退出已登陆的ssh,防止连不上服务器的情况

# 3. 增加块存储

甲骨文云 Oracle Cloud 的存储服务叫块存储卷,英文Block Volume,其实也就是常规云服务商的磁盘,其中分为块存储卷和引导卷. 这里只介绍增加块存储,引导卷扩容后貌似无法缩容,所以感觉不是很方便。

提示

免费用户只有200G的存储额度。(所有存储共享。包含引导卷和块存储)

  1. 访问块存储 (opens new window),创建块存储 Block Volume 输入名称 卷的大小和性能,可以选择定制,然后输入你想创建的大小(在免费额度内).性能可以拉满(免费用户) 然后点创建即可。
  2. 挂载 当状态变为可用后,点击名称进入详情,左侧附加的实例,然后点击附加到实例,选择想加磁盘的实例即可。 iscsi
  3. 初始化及使用 当状态变为已附加后,点击后面的3个点,选择iSCSI 命令和信息。在弹出的页面中,复制附加命令。 block-cmd 然后ssh登陆Server执行复制的命令
# 切换到root 如果不记得密码 sudo passwd 更改密码
su -
# 附加命令执行完成后 可以使用 查看磁盘情况 可以看出多了一块/dev/sdb的新磁盘
fdisk -l
#  对磁盘格式化 /dev/sdb 根据 fdisk -l 中的新增磁盘路径适当调整
fdisk /dev/sdb
# 按 n 开始
n
# 选择 p 为主要分区
p
# 剩下的默认 回车 即可
w
# 结尾输入 w 来保存

# 再次执行fdisk -l看到已经分区为/dev/sdb1
# 将磁盘格式化为ext4 格式
mkfs.ext4 /dev/sdb1

# 创建挂在目录 将磁盘挂在到指定目录
mkdir /opt/backup
mount /dev/sdb1 /opt/backup

# 查看磁盘的uuid
blkid /dev/sdb1
# 设置开机自动挂载。。但没有成功 mount -a 来执行手动挂载
vi /etc/fstab
# 在最后一行添加
UUID=<UUID> /opt/backup ext4 defaults 0 0
# 重新加载服务单元配置文件
systemctl daemon-reload

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

# 4. 使用docker保活

oracle cloud 有闲置回收政策 (opens new window)

提示

闲置的始终免费的计算实例可以被Oracle回收。如果在7天期间,以下情况属实,Oracle将把虚拟机和裸机计算实例视为闲置。

第95百分位数的CPU利用率低于20%。 网络利用率低于20%。 内存利用率低于20%(仅适用于A1套餐)。

注意:本服务脚本仅占用 CPU 资源,甲骨文政策大概率满足其一即可。

原理很简单,就是写了一段最简单的循环计算 shell 脚本,在 alpine 容器内部执行。只需要控制 docker 的启动和停止即可。

mkdir keeporaclealive
cd keeporaclealive
vi docker-compose.yml
# 创建 keeporaclealive 目录并新建 docker-compose.yml 文件,复制以下配置文件。
1
2
3
4

docker-compose.yml

services:
  keeporaclealive:
    image: alpine
    command: 'sh -c "while true; do for i in $$(seq 1 100000); do j=$$[i*i]; done; done"'
    restart: always
1
2
3
4
5

然后可以使用以下命令进行启停

# 启动
docker-compose up -d
# 停止
docker-compose stop
1
2
3
4

启动后cpu占用率在30%左右,添加crontab,来进行定时起停,不用使cpu一直在占用

crontab -e
# 添加以下两条记录
20 9 * * * cd docker-compose.yml文件目录 && /usr/bin/docker compose up -d
25 15 * * * cd docker-compose.yml文件目录 && /usr/bin/docker compose stop
1
2
3
4

# 5. 防火墙关闭

提示

请明确知道你在干什么,再进行以下操作!!!

请明确知道你在干什么,再进行以下操作!!!

请明确知道你在干什么,再进行以下操作!!!

(仅测试时推荐关闭防火墙,不推荐正式环境关闭防火墙)

不同的系统,需要关闭的防火墙是不一样的,而且默认的镜像会开启各种防护,让你防不胜防 导致各种连接不上 请求不到的问题。当你关闭了Server的防火墙后只要保证Oracle Cloud的网络策略正常放行就可以正常访问了

  • centos/oracle linux / redhat 等
# 切换到root 如果不记得密码 sudo passwd 更改密码
su -
# SELinux 只存在于 redhat体系等linux系统中
# 关闭 SELinux  将文件中的 SELINUX 改为 disabled 然后需要重启生效
vi /etc/selinux/config 

# firewalld为默认的防火墙 
systemctl stop firewalld
systemctl disable firewalld
# 重启使关闭 SELinux 生效
reboot
1
2
3
4
5
6
7
8
9
10
11
  • ubuntu
# 切换到root 如果不记得密码 sudo passwd 更改密码
su -

# ufw 为ubuntu 的默认防火墙
ufw status
# 关闭 并停止开机启动
ufw disable


# Apparmor 等同与SELinux
# 查看状态
aa-status
# 彻底移除 其他的更改内核启动配置 禁用的方式 无法生效 。移除后需要重启生效
# systemctl stop apparmor # 停止 apparmor
# systemctl disable apparmor # 禁用 apparmor
apt remove apparmor apparmor-utils
# 清除iptables ubuntu还会设置iptables 开启了2个防火墙(坑,无敌!)
# 查看iptables配置的规则
iptables -L -v
# 完全清除iptables规则 更保险的方式来彻底清除iptables规则 自行问AI什么意思
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -F
iptables -X
# 重启服务器
reboot
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

# 6. centos7 更换源

由于centos7已经停止维护了,所以官方的yum源也已经删除了,需要更换为http://vault.centos.org源

# 备份原文件
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.old
# 查看版本号
cat /etc/centos-release
# 创建新的仓库文件 其中7.9.2009为前一步显示的版本号,根据实际进行替换
vim /etc/yum.repos.d/CentOS-Base.repo
# 清理旧换成  生成新缓存
yum clean all
yum makecache
# 查看新仓库是否生效
yum repolist
1
2
3
4
5
6
7
8
9
10
11

CentOS-Base.repo

[base]
name=CentOS-$releasever - Base
baseurl=http://vault.centos.org/7.9.2009/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

[updates]
name=CentOS-$releasever - Updates
baseurl=http://vault.centos.org/7.9.2009/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

[extras]
name=CentOS-$releasever - Extras
baseurl=http://vault.centos.org/7.9.2009/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

# 7. 1c1g低配机器优化(oracle linux系统)

优化出来150+M内存。低配机器 建议centos7、ubuntu系统。千万不要选oracle linux全是坑

# 移除旧的1g swap空间 新增2g swap空间
# 如果路径不对 使用 swapon --show 查看swap文件名称和路径
sudo swapoff /.swapfile
sudo rm -f /.swapfile
sudo fallocate -l 2G /.swapfile
sudo chmod 600 /.swapfile
sudo mkswap /.swapfile
sudo swapon /.swapfile
#开机自动挂在 默认文件名不改的话,不需要添加
# echo '/.swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
# 查看是否生效
free -h
# oracle cloud agent
sudo systemctl stop oracle-cloud-agent
sudo systemctl disable oracle-cloud-agent
# oracle cloud agent updater
sudo systemctl stop oracle-cloud-agent-updater
sudo systemctl disable oracle-cloud-agent-updater
# tuned 是一个动态系统调优守护进程,它根据预设的配置文件或实时负载来优化系统性能(例如CPU、I/O、网络等)。
sudo systemctl stop tuned
sudo systemctl disable tuned
# Performance Co-Pilot (PCP) 是一套强大的性能监控框架
sudo systemctl stop pmcd pmlogger pmie pmie_farm pmlogger_farm
sudo systemctl disable pmcd pmlogger pmie pmie_farm pmlogger_farm
# 然后重启
reboot
# 重启后 查看状态
sestatus

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#OracleCloud#VPS
上次更新: 2025/06/15, 12:21:06
自建KMS服务器

← 自建KMS服务器

最近更新
01
自建KMS服务器
05-08
02
快速从命令后启动IDE
05-03
03
使用CDN后,Nginx如何获取访客(客户端)真实IP
05-01
更多文章>
Theme by Vdoing | Copyright © 2024-2025 Rain
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式