標籤: vps

  • Linode 伺服器調整規格與調整硬碟空間配置

    常常會有需要調整 VPS 規格的狀況,一般通常會有幾個狀況需要調整規格:

    1. 應用程式需要更多,或是更少的 CPU / 內存(Memory)
    2. 硬碟空間不足,但是不想要另掛儲存空間
    3. 發現目前使用量太少了,目前規格過高需要調低

    我們以調整 Linode 的 VPS 服務操作介紹,首先需要確認以下幾個項目:

    1. 調整的是 Linodes ,也就是 VPS 主機服務的規格。
    2. 調整無法更換地區,如果需要更換地區請使用 clone 服務,IP 也會更換,如果 VPS 內應用程式有依賴 IP 的話,或是 DNS 服務需要特別注意是否能夠更改。
    3. 更換前需要確認該 VPS 配置的硬碟空間是否符合目標規格所使用的硬碟空間。
    4. VPS 更換規格大約會停機 5 – 30 分鐘,如果是已經上線產品的話要注意是否是離峰時段。

    以下介紹至 2022-10-07 當前的版本下如何操作更換規格:

    首先登入以後會看到你的 VPS 服務器列表,選一個。

    可以從列表上選擇,或是點進去 VPS 後選擇 Resize 選項。

    選擇 Resize 後,會彈出一個視窗,可以選擇對應的規格。

    選擇規格後,注意 Auto Resize Disk 選項,如果勾選了表示他將會隨著規格上的硬碟自動配置。這樣之後要降規格時會需要特別調整。

    最後在 Confirm 上輸入要求的內容(作為確保輸入無誤用途)後,Resize Linode 按鈕就會顯示可點擊狀態,點擊該按鈕送出即可。

    在 Linode VPS 上特別要注意的是 Auto Resize Disk 這個選項,如果沒有硬碟空間的需求,或是暫時調高規格的話,是可以不需要勾選的。

    果需要調整硬碟空間,要注意以下幾點:

    1. 購買的硬碟空間不等於這台 VPS 分配的硬碟空間
    2. 配置硬碟空間時需要停止主機才能啟用

    首先,要先確認主機是否關閉,如果沒有關閉的話要先 Power Off。

    接者往下滑動(需要等一下或是再刷新一下頁面),選擇 Storage 選項,接著在主要硬碟(這個例子是 “CentOS 7 Disk” 這個項目,我們可以看到他的 Size 是 258088 MB。如果有另外開,則需確保總共的容量)中。選擇 Resize 這個連結。

    點擊後可以看到 Size 這個選項可以輸入以 MB 為單位的硬碟配置空間,底下有一個 Maximun Size 顯示當前可以配置的總空間數量,輸入數字無法超過這個最大上限。輸入完後,點擊 Reszie 按鈕送出,再重新啟動 VPS 主機即可生效。

    提醒一下:請注意目前硬碟實際佔用空間,輸入最小數量請勿低於實際佔用空間。
    查看實際佔用空間可以參考使用指令,參考指令文件

    df -h

  • 製作 Ubuntu 遠端桌面伺服器

    有時我們會需要安裝一個雲端的伺服器是有 GUI 介面可以操作的,舉例像是用模擬器爬爬蟲,或是需要遠端協作需求的人,會需要在雲端伺服器上安裝一個桌面伺服器。

    先提一下會有缺點:

    1. 通常雲端 VPS 廠商不會有顯卡,所以遠端桌面勢必顏色和顯示上不會太好。
    2. 雲端廠商的規格和價格成正比,勢必無法和自己使用電腦上比較。
    3. 即便使用 GUI 介面,他畢竟是一台伺服器,你能連上表示其他人也能連,常常很容易忽略了伺服器需要設定的安全機制。

    這邊使用 Linode Ubuntu 22.04 安裝,安裝目標:

    1. Gnome desktop 環境
    2. XRDP 遠端桌面連線

    捨棄 Linode 文件中描述的 VNC 連線,是因為怎麼裝都連不起來…曾經懷疑是不是 Gnome 安裝錯了,後來發現根本是 VNC 設定有問題,果斷使用 XRDP 來處理。

    步驟:

    1. 首先參照 Linode 文件 確認購買一個伺服器,並且設定好伺服器時區\hostname\更新等等。
    2. 如果不使用 tasksel 安裝,則使用以下指令:
      sudo apt install ubuntu-desktop gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal
    3. 如果使用 tasksel 安裝,請參考這裡 
      sudo apt install tasksel
      sudo tasksel install ubuntu-desktop
    4. 安裝 xrdp 功能,文件中使用的 OS 是 ubuntu 18.04 不過用 22.04 也行的:
      sudo apt-get install xrdp -y
    5. 如果使用 ufw 套件(可用 ufw status 或是 iptabes -h 指令檢查):
      sudo ufw allow 3389/tcp
    6. 如果使用 iptables 套件:
          1. 編輯設定檔案:
            nano /etc/v4
          2. 輸入內容並儲存(注意要開啟 3389 port):
            *filter
            
            
            # Allow all loopback (lo0) traffic and reject traffic
            # to localhost that does not originate from lo0.
            -A INPUT -i lo -j ACCEPT
            -A INPUT ! -i lo -s 127.0.0.0/8 -j REJECT
            
            
            # Allow ping.
            -A INPUT -p icmp -m state --state NEW --icmp-type 8 -j ACCEPT
            
            
            # Allow SSH connections.
            -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT
            
            
            # Allow HTTP and HTTPS connections from anywhere
            # (the normal ports for web servers).
            #-A INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
            #-A INPUT -p tcp --dport 443 -m state --state NEW -j ACCEPT
            -A INPUT -p tcp --dport 3389 -m state --state NEW -j ACCEPT
            
            # Allow inbound traffic from established connections.
            # This includes ICMP error returns.
            -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
            
            
            # Log what was incoming but denied (optional but useful).
            -A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables_INPUT_denied: " --log-level 7
            
            
            # Reject all other inbound.
            -A INPUT -j REJECT
            
            
            # Log any traffic that was sent to you
            # for forwarding (optional but useful).
            -A FORWARD -m limit --limit 5/min -j LOG --log-prefix "iptables_FORWARD_denied: " --log-level 7
            
            
            # Reject all traffic forwarding.
            -A FORWARD -j REJECT
            
            
            COMMIT
          3. 編輯設定檔案:
            nano /etc/v6
          4. 輸入內容並儲存:
            *filter
            
            
            # Allow all loopback (lo0) traffic and reject traffic
            # to localhost that does not originate from lo0.
            -A INPUT -i lo -j ACCEPT
            -A INPUT ! -i lo -s ::1/128 -j REJECT
            
            
            # Allow ICMP
            -A INPUT -p icmpv6 -j ACCEPT
            
            
            # Allow HTTP and HTTPS connections from anywhere
            # (the normal ports for web servers).
            #-A INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
            #-A INPUT -p tcp --dport 443 -m state --state NEW -j ACCEPT
            
            
            # Allow inbound traffic from established connections.
            -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
            
            
            # Log what was incoming but denied (optional but useful).
            -A INPUT -m limit --limit 5/min -j LOG --log-prefix "ip6tables_INPUT_denied: " --log-level 7
            
            
            # Reject all other inbound.
            -A INPUT -j REJECT
            
            
            # Log any traffic that was sent to you
            # for forwarding (optional but useful).
            -A FORWARD -m limit --limit 5/min -j LOG --log-prefix "ip6tables_FORWARD_denied: " --log-level 7
            
            
            # Reject all traffic forwarding.
            -A FORWARD -j REJECT
            
            
            COMMIT
        1. 執行指令:
          iptables-restore < /etc/v4;/sbin/iptables-save;ip6tables-restore < /etc/v6;/sbin/ip6tables-save;
    7. 設定 polkit 添加授權規則,編輯檔案:
      sudo nano /etc/polkit-1/localauthority.conf.d/02-allow-colord.conf
    8. 輸入以下內容後儲存,這主要功能是色彩管理避免需要多次輸入密碼:
      polkit.addRule(function(action, subject) { if ((action.id == "org.freedesktop.color-manager.create-device" || action.id == "org.freedesktop.color-manager.create-profile" || action.id == "org.freedesktop.color-manager.delete-device" || action.id == "org.freedesktop.color-manager.delete-profile" || action.id == "org.freedesktop.color-manager.modify-device" || action.id == "org.freedesktop.color-manager.modify-profile") && subject.isInGroup("{group}")) { return polkit.Result.YES; } });
    9. 重啟 XRDP:
      sudo /etc/init.d/xrdp restart

    連線時 windows OS 用戶使用內建的遠端桌面連線工具即可, MacOS 用戶推薦使用 Microsoft Remote Desktop 這套軟體。

    其他額外你可能需要的東西

    1. 安裝 Chrome: https://linuxize.com/post/how-to-install-google-chrome-web-browser-on-ubuntu-20-04/
    2. 安裝 Telegram:https://linuxhint.com/install-telegram-desktop-messenger-linux/

     

    參考文件:

    1. https://www.linode.com/docs/guides/set-up-and-secure/
    2. https://www.linode.com/docs/guides/install-vnc-on-ubuntu-20-04/
    3. https://operavps.com/linux-vps-with-gui-and-rdp/
    4. https://documentation.suse.com/zh-cn/sles/15-SP2/html/SLES-all/cha-security-policykit.html
  • VPS 廠商推薦

    虛擬專用伺服器(英語:Virtual private server,縮寫為VPS),是將一台伺服器分割成多個虛擬專用伺服器的服務。實現VPS的技術分為容器技術和虛擬機器技術。在容器或虛擬機器中,每個VPS都可分配獨立公網IP位址、獨立作業系統、實現不同VPS間磁碟空間、記憶體、CPU資源、行程和系統組態的隔離,為使用者和應用程式類比出「獨占」使用計算資源的體驗。VPS可以像獨立伺服器一樣,重新安裝作業系統,安裝程式,單獨重新啟動伺服器。VPS為使用者提供了管理組態的自由,可用於企業虛擬化,也可以用於IDC資源租用。

    維基百科

    老實說 Web Hosting 和 VPS 是有差異的,可以參考這裡,不過自己是純使用者,主要還是好用比較重要。這邊依照文中的參考,整理一下覺得好用的 VPS 廠商以及心得和注意事項。

    個人認為,好用的 VPS 商有幾個特色:

    • 安全穩定
    • 操作簡單
    • 價格合理
    • 付款便利
    • 客服回應速度快

    除了這些以外,加分的優點也有:

    • 功能多方便
    • 提供 API 串接

    大概是這些。以下介紹幾個有用過覺得推推的廠商。

    AWS

    這家的特色就是功能超級多,除了 SE2 的虛擬主機以外,也鼓勵把各種服務切割開來不是放在一台主機當中,像是 S3 提供儲存服務、RDS 作為數據庫、Route 53 作為域名系統服務等等,堪稱以一擋百,價格也是以一擋百,如果有金可課的話,推薦這家是很不錯的。很多企業的服務到一定程度的商業規模以後,也會開始考慮是否使用 AWS 作為服務的載體。

    Amazon Web Services (AWS) – Cloud Computing Services
    Amazon Web Services offers reliable, scalable, and inexpensive cloud computing services. Free to join, pay only for what you use.

    阿里雲

    ”上雲就上阿里雲“,可以看作中文版的 AWS 服務,功能和價格也很像的。另外也有專門提供了域名在中國的網域備案服務,這是只有在伺服器再設在中國境內時,使用網域域名才需要的服務。要注意的是:阿里雲的域名備案和其他域名備案的系統不太相同,如果有需要在其他服務商備案,如果把網站或服務轉到阿里雲上,備案會有些問題,記得需要先確認在阿里雲上備案是否可用。另外類似的服務也有像是騰訊雲或是華為雲之類的,可以參考看看。

    Alibaba Cloud: Reliable & Secure Cloud Services
    Empower your global business with a integrated suite of reliable & secure cloud computing services.

    Linode

    這算是目前用的比較長久的平台,從以前只提供一組虛擬主機開始,到後來提供域名管理、儲存服務,到現在可以自訂 script 提供一鍵安裝服務(雖然可用的服務還沒很多),是越來越多功能可以用。隨然不比上面所敘述的 VPS 那麼多功能,但是也是相當方便的。

    Linode | The Independent Open Cloud for Developers
    Our mission is to accelerate innovation by making cloud computing simple, affordable, and accessible to all.

    Vultr

    這家和 Linode 有點像,差異在於他可以在網頁管理介面中設定虛擬主機的開放 port(安全組),也提供除了信用卡以外的支付管道(不過有些已經禁用了)。

    High Performance and Cheap Cloud Servers Deployment – Vultr.com
    View details and pricing information for the most popular Vultr plans.

    Google 雲端平台

    這個服務非常複雜,Google 本身已經有相當多的服務,後來有提供 Compute Engine 的整合服務,這邊提供他的說明鏈結。個人使用的心得是貴貴的,但是速度和穩定度都算不錯,不過操作的介面速度有一些慢。

    Compute Engine: Virtual Machines (VMs)  |  Google Cloud
    Compute Engine delivers configurable virtual machines running in Google’s data centers with access to high-performance

    Azure

    這算是有名的服務了,接觸過很多台灣的網站服務商會使用微軟的這個服務。個人使用的經驗是提供的功能堪比 AWS,但是不知道是不是每次操作時網路都不好,Azure 的網頁操作介面有夠慢。

    Cloud Computing Services | Microsoft Azure
    Invent with purpose, realize cost savings, and make your organization more efficient with Microsoft Azure’s open and flexible cloud computing platform.

    以上是幾個還滿好用的 VPS 廠商,還有很多很多網路上找有一堆,台灣的廠商就先不介紹了,如果看得懂文章的話通常直接搜尋也會找得到。這邊放幾個至今找到還算中肯的評價網頁:

    學習VPS的重要性與各大Linux VPS 比較(Linode, DigitalOcean, Vultr, AWS Lightsail)
    學會了基本的Linux基本管理,就應該要在網路上租用一個主機好好的玩它一下

    要注意排名或推薦的文章中有一部分是所謂的 Web Hosting ,如果有需要使用到 Web Hosting ,個人經驗是為了要快速架站、使用量小、功能單一的網站,或是架設了以後可以不用管系統效能調校的服務,像是用 wordpress 架設的企業形象網站就相當適合Web Hosting,但如果要用 wordpress 搭配 woocommerce 做電商,建議還是確認一下Web Hosting 的服務商的資源限制以及價格啦!