
(官网截图)
目錄
[toc]
0 在Oracle基地免費架站(大阪)
0.1 免費約定
- 永久免費算力:提供兩台 1/8 OCPU性能、1GB RAM 的永久免費 x86 虛擬主機(V M)可選用。
-
永久免費存儲:200GB免費空間。每台VM的引導存儲的要求為50GB以上,所以最多可開啟200/50=4台免費VM。
-
每月額外免費ARM運行時:提供4個熱門的Ampere ARM OCPU 服務、帶24GB 的RAM。可隨意開一到四台的ARM虛擬主機。
-
公網IP:四個IPV4地址(3個臨時地址+1個預留地址),IPV6地址是/16的數量。建立VM時可以臨時要新IP,IP有問題時可以更換。在設定IP時可以同時保留到“預留的公共IP”池,重灌VPS時可到“预留的公共IP”取習慣用的舊IP,這樣DNS不必為此修改IP設定。
-
免費流量:10T/月出站流量,夠佛心的,現在的網速幾乎用不完。。。
-
其他甲骨文免費資源:除了VM實例,其他甲骨文服務目前我的VPS用不上。

(官网截图)
甲骨文雲最多提供兩台永久免費x86虛擬機(VM),每台1GRAM,1/8 CPU。另外還有每月贈免費(非永久)使用時數的ARM虛擬機器。免費時數換算後,在目前政策下,相當於 4核/24G RAM 以下的 ARM 虛擬機能持續免費。每月10T免費流量,做普通網站還不錯。
在一個月內無限免費的條件下,可以儘量多做嘗試,找到最適合自己的免費架站規劃。
參考:甲骨文永久免费vps注册和使用简单教程 架站。
0.2 (我的)架站規劃
由於Oracle服務需要綁定信用卡,帳戶在申請時,就必須選定基地位置不能改,而大部分免費資源,只能在基地位置有效所以基地的位置選擇需要慎重些。大陸信用卡似乎審核比較難,台灣信用卡審核無壓力。
離台灣最近的就是日本了,但不是每個Oracle基地都有足夠的架站資源,據說東京就很難申請到,我在大阪申請的是OK的,可以容易的取得ARM和x86資源(2022/10),某些人拿來做日本遊戲服務器的跳板,晚上的網路明顯會壅塞些。
鳳凰城資源保留聽說還可以,就是有點遠,延遲明顯偏長,在亞洲不是好選擇。
服務器規劃,剔除每月贈送的ARM算力,真正永久的兩個x86虛擬機實例還是要用上,1GBR的RAM嫌小,但當小型的網頁服務器是OK的。每月贈送的ARM的4核/24G RAM我想做一些開發實驗,就整合成一台算力較好的VM,存儲就給大一點做實驗吧。
我的設定如下,三台VPS:
- VM0: arm 4核/24GB 一台,自訂 100GB 存儲,做性能工作用途
- VM1: x86VM,自訂50GB 存儲,做網站用途,或提供其他服務。
- VM2: x86VM,自訂50GB 存儲,做網站用途,或當備用VPN。
由於x86VM只有1GB的RAM,1/8 的OCPU,性能普普,跑不動大應用。但當純文字PC、VPN、Wordpress架網站用還不錯,不要跑桌面應用。(聽說可添加SWAP,讓VM跑大型應用,但不想這樣折騰。。。)
ARM 和 x86機器都可安裝免費的Ubuntu或Oracle Linux。(x86還可裝Windows,OS要付費,還需擴容),我選擇常用的Linux安裝。Ubuntu 22.04安裝後, 初始用户是 ubuntu,没密码,使用較安全的ssh key 登入 ssh終端服務。(注意在本地保存好 key,否則會無法登入)
Oracle可保留公網IP,在重建VM時,選用習慣的舊IP,就可以不必動DNS設定了。我把每個VM的公網IP都指向保留的IP,若發現IP被某牆國防火牆阻攔,可以更換IP。
0.3 關於DNS的使用
可以不給DNS,直接用公網IP連服務器,但不直觀,有時會需要更換IP,相應的服務更改會很痛苦。但,DNS的使用需要謹慎。
0.3.1 Freenom.com 免費的最貴。。。
Freenom.com 提供免費DNS申請和DNS服務,申請方便,但免費DNS發現會有很多問題。。。(發現遇到衝突、DNS竄改,跳到欺騙網頁),實驗在Let’s Encrypt下,很有可能無法正確取得/續約證書。。。果然,代表網上身分的域名,還是需要小心奇怪的免費服務商。
0.3.2 Namecheap 我用的域名服務商
之前我在NameCheap申請了兩個付費Name(go2see.co、go2see.me),並在台灣服務器使用。我們可以在Namecheap的DNS添加 A record,建立三個三級子域名,指向Oracle的VM的公網IP來建立VPS。如:
vm0.go2see.me
vm1.go2see.me
vm2.go2see.me
在Namecheap上設定頁是類似這樣的:

0.4 創建 Oracle VM
参考:

創建好VPS實例後,從管理網頁的 運算 — 實例 中,挑選剛建好的實例的詳細信息,修改公網IP為我預留的IP。

在實例頁面的左下角的資源欄,點選 “附加的VNIC”

然後點選 “主要VNIC” 旁連接:

在VNIC頁再點選左下角的 IPv4地址,在到IPv4地址點選右方的彈出選單,選擇編輯彈出頁:

然後選擇“預留的公共IP” — “選擇現有預留IP地址” — 點選擇值,彈出選單選擇想用的預留IP,並更新:

這樣就更換了預留的IP了。。。
1 VM 基礎的初始化設定
我建立了3台虚拟机, arm、vm0、vm1。建立了各自的 ssh 密钥对。在arm可以用terminal软件ssh登入,在linux/macOS可以直接 ssh命令登入。
1.0 第一次登入–使用ssh金鑰和預設帳戶名
ubuntu 22.04服務器的初始化用戶名和密碼都是ubuntu。 oracle的ubuntu在初始化後,預設不讓用密碼登入,只能用建立VM時生成/提供的ssh金鑰登入。之後可以自己改成可用密碼登入。
我在Namecheap功能變數名稱管理服務中,把vm0.go2see. co功能變數名稱綁定到arm虛擬機器的公網IP地址了,所以我可以使用以下命令,採用標準的埠22,登入arm虛擬機器:
ssh -i ssh-arm.key -p 22 ubuntu@vm0.go2see.co
登入後,就可以開始做一些設定了。 大陸有時候連ssh埠(port 22)都擋,在之後的1.2節會添加一個備用埠。
1.1 步骤:进入root,調整時域
#之後的工作要在 root下做。。。。
sudo -s
# 調整系統時域
dpkg-reconfigure tzdata
# 按'A'後按上下選擇: Asia 然後 按't'後選擇 Taipei。
# (若時間服務異常)可更換時間服務器:
#apt-get install -y ntpdate ntp
#ntpdate time.stdtime.gov.tw
1.2 初始化防火牆、密碼
改用ufw防火牆設置工具,比直接用iptable管理防火牆好用。
Oracle子網域也需要可設定防火牆規則,對網域內機器都有效,需要同步設定規則或關閉他(允許所有連接)。
# 初始化 apt
# apt update && apt upgrade -y
apt update -y
# 改用 ufw 代替 iptable 关闭 iptable。
ufw disable
ufw reset
ufw default deny
ufw allow ssh
ufw allow http
ufw allow https
ufw allow from any to any port 3389 #RDP
ufw allow from any to any port 8082 #my vpn port
ufw allow 2222 # my 2nd ssh port
ufw enable
# 關閉本機ufw防火牆,直接用 oracle防火牆?
ufw disable
# 允許 ssh 用密碼登入(no 改 yes),不必一直用 ssh-key(可能影響登入安全):
sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config
# 添加帳戶的 ssh 密碼:
passwd ubuntu
- ssh port 22 有些地方会挡,我提供第二个 ssh 接口:2222。記得Oracle帳戶的防火墙也要打开。。。
## 1. 防火墙打开 2222 端口,注意 Oracle 子网域防火墙也要打开。。。
sudo ufw allow 2222
## 2. 编辑 sshd_config
sudo nano /etc/ssh/sshd_config
### 在文件中添加以下两行,让 sshd 聆听端口 22 和 2222:
Port 22
Port 2222
### 3. 重启 sshd
sudo systemctl restart sshd
1.3 更改主用户名
⚠️注意:更改用主戶名可能造成無法登入,執行前,請確認以下4點已經做了:
# ⚠️需要完全在 root下工作 sudo -s # ⚠️允許用密碼 ssh(no 改 yes),不必一直用 ssh-key(可能影響登入安全)登入: sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config # ⚠️要先给 ubuntu 账户加密码,否则更名之後可能无法 sudo 了。。。 passwd ubuntu
開始修改:
cd /
# 改变 /etc 下的 passwd、shadow、group 用户名。可以用 nano 编辑,或 sed 自动修改
# 账户密码的 户名、全名、工作目录:
sed -i 's/ubuntu/cyue/g' /etc/passwd
sed -i 's/Ubuntu/CYUE/g' /etc/passwd
# shadow的 户名:
sed -i 's/ubuntu/cyue/g' /etc/shadow
# 旧帐户加入的群组:
sed -i 's/ubuntu/cyue/g' /etc/group
# 工作目录名变换
mv /home/ubuntu /home/cyue
# nano /etc/sudoers,在root后添加新用户名(以cyue为例),为可以执行 sudo的用户。
echo 'cyue ALL=(ALL:ALL) ALL' >> /etc/sudoers
# reboot完成更名!!
reboot
# 之后 ssh 可以用 cyue + 密码 登入了。。。
1.4 本机免密登入服务器
若近端平时工作的PC上的 ~/.ssh/id_rsa.pub 文件(本机 ssh 公开金钥)不存在,执行 ssh-keygen 建立本机 ssh 用的金钥。(询问问题时可以直接按enter继续)
有ssh 金钥后,执行 ssh-copy-id 把ssh公钥复制到 服务器上:
ssh-copy-id -i ~/.ssh/id_rsa.pub cyue@vm0.go2see.me
执行后,输入账户密码,会把本机的公钥添加到服务器的 cyue 账户的 ~/.ssh/authorized_keys 尾端。这样在 ssh 登入服务器的 cyue 账户时,系统会验证公钥后进入 ssh ,不必再输入密码。
2 按裝網頁服務 LNMP+WP
2.1 安裝 LNMP
Linux適用的通用架站包 – Nginx+MarriaDB+PHP。
LNMP网站的script似乎会有问题,我手动添加NMP,不用LNMP网站脚本。。。
echo
echo '# 1. 安装啟動 nginx'
echo
sudo apt update
sudo apt install nginx lynx -y #lynx是文字模式browser用于terminal中检查网页。
sudo systemctl restart nginx.service
sudo systemctl enable nginx.service
sudo ufw allow 'Nginx Full' # 防火牆打開 nginx
# 需要的話,檢查 nginx 網頁:
# lynx localhost
# sudo systemctl status nginx.service
echo
echo '# 2. 安装MariaDB'
echo
sudo apt install mariadb-server mariadb-client -y
sudo systemctl stop mariadb.service
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service
# 数据库加密保护
sudo mysql_secure_installation
# 需要在此設定資料庫的 root 密碼,禁止遠程登入 root
###檢查數據庫安裝:####
# 1. 登入查看 mariaDB 数据库:
# sudo mysql -u root -p
# 2. 离开数据库:
# exit;
####################
echo
echo '# 3. 安装PHP'
echo
sudo apt install php-fpm php-opcache php-cli php-gd php-curl php-mysql -y
### 依據安裝版次修改php設定
# sudo nano /etc/php/8.1/fpm/php.ini
# 參考數值:
# max_execution_time = 360
# memory_limit = 256M
# cgi.fix_pathinfo = 0
# file_uploads = On
# upload_max_filesize = 100M
# allow_url_fopen = On
# date.timezone = Asia/Taipei
sudo sed -i 's/max_execution_time = 30/max_execution_time = 360/g' /etc/php/8.1/fpm/php.ini
sudo sed -i 's/memory_limit = 128M/memory_limit = 256M/g' /etc/php/8.1/fpm/php.ini
sudo sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 100M/g' /etc/php/8.1/fpm/php.ini
sudo systemctl restart nginx.service
sudo systemctl restart php8.1-fpm.service
2.2 安装 WordPress 動態網頁服務
WordPress 是彈性最大的個人架站選擇了,免寫程式、提供豐富的功能外掛支持和外觀風格選擇。
2.2.1 下载 WordPress
从 WordPress TW 网站并下载最新版本,解压并放到 /var/www/
echo
echo 1. 下載安裝 WordPress
echo *** 从 WordPress TW 网站并下载最新版本,解压并放到 /var/www/
cd /tmp && wget https://tw.wordpress.org/latest-zh_TW.tar.gz
tar -zxvf latest-zh_TW.tar.gz
sudo mv wordpress /var/www/wordpress
echo *** 更换 wordpress 目录的用户与权限(使用用户 www-data:www-data, 权限 755 ):
sudo chown -R www-data /var/www/wordpress/
sudo chmod -R 755 /var/www/wordpress/
echo
echo 2. 配置 mariaDB(root 登入 marriaDB)
#接着要设定资料库了。。。
sudo mysql -u root -p
2.2.2 設定網站資料庫
- 資料庫設置參考:(為 vm0 vm1 vm2 建立資料庫)
# 若有舊的 DB刪除資料庫與帳號
#drop database vm0;
#drop user uservm0;
#drop database vm1;
#drop user uservm1;
drop database vm2;
drop user uservm2;
#建立資料庫與帳戶
### vm0
#CREATE DATABASE vm0;
#CREATE USER 'uservm0'@'localhost' IDENTIFIED BY 'PASSWORD';
#GRANT ALL ON vm0.* TO 'uservm0'@'localhost' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
### vm1
#CREATE DATABASE vm1;
#CREATE USER 'uservm1'@'localhost' IDENTIFIED BY 'PASSWORD';
#GRANT ALL ON vm1.* TO 'uservm1'@'localhost' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
### vm2
CREATE DATABASE vm2;
CREATE USER 'uservm2'@'localhost' IDENTIFIED BY 'PASSWORD';
GRANT ALL ON vm2.* TO 'uservm2'@'localhost' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
# 保存设定并退出:
FLUSH PRIVILEGES;
EXIT;
2.2.3 nginx 建立 wordpress 服务器
- 在nginx建立初始化的 sites-available/wordpress 服务器文件:
# 在nginx建立初始化的 wordpress服务器文件:
sudo nano /etc/nginx/sites-available/wordpress
将内容填入配置文件,把关联的网址名写到 server_name 项目后方:
server {
root /var/www/wordpress;
index index.php index.html index.htm;
#server_name vm0.go2see.me vm0.go2see.co; ## 注意 name修改!!
#server_name vm1.go2see.me vm1.go2see.co; ## 注意 name修改!!
server_name vm2.go2see.me vm2.go2see.co; ## 注意與 DNS 對應名稱!!
client_max_body_size 100M;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
- 编完保存。
2.2.4 启用WordPress服务器
- 以 ln 建立连接方式将剛建立的文件 worepress 連接到可使用位置。
sudo ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/
# 重啟 nginx 和 php服務
sudo systemctl restart nginx.service
sudo systemctl restart php8.1-fpm.service
# 這時瀏覽器應該可以看到Wordpress網站安裝畫面了,瀏覽器打開看看:
# http://vm2.go2see.co/wp-admin/setup-config.php
# 在2.4節注意資料庫名、用戶名、密碼、主機位置記得用前面設定的。。。
安裝好先別急著設定,我們在 2.3 節先為網站添加免費的 https證書。
2.3. Certbot 為網站提供免費證書
2.3.1 可以查看certbot官网建议安装方法:
https://certbot.eff.org/lets-encrypt/ubuntufocal-nginx
目前還沒 ubuntu22.04的建議,但可以依照 nginx + ubuntu20.04 的建議安装。
下一(2.3.2)小節用Script完成。
2.3.2 Certbot安裝自動更新證書
# 1. Install snapd
sudo apt update -y
sudo apt install snapd
sudo snap install core; sudo snap refresh core
# 2. remove prev. certbot & install classic
sudo apt-get remove certbot
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
# 3. 建立網站證書,安装时回答Y或A允许即可。
# (我有三個網站,注意與DNS服務器匹配)
# sudo certbot --nginx -m cyue12@me.com -d vm0.go2see.co -d vm0.go2see.me
# sudo certbot --nginx -m cyue12@me.com -d vm1.go2see.co -d vm1.go2see.me
sudo certbot --nginx -m cyue12@me.com -d vm2.go2see.co -d vm2.go2see.me
# 4. 看到 Congratulations! 就是證書安裝成功了。。。
# 5. (想要的話)可以手動更新證書
# sudo certbot certonly --nginx -m cyue12@me.com -d vm0.go2see.co -d vm0.go2see.me
# sudo certbot certonly --nginx -m cyue12@me.com -d vm1.go2see.co -d vm1.go2see.me
# sudo certbot certonly --nginx -m cyue12@me.com -d vm2.go2see.co -d vm2.go2see.me
# 6. 開啟自動更新證書
sudo certbot renew --dry-run
# 7. 檢查是否已經開啟了 snap.certbot.renew.timer 更新定時器
sudo systemctl list-timers |grep certbot
2.4 開始設定 WordPress 網頁
瀏覽器打開 vm1.go2see.co,可以開始設定了。。。
- 第一頁:資料庫名、用戶名、密碼、記得用前面資料庫設定的。。。

- 第二頁:內容不和資料庫綁定,可以自己定義。。。。(我懶,先用我的PC帳戶設定)

- 設定好就可以進入控制台,OK,搞定。。。

2.5 主題推薦(網站)
2.6 上傳文件大小限制
預設 2M,改 200M
sudo sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 200M/g' /etc/php/8.1/cli/php.ini
sudo sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 200M/g' /etc/php/8.1/fpm/php.ini
sudo systemctl restart nginx.service
sudo systemctl restart php8.1-fpm.service
3. 安裝 OpenVPN 服务
一鍵命令安裝 OpenVPN,在Osaka基地验证成功,
需要更換不被干擾的公網IP,才能在牆國有效的使用。。
3.1. Linux下载安装OpenVPN 服务端 (一键安装命令)
wget https://git.io/vpn -O openvpn-install.sh && sudo bash openvpn-install.sh
Script執行後會問幾個問題,才開始安裝服務,如:
Welcome to this OpenVPN road warrior installer!
Which IPv4 address should be used?
1) 192.168.5.229
2) 192.168.5.208
IPv4 address [1]: # 若虛擬機安裝有多個網卡,會要求選擇網卡。
This server is behind NAT. What is the public IPv4 address or hostname?
Public IPv4 address / hostname [xxx.10.10.61]: my.host.name # 可用 IP或綁定的域名。
Which protocol should OpenVPN use?
1) UDP (recommended)
2) TCP
Protocol [1]: # 預設選UDP 性能較佳。
What port should OpenVPN listen to?
Port [1194]: 31314 # 選擇一個端口,儘量不要預設的 1194,注意防火牆要先打開此端口。
Select a DNS server for the clients:
1) Current system resolvers
2) Google
3) 1.1.1.1
4) OpenDNS
5) Quad9
6) AdGuard
DNS server [1]: 2 #我選2,預設即可
Enter a name for the first client:
Name [client]: tw0-cyueMBP # 為第一個 Client 機器的設定文件取名字,會被放在 /root/ 下。
安装好以后,通过WinSCP 把ROOT根目录下生成的OpnVPN的配置文件,导出来就可以在客户端上连接使用。
The client configuration is available in: /root/tw0-cyueMBP.ovpn
New clients can be added by running this script again.
⚠️注意:记得需要把 Oracle Cloud 子网路的 ovpn端口(範例给的 31314口)打开。。。
3.2. 添加OpenVPN client 账户法:
OpenVPN 對每個客戶端都需要一個單獨的帳號。执行前面下載的安裝shell,選擇 【1】,就可添加另一台Client 機器帳戶的設定文件名:
sudo bash openvpn-install.sh
配置文件仍然放在 /root 下,放到客戶端app執行安裝。
3.3. 刪除OpenVPN client 账户法:
運行同一個 script命令,選【2】,就會看到帳戶列表,再挑選要刪除的即可。
4. 安装 Code Server,远端网页编程
4.1. 找到资源,安装!!
在网页 打开 https://github.com/coder/code-server/releases ,找到最后版次的机器、系统对应的安装包。
我是 arm 64 CPU 的 ubuntu linux(使用 deb包安装),最新版是v4.8.2需要下载的链接是:
https://github.com/coder/code-server/releases/download/v4.8.2/code-server_4.8.2_arm64.deb
可以进入服务器用 wget下载安装。。。。
4.2. 安装-设定-打开防火墙-后台启动服务:
在服务器的终端进行如下一条龙的安装与设置:(注意 Password 的 XXXXXX改成你想要的)
#### 1. 取得 arm版本的 vscode 包
echo 1. 取得 arm版本的 vscode 包
wget https://github.com/coder/code-server/releases/download/v4.8.2/code-server_4.8.2_arm64.deb
#### 2. 安装此版本的 arm64 CPU的 deb 包
echo 2. 安装此版本的 arm64 CPU的 deb 包
sudo dpkg -i https://github.com/coder/code-server/releases/download/v4.8.2/code-server_4.8.2_arm64.deb
#### 3. 创建 .config/code-server/config.yaml 设定文件,定义密码与远程连接、连接端口
echo 3. 创建 .config/code-server/config.yaml 设定文件,定义密码与远程连接、连接端口(8888):
#### 0.0.0.0:8888 表示可以从任何地址透过 8888 端口访问 code-server
echo bind-addr: 0.0.0.0:8888 > .config/code-server/config.yaml
echo auth: password >> .config/code-server/config.yaml
#### 设定密码为:XXXXXX
echo password: XXXXXX >> .config/code-server/config.yaml
echo cert: false >> .config/code-server/config.yaml
#### 检查设置:
cat .config/code-server/config.yaml
#### 4. 打开防火墙的 8888 端口。
echo 4. 打开防火墙的 8888 端口。
sudo ufw allow 8888
#### !!此外在 oracle 的子网设定的入站规则也需要打开8888端口。!!
echo !!此外在 oracle 的子网设定的入站规则也需要打开8888端口。!!
#### 5. 在后台启动不停止的 code-server
echo 5. 在后台启动不停止的 code-server
nohup code-server &
4.3. 网页透过 选择的 8888端口连接 code-server:
在浏览器连接我的网站 vm0.go2see.co:8888,即可透过密码连接
4.4. 测试效果:
。。。在牆國常断线,需要重新启动 code-server才能重连。。。
5. 安裝 XRDP服務,提供远端桌面
⚠️不要在只有1GB RAM 的 x86安裝!!系統可能崩潰
5.1 一鍵安裝
# 0. XRDP最好用较新的,更新一下系统吧。。。
sudo apt upgrade -y
# 1. 安装 X11 + xrdp
sudo apt install -y ubuntu-desktop xrdp
# 2. 解决RDP登录时反复验证问题
echo "[Allow Wifi Scan]
Identity=unix-user:*
Action=org.freedesktop.NetworkManager.wifi.scan;org.freedesktop.NetworkManager.enable-disable-wifi;org.freedesktop.NetworkManager.settings.modify.own;org.freedesktop.NetworkManager.settings.modify.system;org.freedesktop.NetworkManager.network-control
ResultAny=yes
ResultInactive=yes
ResultActive=yes" | sudo tee /etc/polkit-1/localauthority/50-local.d/47-allow-wifiscan.pkla
# 3. 解决“色彩管理设备” / “color managed device” 弹窗
echo "[Allow Colord all Users]
Identity=unix-user:*
Action=org.freedesktop.color-manager.create-device;org.freedesktop.color-manager.create-profile;org.freedesktop.color-manager.delete-device;org.freedesktop.color-manager.delete-profile;org.freedesktop.color-manager.modify-device;org.freedesktop.color-manager.modify-profile
ResultAny=no
ResultInactive=no
ResultActive=yes" | sudo tee /etc/polkit-1/localauthority/50-local.d/45-allow-colord.pkla
# 4. 解决“刷新系统软件源需要认证” / “refresh the system repositories” 弹窗
echo "[Allow Refresh Repository all Users]
Identity=unix-user:*
Action=org.freedesktop.packagekit.system-sources-refresh
ResultAny=no
ResultInactive=no
ResultActive=yes" | sudo tee /etc/polkit-1/localauthority/50-local.d/46-allow-packagekit.pkla
# 5. 注释掉 `AutomaticLoginEnable` 和 `AutomaticLogin` 变量:
sudo sed -i 's/AutomaticLoginEnable/#AutomaticLoginEnable' /etc/gdm3/custom.conf
sudo sed -i 's/AutomaticLogin/#AutomaticLogin' /etc/gdm3/custom.conf
# 重启RDP服务
sudo systemctl restart xrdp
# 查看 XRDP服务
sudo systemctl status xrdp
6. 【视需要】Wabdav-ubuntu通过nginx搭建webdav服务器
6.1 webdav Info
WebDAV (Web-based Distributed Authoring and Versioning) 一种基于 HTTP 1.1协议的通信协议。它扩展了HTTP 1.1,在GET、POST、HEAD等几个HTTP标准方法以外添加了一些新的方法,使应用程序可对[Web Server](https://baike.baidu.com/item/Web Server/9306055)直接读写,并支持写文件锁定(Locking)及解锁(Unlock),还可以支持文件的版本控制。
——来自百度百科https://baike.baidu.com/item/WebDAV
6.2 安装nginx-full
通过nginx搭建webdav服务需要安装http_dav_module模块。nginx-full版本中直接包含了http_dav_module模块。
安装命令:
sudo apt install nginx-full
sudo ufw allow 8081 # 打開防火牆,想用8081端口
sudo mkdir -p /home/webdav
sudo chown -R www-data:www-data /home/webdav
6.3 编辑webdav配置文件
6.3.1 新建webdav.conf配置文件
sudo pico /etc/nginx/conf.d/webdav.conf
6.3.2 写入配置内容
server {
# 选择服务端口
listen 8081;
listen [::]:8081;
server_name localhost;
# 认证方式
auth_basic realm_name;
# 存放认证用户名、密码文件(确认有对应权限)
auth_basic_user_file /etc/webdav/.credentials.list;
# webdav服务访问的根目录
root /home/webdav/;
# 设置使用utf-8编码,防止中文文件名乱码
charset utf-8;
# dav 允许的操作
dav_methods PUT DELETE MKCOL COPY MOVE;
# Allow current scope perform specified DAV method
dav_ext_methods PROPFIND OPTIONS;
# In this folder, newly created folder or file is to have specified permission. If none is given, default is user:rw. If all or group permission is specified, user could be skipped
# 创建文件的三级默认权限,默认user
dav_access user:rw group:rw all:r;
# 临时文件位置
client_body_temp_path /tmp/webdav;
# 最大上传文件限制, 0表示无限制
client_max_body_size 0;
# 允许自动创建文件夹(如果有需要的话)
create_full_put_path on;
}
6.3.3 测试配置文件
sudo nginx -t
6.4 创建用户登录验证信息(用户名-密码)
sudo mkdir -p /etc/webdav/
sudo echo -n 'root:' | tee -a /etc/webdav/.credentials.list
sudo openssl passwd -apr1 PASSWORD | tee -a /etc/webdav/.credentials.list
sudo echo -n 'cyue:' | tee -a /etc/webdav/.credentials.list
sudo openssl passwd -apr1 PASSWORD | tee -a /etc/webdav/.credentials.list
sudo echo -n 'johnny:' | tee -a /etc/webdav/.credentials.list
sudo openssl passwd -apr1 PASSWORD | tee -a /etc/webdav/.credentials.list
sudo echo -n 'tony:' | tee -a /etc/webdav/.credentials.list
sudo openssl passwd -apr1 PASSWORD | tee -a /etc/webdav/.credentials.list
6.5 重启nginx服务
sudo systemctl restart nginx
查看nginx状态
sudo systemctl status nginx
6.6 nginx重启成功后即可访问webdav服务
http://主机IP:8081
输入配置的用户名和密码验证成功后便可正常进行操作
6.7 扩展
可以搭配frp等内网穿透工具将本地webdav服务暴露,这样就可以将本地主机当做网盘来使用。
手机客户端可使用ES文件浏览器,使用效果良好。
玩法挺多,慢慢探究。
7. 【非必要】安装SFTP服务
Sftp 是 SSH的一部分。可以把SSH和SFTP區分,限制一些客戶只能在服務器上傳下載文件,不能SSH進服務器。
- sftp是Secure File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的网络的加密方法。
sftp 与 ftp 有着几乎一样的语法和功能。SFTP 为 SSH的其中一部分,是一种传输档案至 Blogger 伺服器的安全方式。
其实在SSH软件包中,已经包含了一个叫作SFTP(Secure File Transfer Protocol)的安全文件信息传输子系统**。 **SFTP本身没有单独的守护进程,它直接使用sshd守护进程(端口号默认是22)来完成相应的连接。
- SFTP同样用SSH加密传输认证信息和传输的数据,使用SFTP非常安全,但效率比FTP要低得多。
部分 Ubuntu默认只安装openssh-client,需要手动安装openssh-server或者sftp-server。
(甲骨文提供的 Ubuntu22.04目前已安裝 openssh-server)
sudo apt update -y
sudo apt install openssh-server -y
7.1 目标
在Ubuntu系统上开通sftp文件服务,允许某些用户上传及下载文件。
但是这些用户只能使用sftp传输文件,不能使用SSH终端访问服务器,并且sftp不能访问系统文件。
系统管理员则既能使用sftp传输文件,也能使用SSH远程管理服务器。
7.2 操作步骤
7.2.1 sftp用户、用户组的创建
- 添加sftp用户,创建 sftp 用户组
sudo adduser cyue
sudo adduser johnny
sudo adduser tony
sudo adduser shari
sudo addgroup sftp-users
# 将cyue从所有其他用户组中移除并加入到sftp-users组,并且关闭其Shell访问
#/bin/false也可以替换为/sbin/nologin,目的是不允许该用户登录到系统中
#sudo usermod -G sftp-users -s /bin/false cyue
- 创建sftp服务器的管理员身份,并且加入 ssh 用户组(不限制他的shell操作权限)
sudo adduser admin
sudo addgroup ssh-users
# -a 表示以追加形式将 admin 加入 ssh-users
sudo usermod -a -G ssh-users admin
sudo adduser cyue ssh-users
sudo adduser johnny ssh-users
sudo adduser tony ssh-users
sudo adduser shari ssh-users
7.2.2 创建文件服务器目录
- 创建服务器文件目录
# 创建监狱目录
sudo mkdir /home/sftp_root
# 普通用户能够写入的共享文件目录
sudo mkdir /home/sftp_root/shared
# 设置共享文件夹的拥有者为管理员、用户组为 sftp-users
sudo chown admin:sftp-users /home/sftp_root/shared
# 拥有者、sftp用户组的成员具有一切权限
sudo chmod 770 /home/sftp_root/shared
7.2.3 权限配置(可選)
默认允许所有用户或者用户组登录。再此添加 /etc/ssh/sshd_config,若仅允许指定用户或者用户组访问,按照以下格式配置:
# 以空格间隔
#AllowUsers user1 user2
#AllowGroups group1 group2
sudo pico /etc/ssh/sshd_config
在sshd_config文件的最后,添加以下内容:
AllowGroups ssh-users sftp-users
Match Group sftp-users
ChrootDirectory /home/sftp_root
AllowTcpForwarding no
X11Forwarding no
ForceCommand internal-sftp
这样配置的目的是:
- 只允许ssh-uers及sftp-users通过SSH访问系统,其中ssh-uers用户组可以使用ssh,并且不受其他限制。
而SFTP用户组仅能使用SFTP进行访问,且不能使用shell
-
针对sftp-users用户,额外增加一些设置:将“/home/sftp_root”设置为该组用户的系统根目录(因此它们将不能访问该目录之外的其他系统文件;
-
禁止TCP Forwarding和X11 Forwarding
另外需要注意的是:ChrootDirectory的权限问题,你设定的目录必须是root用户所有,否则就会出现问题。所以请确保sftp用户根目录的所有人是root, 权限是 750 或者 755。
需要注意的一点的是,现在所有需要远程连接的用户都必须加入 ssh-users 才行。
如将用户 Tony 加入 ,这样ta就可以使用ssh连接本机。
sudo usermod -a -G ssh-users tony
- 限制ssh连接的访问IP
編輯 /etc/ssh/sshd_config :
#sudo pico /etc/ssh/sshd_config
# Authentication:
#AllowUsers root@10.10.10.* #限制root用户只能通过10.10.10.*网段登录访问
#AllowUsers charles@10.10.10.* #限制charles用户只能通过10.10.10.*网段登录访问
AllowUsers cyue
AllowUsers tony
AllowUsers johnny
AllowUsers shari
7.2.4 重启SSH
# 亦可
# /etc/init.d/ssh restart
service ssh restart
参考博客
8 【非必要】Oracle云服务器开启IPv6
登录Oracle后台,前往 网络 -> 虚拟云网络 -> 选择查看网络详情
8.1 修改CIDR块,添加 IPv6块
在网络详情中,点击左侧CIDR块 -> 点击 【添加 IPv6 CIDR块】
8.2 修改子网,设置IPv6
打开子网,编辑子网信息,勾选“启用IPV6 CIDR块”,在输入框随便输入一个十六位值,例如:ee
保存后,IPv6 CIDR块添加成功
8.3 修改路由表,添加路由规则
路由表 -> 路由表详情 -> 添加路由规则:
目标类型:Internet网关
目的地 CIDR 块:::/0 (注意2个冒号)

8.4 修改安全规则
与IPv4相同,修改安全列表 -> 查看详情 -> 添加出站规则 和 添加 入站规则
8.4.1 出站规则:
- 目的地CIDR
::/0 - IP协议:所有协议
8.4.2 入站规则:
- 源 CIDR:
::/0 - ipv4有的规则都添加。
目的地类型:CIDR目的地 CIDR:::/0 (注意2个冒号)
IP协议:所有协议
获取IPv6地址
返回服务器实例详情 -> 附加的 VNIC -> 点击VNIC详情,左侧可见多了一个IPv6地址 的选项!
点击 【分配 IPv6 地址】,即可获得IPv6地址。
8.5 Sshd 允许 ipv6
# 编辑 /etc/ssh/sshd_config ,取消 #AddressFamily 前 ‘#’ 号:
sudo sed -i 's/#AddressFamily/AddressFamily/g' /etc/ssh/sshd_config
# 重启 sshd:
sudo systemctl restart sshd
#netstat -tupln
9 開發環境安裝
9.1 一般開發環境
# compilers
sudo apt install clang gcc cmake python3 python3-tk python3-pip -y
# vscode for many languages
sudo apt install code -y
# Thonny for python
sudo apt install thonny -y
9.2 安装rust
# 1.安装curl
sudo apt install curl -y
# 2.安装rust, 安裝選項選 1. 默認安裝
curl https://sh.rustup.rs -sSf | sh
# 3. 運行rust前的環境變量設定(此指令已經被放在 .bashrc 了,以後登入不必再執行)
source $HOME/.cargo/env
#4.查看版本
rustc -V
10 SNAP Chromium
sudo apt install snap
sudo snap install chromium
A 附录:VPS常用性能测试脚本
wget -qO- bench.sh | bash
看來廣州到大阪線路很差,幾乎不能用。廣州到台北,機器雖老,但傳輸還勉強可用。。。
- 大阪:

- 台灣:

留言