甲骨文VPS开机做的事

甲骨文云·记录备份 · 2023-06-12

科技lion

apt update -y  && apt install -y curl
curl -sS -O https://kejilion.pro/kejilion.sh && chmod +x kejilion.sh && ./kejilion.sh
or
curl -sS -O https://raw.githubusercontent.com/kejilion/sh/main/kejilion.sh && chmod +x kejilion.sh && ./kejilion.sh

docker run -i -d --name tm traffmonetizer/cli_v2 start accept --token IShUEA1CnVKduAf2ZfZxHf/9HzkRVPXptqb7f3yVhbE=

docker run -i -d --name tm traffmonetizer/cli_v2:arm64v8 start accept --token IShUEA1CnVKduAf2ZfZxHf/9HzkRVPXptqb7f3yVhbE=

1、防火墙相关
开放所有端口
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -F

Ubuntu镜像默认设置了Iptable规则,关闭它
apt-get purge netfilter-persistent
reboot
或者强制删除
rm -rf /etc/iptables && reboot

2、删除oracle-cloud-agent
root模式下执行:snap remove oracle-cloud-agent

3、pcbind进程关闭
systemctl stop rpcbind
systemctl stop rpcbind.socket
systemctl disable rpcbind
systemctl disable rpcbind.socket

4、删除ooracle-cloud-agent
systemctl stop oracle-cloud-agent
systemctl disable oracle-cloud-agent
systemctl stop oracle-cloud-agent-updater
systemctl disable oracle-cloud-agent-updater

5、停止firewall
systemctl stop firewalld.service
systemctl disable firewalld.service

6、安装相关依赖
apt-get install wget
apt-get update -y && apt-get install curl -y

7、root登录ssh
passwd # 修改密码

sudo -i
vi /etc/ssh/sshd_config

PermitRootLogin yes
PasswordAuthentication yes

systemctl restart sshd.service
或者
sudo service sshd restart

8、修改主机名
/etc/hostname文件

9、降低IPv6优先级,优先使用IPv4
配置方式如下:
echo "precedence ::ffff:0:0/96 100" >>/etc/gai.conf
当然也可以直接修改 /etc/gai.conf 文件,找到下面这一行

#precedence ::ffff:0:0/96 100

把前面的#去掉即可。

10、禁用 IPv6
编辑 /etc/default/grub,找到 GRUB_CMDLINE_LINUX_DEFAULT="quiet"
修改为:
GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1 quiet"
随后执行命令 update-grub 更新 grub 启动参数,重启系统即可。

11、修改IPV6生效,20.04
sudo sysctl -p
sudo netplan apply

12、设置多ip:参考https://cloud.tencent.com/developer/article/1483578
单网卡多ip设置

cd /etc/netplan/50-cloud-init.yaml
network:
    version: 2
    ethernets:
        enp0s6:
            dhcp4: true
            addresses:
            - 10.0.0.X/24
            - 10.0.0.X/24
            match:
                macaddress: 02:00:17:01:XX:XX
            nameservers:
                addresses:
                - 168.138.XX.XX
                - 158.178.XX.XX
            set-name: enp0s6

netplan apply

多网卡看教程吧

13、设置出口ip
查看出口ip
ip route show

#default via 10.0.0.1 dev enp0s6 proto dhcp src 10.0.0.220 metric 100 

配置出口IP
ip route replace default via 网关IP(10.0.0.1) dev eth0 src 出口IP(10.0.0.223)
也可使用iptables snat,扩展可对目标ip、端口、应用软件等单独指定出口ip。
iptables -t nat -I POSTROUTING -o eth0 -d 0.0.0.0/0 -j SNAT --to-source 出口IP

14、x-ui

bash <(curl -Ls https://raw.githubusercontent.com/FranzKafkaYu/x-ui/master/install.sh)

15、刷机r_bot创建权限api

vi role_apiuser_policy.sh
#!/bin/bash

# 添加一个用户, 该用户无用户管理权限, 只能管理实例、存储、网络

# 在 Cloud Shell 中执行

# 颜色

RED="\e[31m"

GREEN="\e[32m"

RESET="\e[0m"

# 参数

export compartment_id=""     # 租户OCID

export group_name="Group_for_Api_used"    # 组名称

export group_des="这个用户组是给api使用的,权限会受控,防止api操作用户类权限"    # 组描述

export policy_name="Policy_for_Api_used"   # 策略名称

export policy_des="这个策略是给api使用的,权限会受控,防止api操作用户类权限"    # 策略描述

export policy_file="file://statements.json" # 策略语句文件

export user_name="User_for_Api_used"    # 用户名称

export user_des="这个用户是给api使用的,权限会受控,防止api操作用户类权限"    # 用户描述

export user_email="[email protected]"   # 用户邮箱,当type为new时必填

export type="new"       # 控制面板类型,new或者old

export ignore_error="0"      # 忽略错误

while [[ $# -ge 1 ]]; do

 case $1 in

 -c | --compartment_id )

  shift

  compartment_id="$1"

  shift

  ;;

 -g | --group_name )

  shift

  group_name="$1"

  shift

  ;;

 -gd | --group_des )

  shift

  group_des="$1"

  shift

  ;;

 -p | --policy_name )

  shift

  policy_name="$1"

  shift

  ;;

 -pd | --policy_des )

  shift

  policy_des="$1"

  shift

  ;;

 -u | --user_name )

  shift

  user_name="$1"

  shift

  ;;

 -ud | --user_des )

  shift

  user_des="$1"

  shift

  ;;

 -ue | --user_email )

  shift

  user_email="$1"

  shift

  ;;

 -t | --type )

  shift

  type="$1"

  shift

  ;;

 --ignore_error )

  shift

  ignore_error="1"

  ;;

 -h | --help )

  echo -ne "Usage: bash $(basename $0) [options]\n\033[33m\033[04m-c\033[0m\t\t租户OCID, 默认自动获取\n\033[33m\033[04m-g\033[0m\t\t组名称, 默认Core-Admins\n\033[33m\033[04m-gd\033[0m\t\t组描述, 默认Core-Admins\n\033[33m\033[04m-p\033[0m\t\t策略名称, 默认Core-Admins\n\033[33m\033[04m-pd\033[0m\t\t策略描述, 默认Core-Admins\n\033[33m\033[04m-pf\033[0m\t\t策略语句文件, 默认file://statements.json\n\033[33m\033[04m-u\033[0m\t\t用户名称, 默认Core-Admin\n\033[33m\033[04m-ud\033[0m\t\t用户描述, 默认Core-Admin\n\033[33m\033[04m-ue\033[0m\t\t用户邮箱, 当type为new时必填, 默认[email protected]\n\033[33m\033[04m-t\033[0m\t\t控制面板类型, new或者old, 默认old\n\033[33m\033[04m--ignore_error\033[0m\t忽略错误返回信息\n\033[33m\033[04m-h\033[0m\t\t帮助\n\nExample: bash $(basename $0) -ue [email protected] -t new --ignore_error \n"

  exit 1;

  ;;

 * )

  echo -e "${RED}无效参数: $1${RESET}"

  exit 1;

  ;;

 esac

 done

# 检查参数

if [ "$type" == "new" ]; then

 if [ "$user_email" == "" ]; then

 echo -e "${RED}用户邮箱不能为空${RESET}"

 exit 1

 fi

fi

# 策略语句

if [ "$type" == "new" ]; then

 echo "[

 \"Allow group 'Default'/'$group_name' to manage instance-family in tenancy\",

 \"Allow group 'Default'/'$group_name' to manage volume-family in tenancy\",

 \"Allow group 'Default'/'$group_name' to manage virtual-network-family in tenancy\"

 ]" > statements.json

else 

 echo "[

 \"Allow group $group_name to manage instance-family in tenancy\",

 \"Allow group $group_name to manage volume-family in tenancy\",

 \"Allow group $group_name to manage virtual-network-family in tenancy\"

 ]" > statements.json

fi

# 检查命令执行结果

function check() {

 if echo "$1" | grep -q "ServiceError"; then

 err_msg=$(echo "$1" | sed -n 's/.*"message": "\(.*\)",/\1/p')

 echo -e "${RED}命令执行失败:$err_msg${RESET}"

 if [ "$ignore_error" == "0" ]; then

  exit 1

 fi

 else

 echo -e "${GREEN}$2${RESET}"

 fi

}

# 获取租户OCID

compartment_id=$(oci iam availability-domain list --query 'data[0]."compartment-id"' --raw-output)

echo -e "${GREEN}租户OCID: $compartment_id ${RESET}"

# 创建组

group_result=$(oci iam group create --compartment-id $compartment_id --name $group_name --description $group_des 2>&1)

check "$group_result" "组创建成功"

group_id=$(echo $group_result | jq -r '.data.id')

# 创建策略

policy_result=$(oci iam policy create --compartment-id $compartment_id --description $policy_des --name $policy_name --statements $policy_file 2>&1)

check "$policy_result" "策略创建成功"

# 创建用户

if [ "$user_email" == "" ]; then

 user_result=$(oci iam user create --name $user_name --description $user_des --compartment-id $compartment_id 2>&1)

else

 user_result=$(oci iam user create --name $user_name --description $user_des --compartment-id $compartment_id --email $user_email 2>&1)

fi

check "$user_result" "用户创建成功"

user_id=$(echo $user_result | jq -r '.data.id')

# 将用户添加到组

add_result=$(oci iam group add-user --group-id $group_id --user-id $user_id 2>&1)

check "$add_result" "用户添加到组成功\n\n后续可手动在用户 $user_name 中添加 API密钥 (无需登录该用户)"
Theme Jasmine by Kent Liao