VirtualBox (v5.0) 建立虛擬機筆記

關於 VirtualBox 的安裝流程可以參考這篇:
https://www.peterdavehello.org/2016/01/install-virtualbox-5-0-on-windows-10-notes/

所在的 Host 環境是 Windows 10,使用的 VirtualBox 版本是 5.0.12、中文介面,但和 4.3 版流程以及操作上並沒有太大差異,這邊是純流程紀錄,給新手做參考用。

打開 VirtualBox 程式主畫面,點選左邊”新增”按鈕。
virtualbox_5.0_create_vm

接下來要設定虛擬機的名稱以及對應系統版本、架構,名稱如果輸入的是某套作業系統的名稱,VirtualBox可能會很聰明貼新的幫你選擇對應作業系統。注意這邊底下有一個專家模式,可以一次把所有基本設定完成,這邊以預設的引導模式為範例。

virtualbox_5.0_create_vm_name_os

我輸入 FreeBSD 10.2 ,下面已經自動幫我選好了,如果你取的名稱沒辦法被關聯到對應的作業系統,請自行選擇!VirtualBox 支援 Windows 、 Solaris 、BSD、OS/2、MAC OS X等系統。

virtualbox_5.0_create_vm_name_os_2

下一步要選擇記憶體大小,也就是你要分配多少記憶體資源給這台虛擬主機使用,可以直接輸入數字、也可以拖曳箭頭左右來選擇,底下還有貼心的顏色提醒,綠色表是安全範圍、橘色表示記憶體有點吃緊,紅色就是危險(造成外部實體機器記憶體嚴重不足、可能會當機)了!分配越多記憶體給虛擬機,則實際外部運作的系統記憶體就會剩得越少,VirtualBox會按照你選的系統給一個基本建議值,通常我會按照系統的實際硬體以及同時要啟動的虛擬機數量做調整,這邊32位元的FreeBSD預設只給 128MB
virtualbox_5.0_create_vm_set_mem_size

閱讀全文

在 Windows 10 上安裝 VirtualBox v5.0 筆記

VirtualBox 在 Windows 10 的安裝流程紀錄,沒什麼特別難或特別要注意的地方,就只是一個流程紀錄。還不認識 VirtualBox 的畫可以 Google 搜尋一下虛擬機、VirtualBox 的相關資訊,VirtualBox 是一套免費、開放原始碼的自由軟體虛擬化軟體,可以幫我們模擬一套電腦硬體,讓使用者在上面做各式的練習、開發(例如安裝FreeBSD, Linux),或是硬體資源管理。

FreeBSD 、 Linux 建議可以透過系統的套件庫來安裝,不過結至目前為止,FreeBSD 的 ports/pkg 都還停留在 4.3.34 版 , Ubuntu 則是要 Wily (15.10)、 xenial (16.04) 才有 v5.0 的 VirtualBox、其他版本則需要從 VirtualBox 官網下載安裝。

VirtualBox 官網: https://www.virtualbox.org/

點選 Download VirtualBox 5.0

virtualbox.org_v5.0

VirtualBox 5.0.12 for Windows hosts x86/amd64

virtualbox.org_download virtualbox.org_download_finished下載後執行安裝程式:

virtualbox.5.0_install

設定要安裝的元件有哪些,這部分不用特別調整,下一步即可:

virtualbox.5.0_install_2

閱讀全文

Ubuntu based GNU/Linux 上的防火牆 (ufw) 基本設定

早期在 Linux 上設定防火牆多事透過 iptables 這隻程式在下規則,不過說真的,對於新手或是要求很基本的使用者來說,iptables 有些功能其實用不到,例如 nat, forward等等的, 而且語法有點複雜,我自己也是常常要邊翻 man page 、筆記邊操作,後來有了令一套全名叫作 Uncomplicated Firewall 的 ufw,意思就是簡單的、不複雜的防火牆,相對於 iptables 來說,ufw 是真的簡單很多了!ufw其實只是一個 iptables 的前端設定程式,最後的規則都還是會走 iptables ,而且比較複雜的功能還是要直接透過 iptables 才有辦法做到!如果想看 ufw 設定完的 iptables 結果只要用這個命令就可以看到了:iptables -L -n

今天來講一下 ufw 的 “基本” 使用方式,Ubuntu 14.04 有內建 ufw,Debian要自行安裝,透過 apt-get 就可以了:

$ sudo apt-get install ufw

接下來示範的操作都在 Ubuntu 14.04 上面進行,不同的系統可能會略有出入,但應該都大同小異。

ufw 預設是停用的,要啟用 ufw 的話命令如下,關鍵字分別是 enable 和 disable,也就是啟用和停用,因為需要 root 權限,所以命令前面會加上 sudo:

$ sudo ufw enable
 Firewall is active and enabled on system startup

同樣的,停用 ufw 會這樣做:

$ sudo ufw disable
 Firewall stopped and disabled on system startup

要確認 ufw 已經啟用,可以看一下 ufw 的 status:

已啟用的結果:

$ sudo ufw status
Status: active

未啟用的結果:

$ sudo ufw status
Status: inactive

那防火牆的允許跟禁止規則怎麼下呢?
關鍵字是 allow 跟 deny,allow 表示允許,deny 表示拒絕

先講怎麼設定防火牆預設行為,也就是對於沒有手動設定規則的連線該怎麼處理

比較安全的設定方式,建議把預設連入設定為 deny ,也就是沒有手動設定允許通過的連線就會被擋下來:

$ sudo ufw default deny

明確一點的指令是這樣:

$ sudo ufw default deny incoming
閱讀全文

自行架設的 BitBucket server 在 git push 遇到 RPC failed 的問題

先說 … 我個人覺得 BitBucket 不是很好用,尤其是自己架設 … 很多眉角、小問題要處理

這次的環境是 BitBucket + nginx (reverse proxy) + git https access 會遇到的問題 (基本上是版本無關)

症狀長這樣:

$ git push origin master
Counting objects: 4372, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (138/138), done.
error: RPC failed; result=22, HTTP code = 413
Writing objects: 100% (147/147), 1.10 MiB | 0 bytes/s, done.
Total 147 (delta 75), reused 0 (delta 0)
fatal: The remote end hung up unexpectedly

從 http 413 的解釋 Request Entity Too Large 可以看出來是 request 太大了,我猜是 git 的 objects pack 吧

解法是調整 nginx 的 client_max_body_size,預設值是 1M,我們可以把他改為更大的值,或是改為 0 來停用大小檢查

例如:

server {
#…
client_max_body_size 1000m;
#…
}

改完之後重新啟動 nginx 就沒問題了!

我範例是把 size 調到 1000m ,因為 cdnjs 的 objects pack 已經長到 900MB 了,如果你沒有一個特別肥大臃腫的 git reposiroty,我想應該1000m已經夠用了,剛剛把linux kernel 拉下來看,objects pack 也大概是 1GB左右而已

至於要用 nginx 來做 reverse proxy 的原因,主要是 Bitbucket 安裝完後 Tomcat 預設沒辦法 bind 在 1024 以下的 port ,加上他的 https 很難設定,為了拿到 A+ 確保https 安全強度,這段還是讓 nginx 來做比較簡單一點,也許之後有空會想辦法把 static file 讓 proxy 來做 cache 提升一些速度。