在 GCP 建立有 Desktop 環境的 VM

記錄一下在 GCP 上開一台有桌面環境的 VM 的過程 開一台 VM 到 GCP 的 compute engine,建立一台 VM,以下是這次測試選用的設定 e2-medium (2 vCPU, 4 GB) Spot 等待 VM 建立完成 從 VM 列表上點 SSH 連線,會開啟一個 SSH 的 web terminal 登入 VM 安裝 Chrome Remote Desktop 在 SSH 視窗,輸入以下指令,安裝 Chrome Remote Desktop 1 2 3 4 5 6 7 curl https://dl.google.com/linux/linux_signing_key.pub \ | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/chrome-remote-desktop.gpg echo "deb [arch=amd64] https://dl.google.com/linux/chrome-remote-desktop/deb stable main" \ | sudo tee /etc/apt/sources.list.d/chrome-remote-desktop.list sudo apt-get update sudo DEBIAN_FRONTEND=noninteractive \ apt-get install --assume-yes chrome-remote-desktop 安裝 X Window 這次測試選擇安裝 Xfce (輕量級的桌面系統) 1 2 sudo DEBIAN_FRONTEND=noninteractive \ apt install --assume-yes xfce4 desktop-base dbus-x11 xscreensaver 設定 Chrome Remote Desktop 預設使用 Xfce 1 sudo bash -c 'echo "exec /etc/X11/Xsession /usr/bin/xfce4-session" > /etc/chrome-remote-desktop-session' 設定 Chrome Remote Desktop 服務 打開 https://remotedesktop.google.com/headless ,並確定你有登入任一個你要使用的 google 帳號 點開會出現「設定其他電腦」畫面 點擊「開始」,出現「透過下列網址在遠端電腦下載並安裝 Chrome 遠端桌面」畫面 點擊「繼續」,出現「授權 Chrome 遠端桌面設定新電腦。」畫面 點擊「授權」,出現設定指令 複製 Linux 用的指令,貼到 SSH 的視窗執行 1 DISPLAY= /opt/google/chrome-remote-desktop/start-host --code="4/0ATx3LY71DU2nq2CmTa0uorP4VgjKPKqv9oCvMybpDLyaBXAQqGdqVals3lsLjlmfidEpIg" --redirect-url="https://remotedesktop.google.com/_/oauthredirect" --name=$(hostname) 依提示「Enter a PIN of at least six digits」輸入 PIN 碼 檢查 Chrome Remote Desktop 服務是否運作 1 sudo systemctl status chrome-remote-desktop@$USER 有順利運作的話,可以看到 running 的狀態 1 2 3 ● chrome-remote-desktop@user.service - Chrome Remote Desktop instance for user Loaded: loaded (/lib/systemd/system/chrome-remote-desktop@.service; enabled; preset: enabled) Active: active (running) since Fri 2024-06-00 00:00:00 UTC; 1min 10s ago 登入 Desktop 打開 https://remotedesktop.google.com/ 在「遠端存取」的畫面,可以看到 VM 出現了 點擊 VM,輸入 PIN 碼,點擊前進按扭 成功登入 Linux 桌面了 可以開始在桌面環境工作了 Reference https://cloud.google.com/architecture/chrome-desktop-remote-on-compute-engine

29 June 2024 · 1 min · nyo

將 AppImage 加入 Gnome 的 Application 清單

AppImage 是目前 Linux 上很常見的應用程式格式,不需要安裝,可以相容於各大 Linux 發行版。 下載 AppImage 檔後,要執行它的方法很簡單 (以下用 Hepta-0.369.1.AppImage) 先讓檔案可以執行 1 $ chmod +x Hepta-0.369.1.AppImage 接著就可以啟動它 ...

28 August 2023 · 1 min · nyo

在 Linux 監控 Wifi 訊號強度

平常都習慣使用圖形介面設定 wifi,臨時要用 command line 完全不知道要從哪邊下手。以下是我找到的方法。 查看 Wifi 訊號強度 執行以下指令查看 /proc/net/wireless 檔案就可以知道目前 wifi 的狀況 ...

08 July 2023 · 1 min · nyo

將 Debian 11(Bullseye) 升級到 12(Bookworm)

Debian 在 2023-06-10 釋出 12 代號 bookworm。 我手邊的 server 安裝的是 Debian 11,剛好就找個時間升級一下,順便寫一下筆記 升級前準備 先將系統升級到 11 (bullseye) 的最新版,並移除不需要的套件 1 2 $ sudo apt update && sudo apt upgrade -y $ sudo apt --purge autoremove 請記得評估要做哪些備份 ...

01 July 2023 · 1 min · nyo

拿筆電安裝 Debian server

把以前的舊筆電翻了出來,發現還可以正常運作,所以打算重灌來拿當做測試用 Server,這篇簡單的記錄一下這次重灌做了什麼事 筆電:ThinkPad t420s ...

25 March 2022 · 1 min · nyo

在 Linux 終端機上查看電池狀態

在 /sys/class/power_supply/BAT0/ 資料夾裡,有一系列的檔案存放著電池的資訊 1 2 3 4 5 6 7 8 9 10 $ ls /sys/class/power_supply/BAT0/ alarm charge_stop_threshold serial_number capacity current_now status capacity_level cycle_count subsystem charge_control_end_threshold device technology charge_control_start_threshold hwmon1 type charge_full manufacturer uevent charge_full_design model_name voltage_min_design charge_now power voltage_now charge_start_threshold present 只要是檔案類型的,都可以直接 cat 查看資料 ...

22 March 2022 · 1 min · nyo

tcp_tw_recycle and tcp_tw_reuse

如果你遇過 linux server 上有著大量 TIME_WAIT 你一定在 google 上看過把 net.ipv4.tcp_tw_recycle 跟 net.ipv4.tcp_tw_reuse 設定為 1 的優化方法,想要介此來減少 TIME_WAIT 或是增加 server 可以處理的連線數量 但是這些做法可能是無效的,甚至是「有風險在」的 ...

08 August 2021 · 2 min · nyo

把 PATH 變數列成清單

在 Linux 的 Shell 環境中,要查看 PATH 變數時,通常都是 echo $PATH 當 PATH variable 中包含太多資料夾時,跟本看不懂 改以清單的方式顯示 PATH 內容 1 2 3 4 5 6 7 $ echo $PATH | tr ":" "\n" /usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin 1 echo "${PATH//:/$'\n'}" 1 echo -e "${PATH//:/\n}" 直接用 echo 的方式好像會因 echo 的版本而有差異 ...

15 February 2020 · 1 min · nyo

在 Mac 上使用 GNU Commands

最近突然拿到一台 MacBook Pro,摸了幾天一直很不習慣。 macOS 的核心是基於 Unix 所開發的,terminal 中預設搭載的 command 跟 Linux 差非常的大 這讓習慣以 Linux 開發程式的人很不適應。 ...

26 September 2019 · 1 min · nyo

查詢 Linux 上的一些 Unique ID

每台機器都會有一些自己唯一的 id 在開發程式中,可能會有需要用來分辨機器 machine-id 1 2 3 $ cat /etc/machine-id $ cat /var/lib/dbus/machine-id product_uuid 1 $ sudo cat /sys/class/dmi/id/product_uuid MAC address 1 $ ip link Hard Disk UUID 1 2 3 $ blkid $ ls -l /dev/disk/by-uuid random UUID 1 2 3 $ cat /proc/sys/kernel/random/uuid $ uuidgen Reference https://www.thegeekdiary.com/centos-rhel-7-how-to-change-the-machine-id/ http://0pointer.de/blog/projects/ids.html https://liquidat.wordpress.com/2013/03/13/uuids-and-linux-everything-you-ever-need-to-know/ ...

10 December 2018 · 1 min · nyo

Set Sudo on Debian

安裝好基本款的 debian 是沒有 sudo 指令可以使用的,需要自行安裝設定 安裝 sudo 切換到 root 安裝 1 2 # su - # apt install sudo 設定 sudoer 1 # usermod -aG sudo nyo 設定好之後,登入並用 sudo 隨意打個指令試試 ...

10 February 2018 · 1 min · nyo

在 Linux 上處理圖檔

想要在 Linux 上處理圖檔,我一開始想到的是 GIMP,但是這個軟體巨大到不太想專程去安裝,於是開始尋找其他輕量一點的工具 可以直接在 command line 上處理圖檔的工具: convert ...

15 April 2017 · 1 min · nyo

Linux 指令 date

今天要來和 linux 約會(誤 date 是用來看時間或是設定時間用的指令 不加任何的參數可以直接看目前的時間 1 2 $ date Sat 4 Mar 23:52:51 CST 2017 參數 -d STRING 輸出字串所描述的日期 1 2 $ date -d 'yesterday' Sat 4 Mar 00:29:53 CST 2017 -I[FMT] 用 ISO 8601 的格式輸出 FMT 預設為 date 輸出日期而已,FMT 為 s 時會輸出到秒 ...

04 March 2017 · 1 min · nyo

sudo vs gksudo

網路上查 linux 相關資訊的時候,常會看到要使用 sudo 或 gksudo 的指令 sudo sudo 以 superuser 執行指令 gksudo gksudo GTK+ 的 sudo,或者是說是會彈跳一個視窗訊問密碼的 sudo Reference http://superuser.com/questions/202676/sudo-vs-gksudo-difference http://askubuntu.com/questions/163884/difference-between-gksudo-and-sudo

10 July 2014 · 1 min · nyo