:::
顯示具有 網站服務 標籤的文章。 顯示所有文章

Proxmox修復OpenVZ虛擬機器使用Ubuntu 12.04/10.04無法在console顯示的問題

Proxmox修復OpenVZ虛擬機器使用Ubuntu 12.04/10.04無法在console顯示的問題

image

Proxmox VE是虛擬機器運作環境的一種平台,其特色是支援了容器虛擬化技術OpenVZ。OpenVZ可以用較少(比起VMware之類的全虛擬化)的檔案建立一個高效能的獨立虛擬機器。然而OpenVZ並非是一種全虛擬化的技術,在運作各個系統時難免會遇上一些問題,需要手動修正。

這篇是講以OpenVZ建置Ubuntu 12.04/10.04虛擬機器時,修復console (控制台)無法順利使用的問題。問題的解法是來自於Proxmox的說明網頁,基本上照著它的作法並沒有錯,我只是增加一些額外的說明而已。


問題敘述:console卡死在apache2

20121221-230506

這次我在Proxmox VE 2.2版中安裝ubuntu-12.04-standard_12.04-1_i386.tar.gz樣板建立起Ubuntu虛擬機器。建置過程順利,但是卻無法順利進入console(控制台)。如上圖所示,畫面卡在以下訊息:

* Starting web server apache2                   [ OK ]

看監控表,虛擬機器是有正常運作,可是實際上卻不能使用,怎麼會這樣呢?我找了好久才發現原來這是Ubuntu的桌面無法配合console顯示的問題。

解決方法:調整Ubuntu的tty1.conf

首先,先登入Proxmox VE伺服器,我們從伺服器來進入Ubuntu虛擬機器修改。

查詢Ubuntu虛擬機器編號

你必須先知道Ubuntu虛擬機器的編號,你可以輸入vzlist指令來查詢:

proxmox-ve:~# vzlist
     CTID      NPROC STATUS    IP_ADDR         HOSTNAME
      108         23 running   192.168.9.20    ubuntu-1204.proxmox.com
      109         18 running   192.168.9.21    centos63-64.proxmox.com
      111         15 running   192.168.9.23    centos5-64.proxmox.com
      114         14 running   192.168.9.30    deb6-32.proxmox.com
      115         15 running   192.168.9.31    deb7-32.proxmox.com
      122         14 running   192.168.9.36    deb5.proxmox.com

從上面的例子中你可以看到ubuntu1204.proxmox.com的編號是108

進入Ubuntu並修改tty1.conf

接著輸入vzctl enter 108來進入Ubuntu虛擬機器:

proxmox-ve:~# vzctl enter 108

順利的話,你就可以看到以下訊息:

root@ubuntu-1204:

這表示你進到Ubuntu虛擬機器了,接著來修改tty1.conf吧。tty1.conf的檔案路徑位於「/etc/init/tty1.conf」:

root@ubuntu-1204:/# vim /etc/init/tty1.conf

你會看到以下畫面:

image

現在要把這個檔案的內容改成以下設定:

# tty1 - getty
#
# This service maintains a getty on tty1 from the point the system is
# started until it is shut down again.
 
start on stopped rc RUNLEVEL=[2345]
 
stop on runlevel [!2345]
 
respawn
exec /sbin/getty -8 38400 tty1

儲存該檔案,然後重新啟動Ubuntu伺服器吧。

root@ubuntu-1204:/# reboot

然後你就可以在console看到Ubuntu虛擬機器順利啟動了。

20121221-230123

(more...)

Proxmox VE建立虛擬區域網路 (VLAN) 方案 (3) 操作說明

Proxmox VE建立虛擬區域網路 (VLAN) 方案 (3) 操作說明

proxmox_logo 3 excute

終於來到了Proxmox VE虛擬區域網路方案的最後一篇。這一篇是介紹每建立一台虛擬機器時所需要的設定。儘管大部分的設定都在前一篇環境配置中設定完了,不過每一台虛擬機器還是需要手動設定不少參數。這邊也會介紹如何使用反向代理伺服器連接FQDN跟虛擬機器喔。

Proxmox VE建立虛擬區域網路(VLAN)方案目錄:

  1. 方案說明
  2. 環境配置
  3. 操作說明

1. 建立虛擬機器的網路設定

好,講了老半天,我們終於要在Proxmox VE建立虛擬機器了。登入Proxmox VE管理介面的網址是「https://192.168.11.13」,注意是https,而不是http。

由於它的介面已經很容易操作了,在此我就不再一步一步講述,只講需要注意的重點。

1-1. 建立虛擬機器

2011-10-24_155244 create vm - draw

  • 虛擬機器類型(Type):OpenVZ
  • 虛擬機器樣板(Template):Joomla! Content Management    debian-6.0-joomla_1.6-3_i386.tar.gz
  • 網路類型(Network Type):Brdged Ethernet (veth)
  • First DNS Server:140.119.1.110

最重要的是網路類型必須為veth,本篇不使用venet。其他的參數則就視你的需求做調整。

2011-10-22_001631 Open VNC console

建立好之後,就把這台虛擬機器開起來吧。進入主控台的位置在Open VNC console,如上圖。

1-2. 虛擬機器網路設定

這邊的網路設定必須要透過Proxmox VE的VNC console進入虛擬機器的指令列模式設定。

因為每一種Linux發行版的網路設定都不大相同,這邊介紹的是Debian。其實RedHat系的Linux發行版設定起來也差不多,可以參考使用CentOS的鳥哥教學

1-2-1. 編輯設定檔

請用vi修改/etc/network/interfaces 網路配置檔:

vi /etc/network/interfaces

因為目前還沒辦法連上網路安裝vim,所以只好先用vi。

預設的網路配置檔幾乎什麼都沒有設定,所以是無法連線到網際網路的。

設定網路的方式有兩種:DHCP與靜態網路,請選用其中一種來配置。

1-2-2a. 網路模式:DHCP

如果只是暫時要連到網際網路,而不需要讓網際網路的電腦連線至虛擬機器、讓它提供服務的話,你可以採用DHCP的配置方式。

請在網路配置檔加上以下設定:

auto eth0
iface eth0 inet dhcp
1-2-2b. 網路模式:靜態網路

如果是要對網際網路的電腦提供服務的虛擬機器,請使用靜態網路配置。配置如下:

auto eth0
iface eth0 inet static
address 10.10.10.1
netmask 255.255.255.0
gateway 10.10.10.254

設定時必須指定區域網路IP,在此使用10.10.10.1。同一個區域網路裡面不能有相同的IP,因此你可能需要另外的管理方法來確保IP之間不會相互衝突。

2011-10-24_161511 notes

我通常會將虛擬機器的區域網路IP跟FQDN資訊寫在Notes中,如上圖。

1-2-3. 重新啟動網路

請輸入以下指令以重新啟動網路:

/etc/init.d/networking restart

如果沒有錯誤訊息的話,那應該就是順利設定完成了。

1-2-4. 測試網路連線

你可以用最常見的ping指令,測試看看虛擬機器能不能連到Google:

ping www.google.com

如果順利的話,你可以看到以下畫面:

2011-10-22_012750 ping google

確認沒問題之後,按Ctrl + c取消ping指令。

如果網路順利接通的話,你就可以順便安裝vim,指令為:

apt-get install vim

到此為止,虛擬機器連到網際網路已經沒有問題了。但是反過來,若要網際網路的電腦能夠連到虛擬機器,那還需要其他的設定。以下繼續介紹。


2. Proxmox VE 網路路由設定

接下來我們要想辦法讓網際網路的電腦能夠連上虛擬機器。而這之間的橋接者,就是Proxmox VE了。

讓虛擬機器提供服務的方式有許多種,在此要介紹的是透過連接埠轉遞(port forwarding)跟反向代理伺服器(reverse proxy)的方法。

2-1. 網路設定規劃

在設定之前,有必要先釐清預期的網路設定。以下介紹中,我要讓人能夠連線到架設Joomla的虛擬機器。該虛擬機器是以靜態網路配置,區域網路IP為10.10.10.1。Joomla是走HTTP服務,連接埠80,在此設定Proxmox VE時,我規劃以31080連接埠轉遞到他的80連接埠;我們也希望能夠以SSH管理虛擬機器,SSH的連接埠為22,在此設定Proxmox VE時,我規劃以31022連接埠轉遞到他的22連接埠。但我們只希望特定的IP範圍能夠使用SSH連線到虛擬機器,範圍是192.168.11.0/24,也就是僅給192.168.11.0到192.168.11.254的IP連線。關於IP與子網路遮照的表示法,請參考Wikipedia的子網路介紹

此外,我們也設置了一個FQDN「joomla.example.com」,希望能夠讓網際網路的電腦透過此FQDN連線到虛擬機器。設定FQDN一般需要借助你網路環境中的DNS Server幫忙,或是你也可以修改自己電腦的hosts檔案,暫時加入IP與FQDN的對應表,以方便測試。Windows的hosts檔案位於C:\Windows\System32\drivers\etc\hosts,詳細請參考Wikipedia的介紹

2-2. 連接埠轉遞 (port forwarding)

簡單來說,我們要設定兩套連接埠轉遞的規則:(Proxmox VE表示實體機器,Joomla表示虛擬機器)

  • Proxmox VE:31080 –> Joomla:80
  • Proxmox VE:31022 –> Joomla:22

連到Proxmox VE的31080連接埠,就等於連到Joomla虛擬機器的80連接埠,提供HTTP服務;連到Proxmox VE的31022連接埠,就等於連到虛擬機器的22連接埠,提供SSH服務。其中第二套規則要加上來源IP的限制。

至於31080跟31022的設定,只是我自己的管理規劃。要用哪個連接埠並沒有特別技術上的限制,只要不要跟Proxmox使用的連接埠443衝突即可。

這些動作可以使用Webmin的Linux Firewall模組來進行,以下一一介紹。

2-2-1. 進入Linux Firewall模組的NAT設定

2011-10-22_013619 linux firewall - draw

請先登入Webmin,然後從左邊導覽列進入 Networking > Linux Firewall模組。然後點選Showing IPtable: Network address translation (nat),以進入NAT的設定頁面。

2-2-2. 新增規則

2011-10-24_170421 Linux Firewall Add Rule

我們要設定的規則是屬於Packets before routing (PREROUTING,封包被路由前的規則)鏈,請在PREROUTING右下角找到「Add Rule」進入新增。

2011-10-24_170816 Add Rule - HTTP 

剛進去的時候可能會被他繁雜的選項嚇到。別擔心,一步一步照著我以下的介紹來設定吧。

2-2-3. 新增HTTP的規則

2011-10-24_170816 Add Rule - HTTP - draw

首先先新增HTTP的連接埠轉遞。以下是要設定的欄位與建議參數,我將參數以粗體顯示。

Chain and action details的部份:

  • Rule comment: Joomla HTTP
  • Action to take: Destination NAT
  • IPs and ports for DNAT
    • IP range: 10.10.10.1 to 10.10.10.1
    • Port range: 80 to 80

Condition details的部份:

  • Destination address or network: Equals 192.168.11.13/32
  • Incoming interface: Equals eth0
  • Network protocal: Equals TCP
  • Destination TCP or UDP port: Equals Port(s) 31080

然後按左下角的「Create」按鈕,完成規則的建立。

2-2-4. 新增SSH的規則

接著新增SSH的連接埠轉遞。以下是要設定的欄位與建議參數,我將參數以粗體顯示。

Chain and action details的部份:

  • Rule comment: Joomla SSH
  • Action to take: Destination NAT
  • IPs and ports for DNAT
    • IP range: 10.10.10.1 to 10.10.10.1
    • Port range: 22 to 22

Condition details的部份:

  • Source address or network: Equals 192.168.11.0/24
  • Destination address or network: Equals 192.168.11.13/32
  • Incoming interface: Equals eth0
  • Network protocal: Equals TCP
  • Destination TCP or UDP port: Equals Port(s) 31022

跟HTTP規則相比,SSH規則多加了來源位置的限制,如上面紅字所示。然後按左下角的「Create」按鈕,完成規則的建立。

2-2-5. 套用設定

2011-10-24_172556 Firewall Apply Configuration

在Linux Firewall模組底下,按下「Apply Configuration」按鈕,套用上述設定即可。

2-3. 反向代理伺服器 (reverse proxy)

設定反向代理伺服器之後,就能夠用FQDN:joomla.example.com連到Joomla虛擬機器。

反向代理伺服器Pound的設定必須靠SSH連入Proxmox VE的指令列模式來操作。步驟很簡單,敘述如下:

2-3-1. 編輯設定檔

請以vim編輯/etc/pound/pound.cfg:

vim /etc/pound/pound.cfg

在設定檔最後加入以下設定:

ListenHTTP
Address 192.168.11.13
Port 80
Service
HeadRequire "Host: joomla.example.com.*"
BackEnd
Address 10.10.10.1
Port 80
End
End
End

你可以注意到,首先要設定Proxmox VE的IP、連接埠80;封包對象的FQDN網址規則「joomla.example.com.*」,表示是以「joomla.example.com」開頭的網址;以及要傳遞到區域網路的虛擬機器IP:10.10.10.1與連接埠80。

2-3-2. 重新啟動Pound與測試

重新啟動的指令如下:

/etc/init.d/pound restart

如果沒有任何錯誤訊息的話,那就是設定成功了。

你可以試著從自己電腦的瀏覽器打開「http://joomla.example.com/」順利的話就會出現以下畫面:

2011-10-24_203502 joomla.example.com

看到Joomla網站的話就大功告成啦!


結語

經由上述的方法,就能夠以一台伺服器、一個對外IP,架設起Proxmox VE環境。他可以讓虛擬機器處於一個區域網路中,並透過連接埠轉遞跟反向代理伺服器提供服務。儘管操作上是沒有VirtualBox這麼簡單,但是防火牆設定、反向代理伺服器等功能較符合網管的需求。

讓我覺得遺憾的是,Webmin還是太過複雜,儘管許多名詞已經註明,但是光看名詞也很難理解所有功能的意義。因此在操作的時候請務必多多參考鳥哥的Linux私房菜,不要冒然猜測設定參數的意義。

我本來是希望能找到能夠安裝在Debian,簡單易懂的防火牆設定工具。但是大多數防火牆工具都是像Zentyal這種套裝的系統,而不是讓人簡單安裝在Debian、並提供網頁服務的工具。

另一個方法是用KVM虛擬機器安裝獨立的防火牆系統,不過我目前缺少具備VT-x / AMD-V的伺服器,因此實際上我還沒用過KVM的功能。原本我在VMware ESXi的時候的確做過這樣的設定,但是這要耗掉兩個對外IP:VMware ESXi伺服器、以及防火牆伺服器。不過如果照上述的方法來設定的話,應該會有更簡單的作法才是。我簡單的規劃草圖如下,不過這樣的規劃究竟是否可行,也得等未來有機器之後再繼續研究吧。

Proxmox VE結合防火牆套件建構虛擬區域網路 

關於反向代理伺服器選擇Pound的理由。網路上常見以Apache跟Squid這兩套工具來做反向代理伺服器,但是他們在設定上相較於Pound複雜很多。不過Pound並沒有快取功能,他純粹是封包轉遞、負載平衡而已。請端看你的需求選擇反向代理伺服器。

話說回來,光是寫這篇就花掉我好幾天,能寫到結語真是太令人感動了。有時候精神不佳寫起來不是很清楚,或是有筆誤的地方,請不吝糾正,感謝。

總之,還有許多要研究的議題,這次就先走到這邊即可。未來還有進一步的研究發現,我會在上來跟大家分享。一起加油吧。

(more...)

Proxmox VE建立虛擬區域網路 (VLAN) 方案 (2) 環境配置

Proxmox VE建立虛擬區域網路 (VLAN) 方案 (2) 環境配置

proxmox_logo 2 configuration

繼前一篇講方案說明之後,這一篇則是講Proxmox VE的環境配置。基本上這些配置只要做一次,之後建立虛擬機器時就不用重複再做。步驟有點複雜,如果有講錯的地方,請不吝指正。

Proxmox VE建立虛擬區域網路(VLAN)方案目錄:

  1. 方案說明
  2. 環境配置
  3. 操作說明

1. 安裝Proxmox VE

Proxmox VE是採空機安裝的方式,你可以從官方網站下載ISO光碟映像檔,燒錄成CD光碟,然後就可以像是安裝一般作業系統一樣地安裝Proxmox VE。為了測試方便,我是安裝在VirtualBox 4.1.0虛擬機器中。

安裝過程中,他會要你配置網路與root管理者密碼。網路的部份,本文配置的IP為192.168.11.13。

本文是用Proxmox VE 1.8-60版安裝,不過目前Proxmox VE已經出到1.9版。變更功能並不大。

安裝完之後可以看到以下登入畫面,請用root跟剛剛設定的密碼來登入吧。

2011-10-24_203537 vm

2. 安裝vim編輯器

在確認網路能夠正常連線之後,我會習慣先安裝vim編輯器,以取代Proxmox VE原本的vi編輯器。安裝的指令為

apt-get install vim

image

關於vim的操作方式,請參考鳥哥的Linux私房菜

3. 網路卡設定調整成NAT模式

安裝Proxmox VE時,它會要求你設定網路。這個設定是寫入在/etc/network/interfaces檔案中,預設的內容如下:

auto lo
iface lo inet loopback

auto vmbr0
iface vmbr0 inet static
address 192.168.11.13
netmask 255.255.255.0
gateway 192.168.11.1
bridge_ports eth0
bridge_stp off
bridge_fd 0

你應該可以輕易發現到該檔案的address、netmask、gateway的參數都是在安裝Proxmox VE的過程中輸入的資料。為了避免之後修改發生錯誤,請先備份/etc/network/interfaces檔案

為了要讓Proxmox VE具備NAT的網路功能,我們要把eth0實體網路卡跟虛擬交換器vmbr0分開設定。設定參考自Proxmox VE的說明,具體設定細節如下:

# network interface settings
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.11.13
netmask 255.255.255.0
gateway 192.168.11.1
post-up echo 1 > /proc/sys/net/ipv4/conf/eth0/proxy_arp
post-up iptables-restore < /etc/iptables.up.rules #Webmin的Firewall的設定

auto vmbr0
iface vmbr0 inet static
address 10.10.10.254
netmask 255.255.255.0
bridge_ports none
bridge_stp off
bridge_fd 0
post-up echo 1 > /proc/sys/net/ipv4/ip_forward
post-up iptables -t nat -A POSTROUTING -s '10.10.10.0/24' -o eth0 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s '10.10.10.0/24' -o eth0 -j MASQUERAD

eth0配置IP為192.168.11.13,而vmbr0則配置成不同網段,設IP為10.10.10.254。這兩者不同的網路裝置之間是以iptables傳遞封包,vmbr0接收或送出到的封包都會轉給eth0。

eth0最後一行iptables-restore設定是Webmin加上去的,稍後會繼續說明。

整個網路設定完之後,不能只靠/etc/init.d/networking restart重新啟動就能生效,必須要將整個Proxmox VE重新開機才行。

附帶說明的是,這些設定並不會影響網路類型是venet的虛擬機器,請安心。

4. Webmin安裝

儘管SSH指令列操作可以完成大部分的功能,但我個人仍希望有簡單易用的網頁介面作為管理網路與防火牆的工具。

image

在本文中使用的是知名的Linux伺服器管理工具Webmin。Proxmox VE的作業系統為Debian,安裝方式可以參考Installing on Debian的說明

簡單來說,步驟如下:

  1. wget http://prdownloads.sourceforge.net/webadmin/webmin-1.570_all.deb
  2. apt-get install perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl apt-show-versions python
  3. dpkg --install webmin_1.570_all.deb

順利的話,就能夠看到Webmin安裝完成的訊息。

如果webmin-1.570_all.deb已經不能下載,那也可以下載我傳到SkyDrive的備份。SkyDrive無法用wget直接連線,請以網頁下載之後,再上傳到Proxmox VE吧。

5. 進入Webmin

image

安裝完成之後,就能夠以https://192.168.11.13:10000/進入Webmin的管理介面。登入帳號與密碼如同Proxmox VE的使用者,你可以用預設的root使用者與之前設定的密碼來登入Webmin。

image

一開始常常會被他複雜的功能弄得不知所措。不過並不是所有功能都需要學習,本文主要是關注在Firewall防火牆與DHCP伺服器這兩個功能。以下一一說明要使用的功能。

6. 安裝Webmin模組

Webmin安裝完預設只有基本功能,如果要其他的功能,則必須安裝模組(module)。

2011-10-21_235306 webmin modules - draw

安裝Webmin模組的位置在左側導覽列 > Webmin > Webmin Configuration > Webmin Modules,如上圖。

2011-10-21_235815 install - draw

以下的模組是要從www.webmin.com下載。請選擇Install from Standard module from www.webmin.com ,然後再按右邊「…」按鈕開啟選單。

接著請安裝以下模組。

7. 安裝firewall模組

firewall模組是用iptables設定Linux的防火牆,能夠編輯所有的表格(table)、鏈(chain)、規則(rule)與選項(option)。

上面網路卡設定NAT模式時也使用了iptables,iptables可說是非常強大、靈活的防火牆工具。然而也由於他太複雜的,光靠指令操作實在難以管理,因此我才希望仰賴Webmin透過網頁管理。

關於iptables的功能,可以參考鳥哥的介紹。之後也會有詳細的介紹。

8. 安裝dhcpd模組

dhcpd模組是管理分享的網路(network)、子網路(subnet)與ISC DHCPS群組的工具。

安裝dhcpd模組時,因為Proxmox VE並沒有安裝dhcpd-server,所以Webmin會顯示提示,並指引你一起安裝dhcpd-server3。所有操作都是在網頁端進行,一下子就完成。我也對Webmin的高整合性感到相當的驚艷。

關於dhcpd-server的功能,一樣可以參考鳥哥的DHCP伺服器介紹。下一節則會講述如何從Webmin設定。

9. 設定DHCP Server

安裝完dhcpd模組之後,我們就可以馬上來設定DHCP Server,以便之後提供虛擬機器DHCP服務。

9-1. 進入DHCP Server設定

 2011-10-22_002932 enter dhcp server - draw

DHCP Server可從左邊導覽列 > Servers > DHCP Server進入。首先,我們先來Add a new subnet (新增子網域)。

9-2. 新增子網域 Create Subnet

image

在Create Subnet中,我們要設定的參數主要有四項,其他都用預設值即可:

  • Subnet description: vlan
  • Network address: 10.10.10.0
  • Netmask: 255.255.255.0
  • Address ranges: 10.10.10.101- 10.10.10.200

Subnet description任意名稱皆可,而Address ranges表示這個子網域的電腦可以從10.10.10.101分配到10.10.10.200,可提供100臺伺服器。根據OpenVZ的介紹來看,一臺配備良好的Proxmox VE應該可以架設100臺提供Apache靜態網頁的伺服器。

至於為何IP是從10.10.10.101開始呢?那是因為10.10.10.1到10.10.10.100是留給靜態分配IP的伺服器使用,而使用DHCP服務的伺服器則是用101後面的IP。

這部份都可以自行規劃。

9-3. 編輯預設路由器與DNS伺服器

新增完子網域之後,接著還要編輯子網域中各個客戶端(client)的選項。請編輯剛剛新增的子網域,並按下面的「Edit Client Option」按鈕進入編輯客戶端選項介面中。

2011-10-24_150759 Client Options

在這邊要編輯的只有兩個選項:

  • Default routers: 10.10.10.254
  • DNS Servers: 140.119.1.110

這邊的路由器(router)是指虛擬交換器vmbr0,也是負責與外面網際網路交接的閘道(gateway)。DNS Servers則是配置你所在網路環境的DNS伺服器即可。由於我在政大網路中,DNS就是配置140.119.1.110。

接著按「Save」一路回到DHCP Server管理模組。

9-4. 選擇網路介面 Edti Network Interface

在DHCP Server模組下面,請點「Edit Network Interface」按鈕進入編輯網路介面的畫面。

2011-10-22_013156 dhcp listen

在此我們只針對連接到vmbr0的客戶端提供DHCP服務。請選擇vmbr0,然後按下「Save」儲存。

9-5. 套用變更 Apply Changes

在DHCP Server模組下面,請點選「Apply Changes」按鈕以套用剛剛的設定。

10. 安裝Pound

為了提供反向代理伺服器(reverse proxy)的功能,在此我使用的是Pound。以下介紹安裝前注意事項、安裝方式、設定方式。

10-1. 關閉Apache2的80連接埠

由於Proxmox VE網頁管理介面的Apache2伺服器佔用了80連接埠,這會導致Pound無法使用80連接埠做反向代理伺服器,因此在此要先調整Apache2伺服器的設定。

請編輯/etc/apache2/port.conf,並將「Listen 80」設定註解掉,改成「#Listen 80」。僅保留「Listen 443」就好。

由於Proxmox VE的管理介面本來就是用443連接埠以https提供服務,所以80連接埠不使用也無所謂。

10-2. 安裝Pound

安裝Pound的指令為:

apt-get install pound

沒意外的話應該可以順利安裝完成。不過安裝的時候他會提示你要設定Pound,否則無法順利運作。

10-3. 設定Pound自動啟動

請編輯/etc/default/pound,設定「startup=1」。

10-4. 重新啟動Pound

指令為:

/etc/init.d/pound restart

沒有任何錯誤訊息的話,就代表設定成功。

當然,這樣子還不算是完成,這只是基本環境配置而已。下一篇建立虛擬機器時,會介紹如何設定一個FQDN,並透過Pound轉遞到虛擬機器,讓虛擬機器提供服務。

11. 重新開機

上述設定完成之後,接著是把Proxmox VE重新開機,以便讓所有設定確實生效(特別是網路的部份)。

重新啟動的指令為「reboot」。

如果順利重新啟動的話,那Proxmox VE的環境配置就差不多完成囉。

(more...)

Proxmox VE建立虛擬區域網路 (VLAN) 方案 (1) 方案說明

Proxmox VE建立虛擬區域網路 (VLAN) 方案 (1) 方案說明

proxmox_logo 1 introduction

這次是繼上次的伺服器虛擬化技術研究之後,特別針對Proxmox VE的虛擬網路建立深入鑽研的進階研究。這篇預設的讀者是對伺服器虛擬化技術Proxmox感興趣,也具備網路相關概念,這樣比較容易知道我在講些什麼。由於Proxmox VE是在Debian環境下運作,所以熟悉Linux──特別是Debian──當然是必備條件。

由於內容頗多,我分成三篇來撰寫,各別是(1) 方案說明(2) 環境配置(3) 操作說明。這篇是介紹這個方案的背景、目標、環境,並簡單介紹Proxmox VE的網路模型。

Proxmox VE建立虛擬區域網路(VLAN)方案目錄:

  1. 方案說明
  2. 環境配置
  3. 操作說明

方案背景

之前我比較了多種不同伺服器虛擬化技術,目前採用Proxmox VE作為架設伺服器的虛擬環境。然而大部分的伺服器虛擬化技術在網路架構上都比較單純,都只提供橋接模式(Bridged Network)或是虛擬交換器(Virtual Switch,類似的名詞很多)。前者是讓虛擬機器(GuestOS)的網路有如實體機器(HostOS)一樣,暴露在同一網段中;後者則是虛擬機器與實體機器、虛擬機器與虛擬機器之間連線用,由實體電腦模擬出來的虛擬交換器。Proxmox VE使用的網路模型比較特殊,有venet跟veth兩種,但其實用起來也跟前面講的兩種是很類似的。

在橋接模式中,虛擬機器也跟實體機器一樣,需要一個能夠對外連線的IP。在IP有限的環境中,我實在不想讓每台虛擬機器都佔用IP。因此我之前是將Proxmox VE架設在區域網路中,讓它透過一台路由器連線到網際網路。這樣子對外的IP只需要配給路由器,可以達到節省IP的目的。但是相對的,這也必須配置兩台實體機器:Proxmox VE伺服器,以及路由器。

反觀桌面端虛擬機器,如VirtualBox,它們都有提供多樣化的網路架構。最實用的莫過於NAT模式(Network Address Translation,網路地址轉換),它可以在同一台實體機器中,將指定連接埠配置給虛擬機器,達到一個對外IP(配給實體機器)、一台機器(實體機器)的目的。

Proxmox VE能夠架設成NAT的網路架構嗎?之前我在摸索VMware ESXi的時候也有類似的困擾。VMware ESXi是閹割的Linux,大多功能都無法調整。但是開放原始碼的Proxmox VE可就沒這種限制,要設定iptables防火牆、要架DHCP伺服器、或甚至是配置反向代理伺服器(Reverse Proxy),什麼都可以自己來。

因此,這次我打算繼續深入鑽研Proxmox VE的網路架構,讓Proxmox VE更容易使用。

方案目標

總結以上背景需求,這一篇方案想要達到的目標有以下四點:

  1. 僅使用一台實體機器與一個對外連線的IP。
    實體機器當然是架設Proxmox VE。
    在此篇介紹中,對外IP使用的是192.168.11.13。
  2. Proxmox VE中建立的虛擬機器皆可使用區域網路,透過DHCP或靜態設定配置區域網路的IP。
    在此篇介紹中,區域網路的範圍是10.10.10.0/24,10.10.10.0到10.10.10.253都可以配置,而10.10.10.254則是配給實體機器的虛擬交換器。
  3. 可透過網頁管理伺服器。
    Proxmox VE本身就提供網頁端管理,而網路路由設定的部份是以Webmin為主。
  4. 可使用反向代理伺服器(reverse proxy)。
    可以透過FQDN直接連線到虛擬機器。在此篇介紹中,我設定了一個FQDN:joomla.example.com,欲連線到架設Joomla的虛擬機器。

這次的目標有點多,又要虛擬機器方便配置,又要虛擬機器方便架站,因此要講的東西也挺多的。如果哪些細節我講錯了,請不吝指正。

環境架構說明

20111022 Proxmox   Webmin 架構圖

目標方向比較抽象,現在來說明這個方案的具體架構。

首先,跟網際網路(internet)連線的是實體電腦Proxmox VE。在此篇介紹中,它的對外IP是192.168.11.13,連線網卡代號eth0

為了能夠讓它提供網頁管理伺服器的能力,它本身有Apache2Webmin,前者管理Proxmox VE虛擬機器,後者管理伺服器網路環境。然後為了讓內部的虛擬網路能夠方便連線,Proxmox VE還架設dhcped-server提供DHCP服務,以及利用pound實作反向代理伺服器的功能。

Proxmox VE中虛擬機器網路是連線到虛擬的交換器,代號vmbr0。作為內部網路的閘道(gateway),vmbr0的IP是10.10.10.254。而虛擬機器是以veth模式連線到vmbr0,設定區域網路IP的範圍為10.10.10.0/24。其中一台虛擬機器架設Joomla,其區域網路IP為10.10.10.1。

軟體說明

上述各種軟體的說明與版本記錄如下:

  • Proxmox VE 1.8-60:Proxmox Virtual Environment,伺服器虛擬化方案。Proxmox VE網站可以找到它的ISO檔案,檔案名稱為proxmox-ve_1.8-60.iso。它的作業系統是Debian 5。在寫作本文的時候,Proxmox VE已經出到1.9了。
  • Webmin 1.570:Linux知名的網頁管理工具。(SkyDrive備份)
  • dhcpd-server3:提供DHCP服務。
  • pound 2.4.3:提供反向代理伺服器的功能。
  • Joomla:在本篇中,它只是一個網頁服務而已。其實是什麼網站都無所謂啦。
名詞解釋

在本篇介紹與相關文章中,有兩個名詞需要特別說明:

  • 實體機器(Physical Machine):在虛擬機器環境中,它叫做Host OS,又稱為主端電腦。在本篇介紹中,它主要是指架設Proxmox VE的實體機器。
  • 虛擬機器(Virtual Machine,簡稱VM):在虛擬機器環境中,它叫做Guest OS,又稱為客端電腦。Proxmox VE的虛擬機器技術有很多種,其中以OpenVZ技術虛擬的機器又稱為Container(容器,簡稱CT)。儘管名詞有點複雜,但它們都是指在Proxmox VE中架設的虛擬機器。

至於網路(Network)方面比較複雜,我會在下節說明Proxmox VE的網路模型。

有時候我會將Proxmox VE打成Proxmox,這是筆誤。實際上Proxmox是一家公司,開發Proxmox VE這個產品,他們是有所區別的。

Proxmox VE的網路模型 (Network Model)

這邊的介紹是參考自Proxmox VE的Network Model來撰寫。

在預設的情況中,Proxmox VE使用的是橋接網路模型(bridged networking model)。橋接器(bridge)就像是實體網路交換器(switch)一樣,不過是透過Proxmox VE以虛擬出來的軟體。所有的虛擬機器都可以共用一個橋接器,配置對外TCP/IP,透過該橋接器連上網路。

Proxmox VE提供虛擬機器兩種網路類型:venet與veth。venet (Virtual NETwork)只有OpenVZ的容器虛擬化機器可以使用,是OpenVZ的預設選項,可以直接透過指令配置虛擬機器的IP;veth (Virtual eTHernet)則是OpenVZ跟KVM都能使用,是KVM的預設選項,可讓虛擬機器接上虛擬交換器藉以連到網際網路,但是必須手動進入虛擬機器設定網路IP。

以下表格比較兩種網路類型的差異:

veth跟venet的差異
Feature
特徵
veth venet
可使用的虛擬機器類型 OpenVZ
KVM
OpenVZ
可透過網頁管理
直接配置網路IP
No Yes
MAC address
網卡位置
Yes No
Broadcasts inside CT
封包會在虛擬機器間廣播
Yes No
Traffic sniffing
封包攔截
Yes No
Network security
網路安全
Low High
Can be used in bridges
可否用於橋接器
Yes No
IPv6 ready
可否使用IPv6
Yes Yes
Performance
效能
Fast Fastest

資料來源參考自:Differences between venet and veth

為了達到NAT複雜的虛擬網路架構,本篇主要談論的虛擬機器網路類型都是指veth,而虛擬交換器則是用內建的vmbr0。詳細的設定,下一篇將會繼續深入說明。

Proxmox VE除了提供上述的虛擬區域網路(VLAN,IEEE 802.1q)之外,還有網路綁定/聚合(networking bounding/aggregation)功能。網路綁定是利用兩張實體網路卡分散網路流量的技術,並不是本篇主要探討的對象。

(more...)

pfSense 實作反向代理伺服器(Reverse Proxy)

pfSense 實作反向代理伺服器(Reverse Proxy)

2011-08-12_182742 lighttpd

最近在研究用pfSense(1.2.3版)當做路由器架設內部網路,然後利用FQDN(Fully Qualified Domain Name)透過pfSense連到內部網路中的網頁伺服器的方法。

最簡單的作法是連接埠轉遞(port forward),可是網址帶個連接埠號就是不好看。在此介紹在pfSense中設定Lighttpd的反向代理伺服器(Reverse Proxy),以FQDN連接到內部網路伺服器的作法。這方法只能適用於HTTP跟HTTPS,其他通訊協定就要另外想辦法了。


網路拓蹼狀況說明

網路拓蹼

在介紹原理跟作法之前,必須先讓人搞清楚我現在的網路拓蹼狀況。上圖是目前的網路拓蹼圖。中間的伺服器是用pfSense架設,主機名稱為pfSense,對外網卡的IP是140.119.61.254,這也是我唯一一個可以使用的公用IP(public IP)。對內的內部網卡是192.168.1.1,提供內部區域網路連線到網際網路。內部區域網路中有兩台甚至更多的伺服器,其中一台主機名稱為joomla,內部區域IP為192.168.1.20,執行我架設的joomla網站

現在我跟DNS註冊一個FQDN:joomla.example.com,對應到公用IP 140.119.61.254,也就是pfSense主機。而我要藉由設定pfSense作為反向代理伺服器,讓joomla.example.com連到joomla主機。

再回到上面的網路拓蹼圖,圖片上方是網際網路(internet)的電腦,當他想要連結到「http://joomla.example.com」時,實際上是會先連到pfSense主機,然後我們要想辦法讓pfSense主機再去存取Joolma主機,以達到我們的目標:用FQDN連到pfSense伺服器背後內部區域網路中的網頁伺服器。

達到這個目標的方法很多,其中一個方法就是將pfSense主機設置成反向代理伺服器。


反向代理伺服器(Reverse Proxy)

一般常聽到的代理伺服器(Proxy),像是在家裡要用圖書館的資料庫要先設定代理伺服器的這種,指的都是正向代理伺服器(Forward Proxy)。其運作方式為:客戶端(client)跟代理伺服器要求要下載的資料,代理伺服器先去抓好,然後再回傳給客戶端。

而本篇討論的網路拓蹼中,目標是要讓網際網路的電腦連到內部區域網路的伺服器,這個作法則是透過中間的反向代理伺服器來進行。反向代理伺服器的運作方式一樣是根據網際網路上客戶端的請求,從內部區域網路中的伺服器抓取資料,然後回傳給客戶端。

反向代理伺服器的好處有:

  1. 當網路被隔離外部與內部時,可以讓外部電腦取用內部伺服器的網站。
  2. 可以直接用FQDN來連接內部伺服器,如:http://joomla.example.com;不需要像連接埠轉遞還附帶額外的連接埠,如:http://joomla.example.com:64080/
  3. 代理伺服器可以進行快取與負載平衡的機制。

詳細的內容請參考聯成電腦的使用 Reverse Proxy代理服務

然而,跟NAT的連接埠轉遞相比之下,反向代理伺服器設定比較麻煩,還有一些額外的速度考量等缺點。

在本篇要討論的情況中,pfSense就是扮演反向代理伺服器的角色。

架設反向代理伺服器的工具很多種,網路上大家常使用的工具為SquidApache。pfSense雖然可以安裝Squid,但是Squid設定反向代理伺服器的配置挺複雜的,我沒有仔細研究。Apache的反向代理伺服器設定就很簡單,但是pfSense預設不是用Apache執行網頁伺服器,而是用Lighttpd

Vadim Tkachenko有介紹Lighttpd設定反向代理伺服器的方法,但在pfSense中操作Lighttpd的方式有點不同。在此我主要介紹的是在pfSense(1.2.3版)中設定Lighttpd作為反向代理伺服器的過程。


Lighttpd設定反向代理伺服器

現在我們要設定Lighttpd作為反向代理伺服器,而我們有個FQDN:joomla.example.com,指向pfSense主機的IP。而實際上架設joomla的主機內部IP為192.168.1.20。這些設定必須事先配置好,接下來才能開始設定反向代理伺服器。

1. 開啟pfSense的SSH連線

我大部分的操作都是用SSH進行,遠端操作比起在主機前面還要方便,要編修檔案時也可以用FileZilla以sftp來傳送,所以在此建議打開pfSense的SSH連線。

pfSense開啟SSH連線的設定是在Adcanced中的Secure Shell,請勾選「Enable Secure Shell」,再按下「Save」按鈕儲存。

2. 下載/var/etc/lighty-webConfigurator.conf

你可以利用FileZilla下載該檔案到本機電腦編輯。我一直無法習慣pfSense內建的vi編輯器,還是下載回來編輯,然後再上傳回比較方便。

3. 加入反向代理伺服器設定

接著我們編輯lighty-webConfigurator.conf這個檔案。

首先是要先額外載入mod_proxy模組,請在server.modules參數中加入"mod_proxy”。請注意以下紅字的部份,中間要相隔逗號:

## modules to load
server.modules = (

"mod_access", "mod_accesslog",
"mod_fastcgi", "mod_cgi",
"mod_proxy"

)

然後在檔案的最後插入反向代理伺服器的設定:

#### Reserve Porxy
$HTTP["host"] == "joomla.example.com" {
cache.enable = "false"
proxy.server = ( "" => ( ( "host" => "192.168.1.20") ) )
}

必須要說明的是cache.enable設定。在本篇當中,反向代理伺服器的目的不在於加速,而只是在於連結外網與內網而已。因此這邊是不使用快取,避免讀取到過期的舊檔案。

詳細的代理伺服器設定請參考Lighttpd的mod_proxy說明

修改之後,請再上傳到/var/etc/目錄,覆寫原本的lighty-webConfigurator.conf檔案。

4. 重新啟動Lighttpd服務

pfSense主機上的Lighttpd服務要重新啟動,剛剛修改的設定才會生效。但是pfSense的Lighttpd不知道是怎麼執行的,我找不到restart選項來用。所以在此我是關閉既有的Lighttpd,再開啟Lighttpd服務,來達到重新啟動的效果。

請以SSH連接到pfSense主機,然後用以下步驟來重新啟動Lighttpd。

4.1 關閉執行中的Lighttpd

pfSense預設開啟時會執行Lighttpd,我們要先把它關掉。

查詢執行中的Lighttpd的指令是ps,執行之後的結果如下,請注意紅字的執行緒編號。這個指令每次執行的結果都不同,執行緒編號也不會相同,請依據你的狀況來取得現在的Lighttpd執行緒編號:

# ps aux | grep light
root 13839 0.0 2.6 5316 3068 ?? S 12:08PM 0:05.15 lighttpd -f /var/etc/lighty-webConfigurator.conf

然後再用kill指令關閉Lighttpd,kill指令後面接的是Lighttpd的執行緒編號:

# kill 13839

這樣就關閉Lighttpd了。

4.2 開啟Lighttpd

開啟Lighttpd的方法如下:

# lighttpd -f /var/etc/lighty-webConfigurator.conf

這樣就重新啟動Lighttpd了。

不過,用kill殺掉執行緒好像會有很多問題,如果可以的話,還是重新啟動pfSense主機,這樣就能確保Lighttpd一定會重新載入。

4.3 測試 joomla.example.com

這樣就設定完成了,請試著用外部網路的電腦連到 joomla.example.com ,看看能不能連接到 joomla主機吧。

討論

反向代理伺服器可以上傳檔案

2011-08-12_202946 phpfilemanager upload 成功

反向代理伺服器看起來只是下載、轉交檔案而已,那麼像是上傳檔案這種要跟伺服器互動的操作,反向代理伺服器可以完成嗎?測試之後是可以的。

我在內部網路伺服器中架設了XAMPPphpFileManager,然後嘗試上傳檔案,結果很順利。

反向代理伺服器效能與速度的考量

由於客戶端瀏覽網站的所有動作都必須經過反向代理伺服器,因此反向代理伺服器的運作效能也不能太差,否則會拖慢網頁速度,這是他的缺點。

不過另一方面,反向代理伺服器也可以考慮設置快取與負載平衡,加快網頁的速度。這部份的設定請參考Lighttpd的mod_proxy說明

只用於HTTP跟HTTPS通訊協定

我這篇主要是用於HTTP通訊協定。

HTTPS的設定有些不同,雖然mod_proxy說明中沒有寫,不過網路上很容易可以找到相關設定說明,例如lighttpd論壇中的SLL trough reverse proxy。我對HTTPS並沒有這麼熟,也沒有急迫需求,所以並沒有動手設定。如果有人設定成功,歡迎留言分享一下作法。

至於其他通訊協定,例如SSH,好像就不是Lighttpd管轄的範圍,必須仰賴其他程式,或是直接設定連接埠轉遞比較快。


結語

網路上pfSense的討論很少提及lighttpd,而pfSense的lighttpd操作也跟一般在FreeBSD上的操作不太一樣,我為此找了好一段時間。上述方法其實並不太漂亮,特別是重新啟動Lighttpd的方法。如果有人對pfSense很熟悉的話,請務必指正我這個錯誤的方法吧!

好,繼續研究pfSense。

(more...)

pfSense 安裝dns-server的方法

pfSense 安裝dns-server的方法

2011-08-09_230254 logo

我最近研究以pfSense架設路由器,並安裝dns-server套件的方法。由於套件語法有點問題,安裝會發生「 Parse error: syntax error, unexpected '&', expecting T_VARIABLE or '$' in /usr/local/pkg/tinydns.inc on line 880 」錯誤。我想到一種方法可以繞過錯誤,雖然作法不是很漂亮,不過還是記錄一下。


pfSense簡介

pfSense是一套具備路由器、防火牆等多功能的網管系統。它是基於FreeBSD維基百科)、可以空機安裝的完整系統,也是開放原始碼可供人自由下載、安裝。pfSense具備網頁管理介面,可直接用瀏覽器控制、監控系統狀況。而且可以安裝各種套件(package)擴充pfSense的功能。

kidz在Mobile01上有好幾篇介紹pfSense安裝與設定的教學,想知道到如何使用pfSense的人可以參考看看。


pfSense安裝dns-server失敗

2011-08-12_161415 package list - draw

我使用的pfSense是1.2.3版。而pfSense的套件之一「dns-server」是搭配TinyDNS軟體修改而成的整合套件,目前版本是1.0.6.14。

2011-08-12_161601 error message

但是安裝dns-server的過程會發生錯誤,套件無法順利安裝。錯誤訊息寫在網頁最下方,有時候會不小心略過。訊息內容為:

Parse error: syntax error, unexpected '&', expecting T_VARIABLE or '$' in /usr/local/pkg/tinydns.inc on line 880

這個意思是,/usr/local/pkg/tinydns.inc的880行程式錯誤。

我下載該程式來檢查,原本的880行附近的程式如下(878行到884行):

/* Uncompress the v6 IP so we have all of the sections we need */
$fullip = explode(":", Net_IPv6::uncompress($ip));

/* Expand even more so we have a digit in every possible place */
foreach ($fullip as & $q) {
$q = sprintf("%04s", $q);
}

foreach裡面多了一個「&」,我以紅字粗體標示,這就是發生錯誤的原因。

修正後878行到884行的程式如下:

/* Uncompress the v6 IP so we have all of the sections we need */
$fullip = explode(":", Net_IPv6::uncompress($ip));

/* Expand even more so we have a digit in every possible place */
foreach ($fullip as $q) {
$q = sprintf("%04s", $q);
}

我把修正後檔案上傳到SkyDrive供人下載,網址如下:

雖然我想把這個錯誤報告回報給pfSense,但是論壇不知為何不能註冊,甚至有人在論壇上已經提過相同的問題了,但還是沒有解決。期待好心人士能夠幫忙反應一下吧。


修正pfSense安裝dns-server

不過光是修正檔案沒有用,這樣還是無法安裝到pfSense中。於是我想到一個替代的方法:在pfSense下載tinydns.inc之後、準備要安裝dns-server之前,將tinydns.inc替換成修正版本。

這樣不是很漂亮,但至少可以讓它安裝成功。而短時間內我也找不到更漂亮的方法了。

以下介紹操作步驟:

1. 下載tinydns.inc修正檔、開啟pfSense的SSH

tinydns.inc的修正檔網址如上所述,請從SkyDrive空間下載。

2011-08-12_171807 ssh

傳送檔案的方法,我使用的是sftp,這要先開啟pfSense的SSH通訊協定才行。設定的位置是在Adcanced中的Secure Shell,請勾選「Enable Secure Shell」,再按下「Save」按鈕儲存。

試著用FileZilla Client之類的軟體以SFTP連線看看,順利的話應該能夠連到pfSense。

2. 準備sftp連線

2011-08-12_162325 upload tinydns.inc - mask

先準備好FileZilla中本機目錄與遠端目錄的路徑。左邊是你的本機目錄,也就是要上傳的tinydns.inc修正檔的位置;右邊則是pfSense檔案系統中存放tinydns.inc的位置, 預設是在/usr/local/pkg目錄底下。

待會就要上傳了,這個視窗先放著待命。

3. pfSense開始安裝套件

2011-08-12_164334 download

回到pfSense的套件列表,並安裝dns-server。

請觀察它的安裝訊息,確定「Additional files… tinynds.inc」訊息已經處理完畢(通常很快,這是第一個下載的檔案),然後馬上進入下個步驟。

4. 上傳修正版tinydns.inc

再回到FileZilla,上傳tinydns.inc。

5. dns-server安裝成功

2011-08-12_172544 installation complated

然後安裝過程就會順利地進行,看到「Installation completed」的訊息,表示安裝已經成功。


使用dns-server

 2011-08-09_231223 DNS Server

如果要設定dns-server,你可以從導覽列「Services」中的「DNS Server」進入。

2011-08-09_231258 DNS Server Setting

設定內容也挺複雜的,我還要研究看看就是了。


結語

pfSense感覺還不錯用,很容易上手。介面其實有簡體中文版本,但這樣子常常會被翻譯術語混淆,所以我個人比較喜歡用英文版。

這個方法不是很漂亮,如果有更好的作法,歡迎大家建議指正,感謝。

(more...)

輔大動漫社OPED點播單

布丁布丁吃布丁

輔大動漫社OPED點播單

clip_image002

  • 題名:輔大動漫社OPED點播單
  • 建置時間:2006~2007,2010

我大學時參加了輔大動漫社,並在動漫社中開啟了「動漫OPED放映會」的活動。活動內容很簡單,大家點播想要播放的影片片段(甚至是自己做),然後湊齊這些影片,最後借個演講廳來播放。我已經畢業將近四年,但是這個活動仍然大受學弟妹好評,而且像是傳統一樣地延續了下去,讓我感到非常地意外。

OPED點播單是一個資料庫系統,社員可以利用瀏覽器在網頁上進行點播,而活動負責人則可以在點播單上篩選出最終選入的歌單。程式語言是PHP,資料庫是MySQL,這是一個很小型,但對活動進行有相當大幫助的一個系統。

以往活動中都是由我個人來維護OPED點播單,後來我將之以InnoSetup包裝成安裝檔,供學弟妹輕易地在Windows系統上建立OPED點播單的伺服器。

儘管只是一個小型的系統開發,而且不是正式的應用,不過也算是我個人的作品之一,所以在此留下記錄。


前言

本系統是由輔漫老人布丁開發,為了協助動漫OPED放映會進行而做的點播系統(以下簡稱OPED點播單)。OPED點播單本身以PHP與MySQL架構而成,我把他跟XAMPP與AMPstart結合成可直接執行的網頁伺服器版本,方便對於伺服器設定不熟的學弟妹們,也能夠自行動漫OPED點播單。

安裝需求

網路環境

以下兩者其中之一即可擔任伺服器

  1. 固定IP
  2. ADSL
硬體需求
  • 平時電腦即是長時間開機,就當作是P2P附加的流量吧。流量應該1天不到10KB。
  • Windows 2000/XP (Windows 7上測試起來好像會有點問題)
  • Pentium III以上等級
  • 所需硬碟空間約300MB

OPED點播單下載與安裝

  1. 下載OPED點播單(大約50MB) 
  2. 請直接執行OPEDrequestSetup.exe,開啟安裝程式

OPED點播單安裝精靈

clip_image002[4]

安裝精靈操作很簡單,一直按下一步也可以完成。就不用多說了。

clip_image004

安裝完成之後,安裝精靈會提示您「安裝DynDNS Updater」,請打勾並且完成安裝。

安裝動態網址DynDNS Updater

動態網址讓我們可以用fjuacg.servebbs.org來連到你的電腦,而不用在意你到底是固定IP還是ADSL的浮動IP。

clip_image002[8]

如果你沒有在安裝精靈中安裝DynDNS Updater,你也可以點選「開始/程式集/輔大動漫OPED點播單/安裝DynDNS Updater」來安裝

開始安裝之後的操作介紹如下:

clip_image004[6]

clip_image006[4]

image

使用預設設定即可。

image

Intstall the DynDNS Updater as a Windows Service請留空白。

image

Destination Folder是安裝的資料夾,你可以自行決定安裝位置。

image

Run DynDNS Updater請打勾。然後系統會開啟DynDNS Updater。

image

填入帳號與密碼。

image

以後開機的時候就會自動啟動DynDNS Updater。

設定防火牆

OPED點播單使用50080連接埠來提供服務,以避免跟原本電腦正常服務使用的連接埠相衝突。為了避免被防火牆阻擋,我們要手動開啟50080連接埠。如果最後無法開啟OPED點播單網頁,那麼大多數問題都是被防火牆阻擋了。

防火牆大致上分成軟體跟硬體兩種,除非你電腦網路是透過硬體的無線基地台(或是其他router),那麼一般情況下都只要設定軟體防火牆即可。

因為軟體防火牆眾多,難以確定實際上你安裝的是哪一種,故以下只說明講解Windows防火牆(Windows XP版本)跟卡巴斯基Kaspersky Anti-Virus 6.0防火牆的設定方式,如果是其他情況的話可以再來問我。

Windows防火牆開啟50080連接埠
  1. 開啟「控制台」中的「Windows防火牆」
    clip_image002[10] 
  2. 進入「例外」(因為我預設沒開啟Windows防火牆,所以下面的訊息應該跟你的不太一樣)
    clip_image004[8] 
  3. 點下「新增連接埠」
    clip_image006[6] 
  4. 請填入「名稱: OPEDrequest」、「連接埠編號: 50080」、選擇「TCP」,如下:image 
  5. 在「程式和服務」裡面找到「OPEDrequest」已經新增且勾選,按下「確定」之後,就完成設定防火牆的工作。
    clip_image012[4]

卡巴斯基Kaspersky Anti-Virus 6.0開啟50080連接埠
  1. 開啟卡巴斯基主程式,點選「駭客防護」
    clip_image002[12] 
  2. 點選「防火牆」
    clip_image004[10] 
  3. 進入「設定」
    clip_image006[8]
  4. 進入「封包篩選規則」
    clip_image008 
  5. 按下右邊的「加入」
    clip_image010[4] 
  6. 規則名稱輸入「OPEDrequest」,勾選「本機連接埠」,再點下「輸入連接埠」
    clip_image012[6] 
  7. 輸入「50080」,按下「確定」。
    clip_image014 
  8. 按下「確定」
    clip_image016 
  9. 確定清單當中出現了「OPEDrequest」之後,切換到「區域」
    clip_image018[4] 
  10. 隱形模式必須全部都取消打勾,然後按下「確定」
    clip_image020 
  11. 按下「確定」,設定完畢
    clip_image022[4]

啟動OPED點播單

  1. 請點「開始/程式集/輔大動漫OPED點播單/啟動OPED點播單」
    image 
  2. 程式會自動幫你開啟伺服器,請等候30秒,網頁會自動開啟。
    clip_image002[14]
  3. 網址分成兩種:
    1. 內部測試用網址:http://localhost:50080
      只有你自己能夠連線,其他人無法開啟。僅供測試用。備份/還原資料時,必須使用此網址。
    2. 正式網址:(問問輔漫幹部要不要開放吧,畢竟這算是私下的小活動)
      如果要其他人能看到你的網頁,必須用此網址。
      使用此網址必須啟動DynDNS Updater,並照上述步驟完成設定即可。
  4. 如果看到以下網頁,表示你開啟成功了。
    clip_image004[12]
  5. 但如果看到以下網頁,則表示你開啟失敗。可能是防火牆沒有設定的緣故,請聯絡布丁處理這個狀況。
    clip_image006[10]

關閉OPED點播單

clip_image002

請在Windows工具列右下角工具圖示當中,找到AMPstart的圖示。並按下右鍵,選擇「Exit」,則能夠關閉OPED點播單。

新增OPED點播單代次

確定OPED點播單可以開啟之後,我們才可以進一步地去設定OPED點播單的內容。本說明僅教你如何新增OPED點播單代次,其餘的新增、修改功能,就讓你自行去摸囉。

  1. 進入OPED點播單左下角的「管理介面」
    clip_image002[16]
  2. 點選「選擇使用」下拉選單,選擇「新增」
    clip_image004[14]
  3. 請把右欄資資料都填寫完畢,如果不會填沒關係,稍候可以再來修改。然後按下「新增」,系統會跳出確認視窗,按下「確定」。
    clip_image006[12]
  4. 按下「確定」
    clip_image008[4]
  5. 輸入預設密碼:fjuacg
    clip_image010[6]
  6. 新增完畢,點選標題回到首頁。
    image
     
  7. 這樣就是新一代的OPED點播單囉。
    clip_image015[4]

備份/還原OPED點播單

clip_image002[18]

請先啟動OPED點播單之後,再來開啟「開始 > 所有程式 > 輔大動漫OPED點播單 >備份還原OPED點播單」。

clip_image004[16]

隨後會開啟此網頁,網址固定是「http://localhost:50080/export.php」。您可以在

此下載備份檔案,或是上傳檔案以進行還原的動作。還原時會把原本的資料全部刪掉、再新增還原的資料,所以以前的資料會毀掉,請務必注意。

必須注意的是,備份/還原資料的功能,只有安裝電腦本機端才能執行喔。 (more...)