显示按相关性排序、符合“linux”查询条件的博文。按日期排序 显示所有博文

2020年12月4日星期五

WSL-系统的使用备注

WSL-系统的使用备注

Windows 和 WSL2 文件夹相互访问路径:

1、通过 WSL 安装系统后,可以在资源管理器看见 Linux 文件系统。可以直接访问、操作,这是最简单的方式。
2、选中其中的文件夹,右击查看地址,可以看到访问 URL。
在 win11 中,WSL的访问地址为 “\\wsl.localhost\”;Win10中WSL访问地址为"\\wsl$\")
3. Linux子系统中本地磁盘均挂载在 WSL 系统中的 /mnt 文件夹下,可以直接访问。

手动安装(WSL2)


首先搜索【启用或关闭Winsows 功能】
然后勾选【适用于linux的Windows子系统】和【虚拟平台】
命令行安装WSL,以管理员身份打开 PowerShell 并运行:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
更新到 WSL 2,安装 WSL 2 之前,必须启用“虚拟机平台”可选功能。 以管理员身份打开 PowerShell 并运行:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

WSL2升级官方帮助链接

安装后,可以通过以下命令进行更新: wsl.exe --update
将 WSL 默认版本设置为2
wsl --set-default-version 2

安装所选的 Linux 分发版 ,打开 Microsoft Store,搜索 Linux
如果 Microsoft Store 应用不可用,可使用以下链接来下载并手动安装 Linux 发行版:
下载了发行版后,在Windows PowerShell中导航到包含下载内容的文件夹,
cd c:\"Users\User\Downloads"

并在该目录中运行以下命令,完成Linux发行版的安装
Add-AppxPackage .\Ubuntu2204-221101.AppxBundle
其中 Ubuntu2204-221101.AppxBundle 是 Linux 发行版的文件名。

常用命令

以管理员权限在命令提示符中运行

net stop LxssManager 停止
net start LxssManager 启动
wsl --shutdown 快速重启所有 WSL Linux发行版
wsl --list --running 检查正在运行的wsl Linux发行版
wsl --list 查看当前的默认wsl
wsl -l -v 查看当前已安装的wsl版本以及状态
wslconfig /u Debian 删除名字为Debian的Linux分发版
wslconfig /u Ubuntu 删除名字为Ubuntu的Linux分发版
wsl -d Debian 启动指定版本为Debian的Linux子系统
wsl -d Ubuntu 启动指定版本为Ubuntu的Linux子系统
wsl -d Debian -u root 启动指定版本为Debian,并指定以root用户操作

若要将分发版设置为受某一WSL 版本支持,请运行:
wsl --set-version <distribution name> <versionNumber>
其中:为你的分发版的实际名称如Ubuntu; 为“1”或“2”,你可以随时更改回 WSL 1,方法是运行与上面相同的命令。示例命令:
wsl --set-version Debian  2
wsl --set-version Ubuntu  2

在 PowerShell 中使用如下命令可以检查发行版是否安装成功:
wsl --list --verbose

获取Linux发行版分配的 IP地址,命令提示符输入:
wsl -- hostname -I 

从 Windows (localhost) 访问 Linux 网络应用:
如果要在 Linux 分发版中构建网络应用,可以使用  localhost  从 Windows 应用(如 Microsoft Edge 或 Chrome Internet 浏览器)访问它(就像往常一样)。

从 Linux(主机 IP)访问 Windows 网络应用:
通过在 Linux 分发版中运行以下命令来获取主机的 IP 地址:cat /etc/resolv.conf
复制以下词语后面的 IP 地址:nameserver。
使用复制的 IP 地址连接到任何 Windows 服务器。

Linux常用命令:

查看运行的Linux的网络信息
ip a
设置root密码
sudo passwd root
输入“su”来切换到root用户,当看到“$”变为“#”说明用户切换成功
更新源
sudo apt-get update
安装网络工具(ifconfig)
sudo apt-get install net-tools
安装openssh-server
sudo apt-get install openssh-server 
安装Vim编辑器
sudo apt-get install vim
修改配置允许root用户登录
sudo vim /etc/ssh/sshd_config
PermitRootLogin yes  
StrictModes yes  
重启sshd服务
sudo service ssh restart
备注:SSH服务可在win10中用127.0.0.1:22地址连接。
将ssh服务设置为开机自启
sudo systemctl enable ssh

Windows11中WSL 2 启用微软官方支持的 systemd

如果需要使用微软官方支持的systmed,在目前(2022/9/30)来说你需要满足这些前置条件: 1. 操作系统为windows 11 
2. wsl 版本为 0.67.6 或以上。
查看wsl版本号命令为: wsl --version,如果此命令未正常回显版本号,或版本号低于0.67.6,那么你安装的wsl还不支持systemd。
安装后,可以通过以下命令进行更新: wsl.exe --update
安装好新版wsl后,在子系统终端中通过以下命令来配置wsl2启用 systemd:
echo -e "[boot]\nsystemd=true" | sudo tee -a /etc/wsl.conf

配置后需要通过wsl --shutdown命令关闭wsl,来进行wsl的完整重启。

如何判断systemd是否启用成功

判断wsl是否已启用systemd,可通过以下命令查看:

ps --no-headers -o comm 1

如果命令返回的是init说明systemd未启用,如果是systemd那么你的systemd已启用成功了。

查看已启用的systemd service

通过systemctl的list-units、list-unit-files命令,都可以很好的查看目前的systemd状态,命令如下:

systemctl list-units --type=service
systemctl list-unit-files --type=service --state=enabled

修改wsl2安装目录

查看WSL分发版本
wsl -l --all -v
回显:
  NAME                 STATE           VERSION
* Ubuntu-22.04    Running         2

导出分发版为tar文件到d盘:
wsl --export Ubuntu-22.04 d:\wsl-Ubuntu-22.04.tar
注销当前分发版:
wsl --unregister Ubuntu-22.04
重新导入wsl-Ubuntu.tar分发版并安装在d:\WSL\Ubuntu目录:
wsl --import Ubuntu-22.04 d:\WSL\Ubuntu d:\wsl-Ubuntu-22.04.tar --version 2
导入后启动默认登录用户名为root,可用以下命令设置默认登陆用户为安装时的用户名:
Ubuntu config --default-user Username
设定root用户密码:
sudo passwd
删除tar文件(可选):
del d:\wsl-Ubuntu-22.04.tar
删除分发版(可选):
wslconfig /u Ubuntu-22.04

系统根文件管理:
若要在 Windows 文件资源管理器中查看所有可用的 Linux 发行版及其根文件系统,请在地址栏中输入:\\wsl$

更新软件源为清华源
源帮助 镜像使用帮助

以Ubuntu 22.04 lts 示例:
在 \\wsl$\Ubuntu\etc\apt 或 \\wsl.localhost\Ubuntu\etc\apt 目录中,
编辑sources.list文件,更新为以下内容

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
如果遇到无法拉取 https 源的情况,请先使用 http 源并安装:
sudo apt install apt-transport-https ca-certificates
更新系统
sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade

WSL2及系统自启动:

方法一(推荐):

创建bat文件快速执行端口映射及通过防火墙端口,并配合启动脚本使用。

复制以下文本另存为 wslnet.bat,编码方式ANSI
@echo off
timeout /T 15 >nul 
for /f  %%i in ('wsl -- hostname -I ') do (set wslip=%%i)

netsh interface portproxy delete v6tov4 listenaddress=:: listenport=88     
netsh advfirewall firewall delete rule name="tcp-88" dir=in protocol=tcp localport=88
netsh interface portproxy add v4tov4 listenport=88 listenaddress=0.0.0.0 connectaddress=%wslip% connectport=88
netsh interface portproxy add v6tov4 listenport=88 listenaddress=:: connectaddress=%wslip% connectport=88
netsh advfirewall firewall add rule name="tcp-88" dir=in protocol=tcp localport=88 action=allow

netsh interface portproxy delete v6tov4 listenaddress=:: listenport=444
netsh advfirewall firewall delete rule name="tcp-444" dir=in protocol=tcp localport=444
netsh interface portproxy add v4tov4 listenport=444 listenaddress=0.0.0.0 connectaddress=%wslip% connectport=444
netsh interface portproxy add v6tov4 listenport=444 listenaddress=:: connectaddress=%wslip% connectport=444
netsh advfirewall firewall add rule name="tcp-444" dir=in protocol=tcp localport=444 action=allow

netsh interface portproxy delete v6tov4 listenaddress=:: listenport=555
netsh advfirewall firewall delete rule name="tcp-555" dir=in protocol=tcp localport=555
netsh interface portproxy add v4tov4 listenport=555 listenaddress=0.0.0.0 connectaddress=%wslip% connectport=555
netsh interface portproxy add v6tov4 listenport=555 listenaddress=:: connectaddress=%wslip% connectport=555
netsh advfirewall firewall add rule name="tcp-555" dir=in protocol=tcp localport=555 action=allow

netsh interface portproxy delete v6tov4 listenaddress=:: listenport=8080
netsh advfirewall firewall delete rule name="tcp-8080" dir=in protocol=tcp localport=8080
netsh interface portproxy add v4tov4 listenport=8080 listenaddress=0.0.0.0 connectaddress=%wslip% connectport=555
netsh interface portproxy add v6tov4 listenport=8080 listenaddress=:: connectaddress=%wslip% connectport=555
netsh advfirewall firewall add rule name="tcp-8080" dir=in protocol=tcp localport=8080 action=allow

netsh interface portproxy delete v6tov4 listenaddress=:: listenport=1113
netsh advfirewall firewall delete rule name="tcp-1113" dir=in protocol=tcp localport=1113
netsh interface portproxy add v4tov4 listenport=1113 listenaddress=0.0.0.0 connectaddress=%wslip% connectport=22
netsh interface portproxy add v6tov4 listenport=1113 listenaddress=:: connectaddress=%wslip% connectport=22
netsh advfirewall firewall add rule name="tcp-1113" dir=in protocol=tcp localport=1113 action=allow

exit
命令注释:

通过IPV6公网远程访问,(需要允许iphlpsvc服务自动启动)

timeout /T 15 >nul   :: 延时15秒
for /f  %%i in ('wsl -- hostname -I ') do (set wslip=%%i)   :: 获取虚拟机IP
netsh interface portproxy delete v6tov4 listenaddress=:: listenport=88    :: 删除端口转发
netsh advfirewall firewall delete rule name="tcp-88" dir=in protocol=tcp localport=88    :: 删除防火墙规则
netsh interface portproxy add v4tov4 listenport=88 listenaddress=0.0.0.0 connectaddress=%wslip% connectport=88   :: 添加v4tov4端口转发
netsh interface portproxy add v6tov4 listenport=88 listenaddress=:: connectaddress=%wslip% connectport=88   :: 添加v6tov4端口转发
netsh advfirewall firewall add rule name="tcp-88" dir=in protocol=tcp localport=88 action=allow     :: 添加防火墙规则
开机自动启动:

创建启动vbs,以下文本另存为linux-start.vbs保证后缀为.vbs即可
Set ws = WScript.CreateObject("WScript.Shell")
ws.run   "wsl -d Debian", vbhide
ws.run   "wslnet.bat", vbhide

推荐使用Bat_To_Exe_Converter把BAT转exe,执行exe启动(方便以管理员权限启动)
注:wslnet.exe为BAT转exe文件,与linux-start.vbs文件放置在同一目录,

创建启动vbs,以下文本另存为linux-start.vbs保证后缀为.vbs即可
Set ws = WScript.CreateObject("WScript.Shell")
ws.run   "wsl -d Debian", vbhide
ws.run   "wslnet.exe", vbhide

按 win+R 输入 shell:startup 打开启动项目录,将以上linux-start.vbs文件的快捷方式放入该目录即可实现开机启动。

方法二

Windows内操作
1.创建txt文件,并输入以下内容(以debian为例子)
Set ws = WScript.CreateObject("WScript.Shell")
ws.run   "wsl -d Debian -u root", vbhide
ws.run   "wsl -d Debian -u root ip addr add  172.21.224.2/24 broadcast 255.255.240.0 dev eth0 label eth0:1", vbhide

注:其中‘Debian’为WSL2子系统的名字;ip网段要与vEthernet (WSL)虚拟适配器网段(172.21.224.1)一致,注意修改

2.保存并重命名,这里为‘linux-start.vbs’,保证后缀为.vbs即可
3.按 win+R 输入 shell:startup 将以上vbs文件放入该目录

方法三:

创建启动vbs,以下文本另存为linux-start.vbs’保证后缀为.vbs即可
Set ws = WScript.CreateObject("WScript.Shell")
ws.run   "wsl -d Debian -u root", vbhide

按 win+R 输入 shell:startup 将以上vbs文件放入该目录

Windows10中的WSL2默认是没有systemd服务的,需要自行去安装

方法一:安装daemonize和fontconfig
sudo apt install -y fontconfig daemonize
编辑/etc/profile脚本,加入如下内容:
sudo nano /etc/profile
SYSTEMD_PID=$(ps -ef | grep '/lib/systemd/systemd --system-unit=basic.target$' | grep -v unshare | awk '{print $2}')

if [ -z "$SYSTEMD_PID" ]; then
   sudo /usr/bin/daemonize /usr/bin/unshare --fork --pid --mount-proc /lib/systemd/systemd --system-unit=basic.target
   SYSTEMD_PID=$(ps -ef | grep '/lib/systemd/systemd --system-unit=basic.target$' | grep -v unshare | awk '{print $2}')
fi

if [ -n "$SYSTEMD_PID" ] && [ "$SYSTEMD_PID" != "1" ]; then
    exec sudo /usr/bin/nsenter -t $SYSTEMD_PID -a su - $LOGNAME
fi
修改/etc/sudoers文件,加入如下内容:
sudo nano /etc/sudoers

%sudo ALL=(ALL) NOPASSWD: /usr/bin/nsenter -t [0-9]* -a su - [a-zA-Z0-9]*
%sudo ALL=(ALL) NOPASSWD: /usr/sbin/daemonize /usr/bin/unshare --fork --pid --mount-proc /lib/systemd/systemd --system-unit=basic.target
%sudo ALL=(ALL) NOPASSWD: /usr/bin/nsenter -t [0-9]* -a su - [a-zA-Z0-9]*

执行source /etc/profile
source /etc/profile

执行systemctl验证是否能够正常操作。
systemctl --version

方法二:
安装daemonize
sudo apt-get install daemonize

执行以下命令开启
sudo daemonize /usr/bin/unshare --fork --pid --mount-proc /lib/systemd/systemd --system-unit=basic.target
exec sudo nsenter -t $(pidof systemd) -a su - $LOGNAME

方法三:使用Sysvinit命令替代Systemd命令,对照示例:

Sysvinit命令             Systemd命令                          作用/用途
service apache2 start    systemctl start apache2.service     启动apache2服务
service apache2 stop  systemctl stop apache2.service      关闭apache2服务
service apache2 restart  systemctl restart apache2.service   重启apache2服务不管当前是启动还是关闭状态
service apache2 reload  systemctl reload apache2.service    重新载apache2配置信息而不中断服务
service apache2 status   systemctl status apache2.servic     查看apache2服务的运行状态 



2016年8月28日星期日

apt 和 apt-get 之间的区别

一、 概念


1. Apt-get

Advanced Package Tool,又名apt-get,是一款适用于Unix和Linux系统的应用程序管理器。

最初于1998年发布,用于检索应用程序并将其加载到Debian Linux系统。主要用于自动从互联网的软件仓库中搜索、安装、升级、卸载软件或操作系统。

Apt-get成名的原因之一在于其出色的解决软件依赖关系的能力。其通常使用.deb-formatted文件,但经过修改后可以使用apt-rpm处理红帽的Package Manager(RPM)文件。

Apt-get在Linux社区得到广泛使用,成为用来管理桌面、笔记本和网络的重要工具。随着Linux在企业中的普及,Windows和Mac用户了解如何使用apt-get加载应用程序有一定的好处。

另外,随着单片机设备如Raspberry Pi的热度增加,apt-get在这些平台上是比较便捷的应用加载方式。如果你想要加载的应用需要程序库或另一个应用程序才能正常工作,apt-get会帮你找到并加载所需的程序库或应用代码。

apt-get当前的稳定版本是1.0.9.2,在2014年10月发布。

使用apt-get的主流Linux系统包括Debian和Ubuntu变异版本。大多数情况下,从命令行运行该工具。桌面上有几个图形前端可以使用,包括Synaptic Package Manager、Ubuntu Software Center、Aptitude和Kpackage。

Raspberry Pi和Beaglebone Black nanoLinux版用户可以很容易地使用apt-get加载程序,因为这些系统通常来自Ubuntu或Debian代码。是debian,ubuntu发行版的包管理工具,与红帽中的yum工具非常类似。

apt-get命令一般需要root权限执行,所以一般跟着sudo命令。

2. Apt

apt 命令行实用程序于2014年推出第一个稳定版本,用于 Debian 发行版 .deb 软件包安装。它最初在不稳定的Debian版本中使用,然后在Debian 8中成为标准。

在 Ubuntu 16.04 发行后,apt 开始流行,并以某种方式取代了 apt-get 。

随着 apt install package 命令的使用频率和普遍性逐步超过 apt-get install package,越来越多的其它 Linux 发行版也开始遵循 Ubuntu 的脚步,开始鼓励用户使用 apt 而不是 apt-get。

大多数人不了解 apt 和 apt-get 之间的区别,并且经常在使用一个或另一个时感到困惑。

两者都是开源命令行工具,用于管理软件包,例如安装,更新,升级和删除。

但是,它们之间仍然存在一些差异。

让我们看一些替代 apt-get 的 apt 命令,要查看这些命令,可以键入 apt help 或通过在终端中键入 apt man 来访问apt 手册页。它将显示与apt 相关的所有信息。

二、 apt-get和apt之间的区别

apt 和 apt-get 之间的第一个区别是命令本身。
例如,如果要使用 apt-get update 更新系统存储库索引,则可以运行:

#apt-get update


使用 apt 则输入命令:

#apt update


apt update 命令不仅更新存储库索引,还告知存储库中是否可用软件以及有多少新版本可用。

1. 命令对比

apt-getapt功能
apt-getapt安装软件包
apt-get removeapt remove删除软件包
apt-get removeapt remove更换所有包
apt-get purgeaptpurge移除软件包及配置文件
apt-get upgradeapt upgrade更新所有软件包(自动处理依赖项)
apt-get autoremoveapt autoremove自动删除不需要的包
apt-get dist-upgradeapt full-upgrade在升级软件包时自动处理依赖关系
apt-cache searchapt search搜索应用程序
apt-cache showapt show显示装细节
  • 删除不必要的依赖apt-get autoremoveapt autoremove删除具有相关配置的软件包apt-get purgeapt purge

  • 在上表中,如果将 apt-get 替换为 apt,则所有命令都相同,除了 apt upgrade 命令。
    旧的 apt-get upgrade 命令更新系统中当前存在的所有软件包,它不会在系统上安装或删除现有软件包。
    新的 apt upgrade 命令将安装作为可升级软件包的依赖项添加的软件包。尽管类似于 apt-get 升级,但它也不会删除以前安装的软件包。

  • apt show 命令以字母顺序打印输出,并隐藏 apt-cache show命令显示的不太重要的信息。

  • apt 和 apt-get 之间的区别不仅限于命令,新的 apt 命令中已添加了另一个视觉功能,以使最终用户满意。每当在使用 apt 升级,apt 完全升级或 apt dist升级时更新软件包时,都会看到一个进度条,通知该过程的进度。

* 当使用 apt remove 或 apt purge 删除软件包时,它也会出现。

  • 此外,如果我们运行 apt list --upgradeable,它还会显示一些颜色,以提供有关存储库提供最新版本的软件包的清晰概述。

2. 两个新命令

除了替换命令外,apt 引入了两个新命令:

新的apt命令功能
apt list列出包含条件的包(已安装,可升级等)
apt edit-sources编辑源列表
  1. apt list
    –当 apt list 命令与–installed或–upgradeable一起使用时,它将列出已安装,可安装或需要升级的软件包。
  2. apt edit-sources
    –使用此命令时,它将在编辑器中打开sources.list文件进行编辑。
    apt-get 仍然不能完全被 apt 取代,而且我认为它永远不会被完全终止。你可能正在考虑应该选择什么:apt 或 apt-get。在我看来,选择apt 是值得的,因为它提供了软件包管理的所有必需功能,并且更快,更友好且易于使用。

三、使用apt还是apt-get?

目前还没有任何 Linux 发行版官方放出 apt-get 将被停用的消息,至少它还有比 apt 更多、更细化的操作功能。对于低级操作,仍然需要 apt-get。

既然两个命令都有用,那么我该使用 apt 还是 apt-get 呢?

作为一个常规 Linux 用户,系统极客建议大家尽快适应并开始首先使用 apt。
不仅因为广大 Linux 发行商都在推荐 apt,更主要的还是它提供了 Linux 包管理的必要选项。

最重要的是,apt 命令选项更少更易记,因此也更易用,所以没理由继续坚持 apt-get。

最后给大家提供两点使用上的建议:

  • apt 可以看作 apt-get 和 apt-cache 命令的子集, 可以为包管理提供必要的命令选项。
  • apt-get 虽然没被弃用,但作为普通用户,还是应该首先使用 apt。

2021年7月1日星期四

Oracle VPS注册及使用


一 后台登录

https://cloud.oracle.com/?region=ap-chuncheon-1&tenant=(区域韩国春川登录)

https://cloud.oracle.com/?region=ap-seoul-1&tenant=(区域韩国首尔登录)

https://cloud.oracle.com/?region=ap-tokyo-1&tenant= (区域日本登录)


二 免费开通AMD云服务器

Oracle VPS可以创建AMD和ARM两种CPU类型的云服务器,这里先演示创建AMD类型的常规x86的服务器,一般默认选项即可。 创建Create Compute Instance

1 SSH 密钥Windows平台直接用PuTTY生成

复制下面的公匙,然后输入到上面Add SSH Key 处。然后保存私匙用于登陆。 SSH 密钥Windows平台直接用PuTTY生成 SSH 密钥Windows平台直接用PuTTY生成

2 查看创建好的云服务器IP

三 开放免费云服务器VPS的端口。机器默认仅开通了22端口!

Oracle Cloud永久免费云服务器VPS 1 查看实例详情,点击【虚拟云网络】 Oracle Cloud永久免费云服务器VPS2  然后点击子网中的数据! Oracle Cloud永久免费云服务器VPS 3  再点安全列表中的数据。 Oracle Cloud永久免费云服务器VPS 4  入站规则,可见仅开放了22端口!ICMP 也是关闭的(禁ping)。 Oracle Cloud永久免费云服务器VPS5  编辑第一条数据。将目的地端口范围里的数据清空!保存即可

6  同时还需要开放系统中的iptabls放行的端口 !

参见:Oracle Cloud Ubuntu 防火墙设置及开启root用户登录

四 登陆Oracle Cloud云服务器VPS

登陆Oracle Cloud永久免费云服务器VPS 

在putty里的Auth 设置私匙的位置,然后登陆 centos 默认登录账户是 opc ubuntu 默认登录账户是 ubuntu 登录到云服务器,直接 sudo -i 就可以切换到ROOT下! 如果你想要开机就使用root登录,可以使用以下命令(密码是123456,你可以替换为其它的):


#编辑cloud.cfg
vim /etc/cloud/cloud.cfg
#在最后加入以下代码
#!/bin/bash
echo root:123456 |sudo chpasswd root
sudo sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin yes/g' /etc/ssh/sshd_config;
sudo sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication yes/g' /etc/ssh/sshd_config;
sudo service sshd restart

保存后回到Oracle Cloud的实例详情页面,点击“重新引导”即可,现在开机就可以使用Root登录了。

五 Oracle VPS免费换IP

Oracle VPS是可以手动换IP的,而且还是免费的。首先是进入到要换IP的实例。

  1. 点击进入到实例详情页面,在页面左下角可以找到“附加的VNIC”,点击它。Oracle VPS 换IP地址
  2. 点击右边,选择“查看VNIC详细信息”Oracle VPS 换IP地址
  3. 这时会看到Oracle VPS的具体IP地址了Oracle VPS 换IP地址
  4. 点击右边的编辑,这时就可以进入到Oracle VPS的IP地址设置页面了
  5. 先选择“没有公共IP”,将原来的IP地址给解除绑定Oracle VPS 换IP地址Oracle VPS 换IP地址
  6. 然后再次点击编辑IP,这时可以选择“临时公共IP”,点击更新,这时新的IP会就会绑定成功了Oracle VPS 换IP地址

六 TCP加速

Ubuntu系统目前是可以直接安装BBR加速的!(不建议安装,容易触发规则) CentOS系统的Oracle VPS在换内核时会提示错误:/boot/grub2/grub.cfg not found。解决办法如下: 

1、切换成 root

2、根据问题采取解决:

  1. #/boot/grub/grub.conf 缺失:
  2. yum install -y grub
  3. grub-mkconfig -o /boot/grub/grub.conf
  4. #/boot/grub2/grub.cfg 缺失:
  5. yum install -y grub2
  6. grub2-mkconfig -o /boot/grub2/grub.cfg
  7. #或者新建链接
  8. ln -s /boot/efi/EFI/centos/grub.cfg /boot/grub2/grub.cfg
  9. #然后运行跑你要跑的 bbr.sh一键脚本

七、Oracle VPS重装系统

Oracle VPS目前最难处理的就是重装操作系统了,很多人不喜欢用Oracle VPS自带的Linux操作系统,原因就是限制太多,与常规的Linux有区别。Oracle免费VPS官方并没有提供重装系统的功能,所以想要换系统要么是删除重建VPS主机,要么使用DD安装。重装系统后如果“失联”,回到实例详情页面点击“重建引导”即可。

八、甲骨文云(Oracle Cloud)免费服务器开启 IPv6

1、控制台面板设置IPv6相关模块

登陆甲骨文后台: 

1  前往 网络 -> 虚拟云网络 -> 选择查看网络详情2 其实在控制台面板上主要下面4个步骤。3 打开 CIDR块 -> 点击 【添加 IPv6 CIDR块】添加成功后如下图:4  打开子网,编辑子网信息勾选 启用IPV6 CIDR块,输入框随便输入一个值,例如:ee,点击保存!如下图:这里如果出现下面的错误:NotAuthorizedOrNotFound,请看下面解决方案,成功后再继续这里的步骤。  5 IPv6 CIDR块添加成功!如下图!6 路由表 -> 路由表详情 -> 添加路由规则,如图设置即可! 目的地 CIDR 块:::/0 (注意2个冒号) 目标类型:Internet网关7 安全列表 -> 查看详情 -> 添加出站规则 和 添加 入站规则 目的地类型:CIDR 目的地 CIDR:::/0 (注意2个冒号) IP协议:所有协议8 查看服务器实例详情 -> 附加的 VNIC -> 点击VNIC详情 右侧可见多了一个IPv6地址 的选项!点击 【分配 IPv6 地址】9 可以指定一个你想要的IPv6格式,不指定会随机分配一个。 10  至此面板上的操作基本上完成了,系统会自动获取到IPV6.

九 甲骨文云(Oracle Cloud)免费开通ARM云服务器

ARM处理器是英国Acorn有限公司设计的低功耗成本的第一款RISC微处理器。全称为Advanced RISC Machine。ARM处理器本身是32位设计,但也配备16位指令集,一般来讲比等价32位代码节省达35%,却能保留32位系统的所有优势。缺点:支持的软件比较少,有些软件可能需要自己编译才能用! ARM开通方式和上面AMD云服务器基本一致,配置选择Ampere,OCPU 和 内存如图选择。系统限制,仅支持 Oracle Linux 和 Ubuntu 其他系统需要自己DD安装。 

1 ARM云服务器数量限制

1)免费资源为每个月3000个OCPU小时+18000GB内存使用量,不论收费与试用用户,免费的资源都是这么多。 折算为4C+24G的话,就是750小时,足够你玩一个月的。 网络带宽ARM后期会试用用户限速,具体时间未定。 2)你以前的普通机,依然是2台限制,这个没有变。 3)资源依然是网络流量每月10TB,总磁盘配额空间200G,IPV4地址共4个(* 3个临时+1个预留),IPV6地址就是那个 /16的数量。 可以开6台机器,最终两台用纯IPV6。

2 ARM云服务器 DD系统

新建实例时选的 ubuntu 20.4,非 mini 版!可以DD成 Debian10系统!

  1. curl -fLO https://raw.githubusercontent.com/bohanyang/debi/master/debi.sh
  2. chmod a+rx debi.sh
  3. sudo ./debi.sh --architecture arm64 --user root --password password

设置默认root的密码为password,登陆成功之后记得自己输入passwd修改密码!!! 没报错的话继续运行:

  1. sudo shutdown -r now

更新内核至5.10:

  1. echo "deb http://deb.debian.org/debian $(lsb_release -sc)-backports main" | sudo tee /etc/apt/sources.list.d/backports.list
  2. sudo apt update
  3. uname -r

此时看到的版本应该是4.19的,为了之后安装warp方便,我们可以更新内核到新版,5.6以上就自带了wireguard了,现在最新的是5.10

  1. sudo apt -t $(lsb_release -sc)-backports install linux-image-$(dpkg --print-architecture) linux-headers-$(dpkg --print-architecture) --install-recommends -y

启用IPv6 面板上的操作请见上面 9章的甲骨文云(Oracle Cloud)免费服务器开启 IPv6 这里主要差别是系统上的一些操作不太一样! 1)网卡。 Oracle Linux 7.9的网卡名称是:enp0s3 (和上文中是不一样的,使用 ifconfig 可见) 2)Oracle Linux 7.9 已经启动 IPv6模块,但是内核配置没有启用! 执行以下命令:

  1. echo "net.ipv6.conf.all.disable_ipv6=0" >> /etc/sysctl.conf
  2. #将配置生效
  3. sysctl -p
  4. #获取IPv6
  5. dhclient -6 enp0s3
  6. #查看IP,如下图红框中IPv6
  7. ip addr

 如果重启后IPv6获取不到?添加开机启动 那么执行下面的脚本。把获取IPv6的命令写到开机启动!

  1. chmod +x /etc/rc.d/rc.local
  2. echo "dhclient -6 enp0s3" >> /etc/rc.d/rc.local

Ubantu系统简单一些!面板操作完成,重启服务器即可。 Debian系统,面板操作完成!需要修改文件。

  1. echo "iface ens3 inet6 dhcp" >> /etc/network/interfaces
  2. #然后重启服务器
  3. reboot

Oracle Linux 8 系统,替换下面命令中的 ipv6地址 为你服务器实际分配的地址

  1. sudo ip -6 addr add ipv6地址 dev enp0s3

3 ARM云服务器安装Docker

Arm本来软件兼容不太好!使用Docker也是一个不错的选择,下面亲测 Oracle Linux 7.9 可行!原一键安装Docker命令执行失败! 特别提醒:用Docker不是所有镜像都能运行,需要找那些支持 linux/arm64的。

  1. cat >/etc/yum.repos.d/centos-extras.repo << 'EOF'
  2. [extras]
  3. name=CentOS-$releasever - Extras
  4. mirrorlist=http://mirrorlist.centos.org/?release=7&arch=$basearch&repo=extras&infra=$infra
  5. gpgcheck=0

EOF sudo yum install -y yum-utils sudo yum-config-manager \ –add-repo \ https://download.docker.com/linux/centos/docker-ce.repo sudo yum install docker-ce docker-ce-cli containerd.io 安装成功后 启动Docker

  1. systemctl start docker

九 控制台改密码、改邮箱、改租户名等教程

甲骨文云新版控制台更加简单明了。进入服务控制台后,点击右上角人头像标识,甲骨文账户的所有管理操作都可以在这里完成。控制台下面本文就详细讲解一下如何在新版中进行更改密码、变更邮箱、添加用户、变更租户名等操作:

1 甲骨文云更改密码

点击进入【我的信息概要】,选择【更改密码】更改密码输入旧密码,然后再输入新密码,点击【保存】甲骨文云更改密码再次登录时,密码就变更为你设置的新密码了。

2 甲骨文云变更邮箱

邮箱主要分两种类型:安全邮箱和通知邮箱:(*新版不再有登录邮箱这一说)

  • 安全邮箱:忘记密码或是无法访问账户时,恢复账户使用权限的邮箱。
  • 通知邮箱:接收甲骨文的各类通知信息的邮箱。

1、变更安全邮箱

点击进入【我的信息概要】甲骨文云变更安全邮箱在这里你会发现有一个【用户名】和【电子邮箱】,在初始注册的时候,这两个是相同的,都是邮箱名称。但是也可以是不同的。这一点我们在后面会详细讲解。 我们继续操作,点击【安全】选项进入到如下页面后,选择【恢复电子邮件】右下角的三个点,然后选择【编辑】:甲骨文云变更安全邮箱首先输入登录密码进行验证,完成后输入新的恢复电子邮件,并选择【更改恢复电子邮件】:甲骨文云变更安全邮箱甲骨文云变更安全邮箱这时候你新邮箱将会收到一封带链接的邮件,点击后输入新邮箱跟密码,即可完成更改。甲骨文云变更安全邮箱3、变更通知邮箱 还是在【我的信息概要】界面里,选择【更多操作】,在弹出的下拉框内选择【编辑电子邮件】甲骨文云变更通知邮箱在新弹出的页面中,选择【更改】,然后输入密码验证完成后,输入新的邮箱,然后点击【更改主电子邮箱】。(如果这里的邮箱更前面通知邮箱是一致的,则立即生效。如果是不一样的,则会出现更上面一样的邮件验证,完成验证即可。)甲骨文云变更通知邮箱回到【我的信息概要】,你会发现用户名仍然是原来的邮箱,但是电子邮件已经变为新的了。甲骨文云变更通知邮箱因为甲骨文注册时默认使用当时的主电子邮件作为登录方式,所以变更完以上电子邮件后,登录我们仍要输入原电子邮件名称才能登陆。但是这里原来邮箱只是作为登录时候的用户名形式,不再有任何邮箱实质意义。这一点说实话,有点“不完美”。不知道甲骨文后面是否还会调整。 对于一些强强迫症用户,总希望在登录输入用户名时,输入的是自己的邮箱或是喜欢的其他形式。那么我们可以通过添加用户来解决。

4 甲骨文云添加用户

主界面里选择【身份域】,进入身份域界面,然后在左侧选择【用户】甲骨文云添加用户甲骨文云添加用户选择【创建用户】,填写相关信息,完成后点击【创建】。这里有3点需要注意:甲骨文云添加用户

  1. 将电子邮件地址作为用户名:如果勾选了此项,则后面登录时输入用户名则为改电子邮件名称;如果不勾选,登录时的用户名就为此处你输入的【用户名】。
  2. 分配Cloud账号管理角色:这里默认勾选。不勾选的话,不会影响你创建服务。
  3. 组:建议全部勾选。

创建完成后,你创建用户的电子邮箱会收到一封邮件。点击链接,输入并确认密码后,将跳转至登录界面甲骨文云添加用户登录界面用户名就是你创建用户的电子邮件,或是当时输入的用户名,输入刚才创建的密码,即可成功登录。甲骨文云添加用户

5 甲骨文云变更租户名

原则上不建议对此进行变更,变更可能会带来风控。是否因此封号,谁也无法保证。但是对于强迫症用户来说,这里还是讲一下: 在主界面选择【租户:XXXXX】甲骨文云变更租户名进入到【租户详细信息】界面,选择【重命名租户】,然后输入新的租户名即可。甲骨文云变更租户名甲骨文云变更租户名这里有一点要注意,当你更改完租户名后可能不是即时生效。刷新租户详细信息界面,如果生效了,该处就会显示新的租户名。此时,在下次登录时,你输入新的租户名即可。有些人更改完马上退出重新登陆,输入新租户名会报错,是因为租户命名还未生效导致的。

十、关于计费

试用期结束后,您的帐户仍然有效,您可以继续创建和使用此页面上描述的“ 始终免费”资源。除非您升级帐户,否则Oracle将回收您在免费试用期间配置的付费资源。只要帐户在过去60天内使用,免费帐户仍然可用。 如果您决定升级到付费帐户,则可以选择“无需承诺的即付即用”帐户,也可以选择提供折扣价格的每月弹性帐户。请参阅免费试用网站上的定价详细信息以了解更多信息。 您可以在所有可用服务中运行最多8个实例,最多可以运行5 TB存储。在30天的促销期内,Oracle Cloud积分以折扣价格消费。每项服务下列出的容量限制仅为估算值,并反映了在促销期间消费一项服务的全部信用额度时可获得的最大容量。如果您使用多个服务,则每个服务的最大容量可能会减少。服务清单和容量估计数可能会有所变化。您可以在Oracle My Services仪表板上使用您的贷方余额。

十一 关于甲骨文云注册失败的问题

Oracle Cloud Free Tier真是是不容易注册,某鱼上卖号都到200元人民币。有种玄学的感觉,有些朋友开了十多张信用卡,试了n次仍然注册失败。 总结注册甲骨文免费试用账户成功的因素有以下:

  • IP地址要干净,最好从未注册甲骨文云,因为甲骨云只允许一个人一个免费试用账号
  • 设备要干净,最好之前没注册过甲骨文云或已重置系统
  • 信用卡问题,虚拟信用卡和预付卡比较难注册
  • 信用卡账单地址要和甲骨云注册地址匹配
  • 注册的设备要之前没注册过,也就是环境要干净,电脑不行,就用手机注册试试
  • 电话号码、邮箱、姓名、地址等资料甲骨云不看重,可以按你喜好填写。

在同甲骨云官方沟通后,在线客服也解决不了,只能提交工单。

Sorry we were unable to complete your sign up right away. This can happen if you are using a Pre-Paid card which we do not accept. Please try signing up again using a Credit Card or Debit Card. Be sure the billing address matches the address your bank has on file for your card. If you don’t already have an account from a previous sign up and still can’t create an account, please email us and we will see what’s going on.

通过这个链接提交工单 https://go.oracle.com/LP=96969?elqCampaignId=260306 甲骨云客服工单

十二. 甲骨文云(Oracle Cloud)可以找在线客服处理问题吗?

可以,但是作用极其有限。有时候会被客服态度折服。甲骨文云(Oracle Cloud)对用户会开放在线客服服务,全英交流,当然你可以用邮件形式沟通,但是我要给你泼冷水,一般这种客服和普通企业跟单没有区别,而且他甲骨文云(Oracle Cloud)在上面,你在下面。凡是都要求人家,如果你是个人用户,请最好告知我有意向花钱购买服务的意思(即便你不想花钱)要不然人家可以拒绝与你交流并直接关停你免费账户权利

十三. 账号被封

试用甲骨云免费云服务器时要准守他们的规章。滥用可能导致封号。建议注册好了账号静放2个月之后再使用,刚注册的号最易因为某些因素被封。比如DD了Windows系统,试用到期,机器不会停,需要自己手动停。

封号方法就是三无账户(无任何权限,无使用资源,无法升级)你能登陆,但是啥都做不了。

如果某天登录不进去,显示如下,账号就被封了。有时被封时还会来一份邮件。

Forbidden
Your client is not allowed to access the requested object.

十四. 关于账号

如果实在申请不下来甲骨文云账号,也可以直接从某宝或某鱼上购买。甲骨文 VPS 价格取决于该账号的存活的时间,通常三年老号稳如老狗,不易被封,市场价300元左右,一年老号在200元左右,满月账号在100以内,不建议购买只有7天的账号,除非用于试玩。

60天的以内甲骨文云账号很容易被封。有3个时间点容易被封。

注册一周内,因为注册甲骨云一周内会二次验证信用卡,如果二次验证扣款失败,会被封。

注册一个月内,刚满月的账号试用期过后,会结算账单,这时审核过程也容易被封。

注册2个月以内,会再次审核账号的账单,这时也容易被封。

2个月以上的账号稍微稳定了。若存活半年以上账号就更稳定了。

所以通常建议购买半年以上账号,至少也要2个月以上,就算比较安全了。

参考链接:

Oracle甲骨文云免费VPS注册及使用保姆级教程