進階 Linux 作業系統上機考
1. 請建立一個橋接網路介面,名為 br9,其網域為 192.168.9.0/24,此橋接網路介面可以讓其 pxeserver (192.168.9.254) 提供 DNS、DHCP、tftp、www 以及 ftp 服務。
2. 請建立 pxeserver_學號.img,學號為你的學號,其影像檔大小為 5 GB,並在其中建置 PXE Server 之服務。
3. 利用 runpxe.sh 這個 shell script 來開機,並提供 DHCP 服務,提供之 IP 範圍為 192.168.9.51 ~ 192.168.9.100。
4. DNS 服務定義如下:
192.168.9.1 -> host1.my.com, gateway.my.com
192.168.9.2 -> host2.my.com
192.168.9.3 -> host3.my.com
..
192.168.9.254 -> host254.my.com, pxe.my.com
5. http://192.168.9.254 及 ftp://192.168.9.254 都要是 Debian 鏡像站 (掛載實體機上面的 NFS 分享)
6. 利用 netboot.sh 來測試是否能自 pxeserver_學號.img 網路開機,並進入 X-Window。
7. 請於中午 12:00 前將 pxeserver_學號.img 上傳至 ftp upload 目錄中。
8. FTP 主機僅接受來自校內之 IP 上傳,請注意!!
2014年4月17日 星期四
2014年4月11日 星期五
建置 apache 伺服器
1. 安裝 apache 套件
在 Debian 作業系統底下要架設 Apache 伺服器必須先安裝 apache2 套件,指令如下所示:
# apt-get install apache2 \Enter
2. 掛載 deb_mirror.img
由於先前所完成之 deb_mirror.img 在虛擬機器中會被當作是 /dev/sdb1 這個分割區,其掛載點在 /var/www/debian 目錄,因此要在 PXE Server 中先新增此目錄,指令如下所示:
# mkdir -p /var/www/debian \Enter
接下來可以編輯 PXE Server 的 /etc/fstab 這個檔案,並新增底下這行:
UUID=b43e1707-19c5-42cb-9424-f4bf7118d39a /var/www/debian ext4 defaults 0 2
**** 請注意上述的 UUID 為 deb_mirror.img 之第一個分割區之 UUID ***
要取得此 UUID,請將 deb_mirror.img 連接到 /dev/loop1,再執行
# blkid /dev/loop1 \Enter
來取得其 UUID。
2. 啟動 apache 伺服器
要手動啟動 apache 伺服器之指令如下:
# /etc/init.d/apache2 restart \Enter
[ ok ] Restarting web server: apache2 ... waiting .
3. 修改 apache 伺服器至我們的 /srv/ftp 目錄
請以 root 權限編輯 /etc/apache2/sites-enabled/000-default.conf 這個檔案,將底下片段:
DocumentRoot /var/www/html
改成
DocumentRoot /srv/ftp
改完存檔後,再重新啟動 apache2 服務。
4 檢查 apache 伺服器是否啟動
請在實體機器上以瀏灠器打開 192.168.10.254 以及 192.168.10.254/debian 來觀看是否有內容。
5. trouble shooting
如果以瀏灠器打開 http://192.168.10.254,但是出現底下錯誤的話:
Apache/2.4.10 (Debian) Server at 192.168.10.254 Port 80 表示我們要作底下修改: 請編緝 /etc/apache2/apache2.conf 找到底下片段: #<Directory /srv/>
# Options Indexes FollowSymLinks
# AllowOverride None
# Require all granted
#</Directory> 將註解符號 # 全部清除,變成底下的樣子: <Directory /srv/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory> 之後,再重新啟動 apache2 服務,並觀察是否可以連上。
在 Debian 作業系統底下要架設 Apache 伺服器必須先安裝 apache2 套件,指令如下所示:
# apt-get install apache2 \Enter
2. 啟動 apache 伺服器
要手動啟動 apache 伺服器之指令如下:
# /etc/init.d/apache2 restart \Enter
[ ok ] Restarting web server: apache2 ... waiting .
3. 修改 apache 伺服器至我們的 /srv/ftp 目錄
請以 root 權限編輯 /etc/apache2/sites-enabled/000-default.conf 這個檔案,將底下片段:
DocumentRoot /var/www/html
改成
DocumentRoot /srv/ftp
改完存檔後,再重新啟動 apache2 服務。
4 檢查 apache 伺服器是否啟動
請在實體機器上以瀏灠器打開 192.168.10.254 以及 192.168.10.254/debian 來觀看是否有內容。
5. trouble shooting
如果以瀏灠器打開 http://192.168.10.254,但是出現底下錯誤的話:
Forbidden
You don't have permission to access / on this server.Apache/2.4.10 (Debian) Server at 192.168.10.254 Port 80 表示我們要作底下修改: 請編緝 /etc/apache2/apache2.conf 找到底下片段: #<Directory /srv/>
# Options Indexes FollowSymLinks
# AllowOverride None
# Require all granted
#</Directory> 將註解符號 # 全部清除,變成底下的樣子: <Directory /srv/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory> 之後,再重新啟動 apache2 服務,並觀察是否可以連上。
2014年4月10日 星期四
設定 iptable 規則以便 PXE Server 連上網路
底下操作請全部以 root 進行
0 請設定 ipv4 forward,指令如下:
echo "1" > /proc/sys/net/ipv4/ip_forward
我們可以執行底下指令來確認設定是否有成功:
cat /proc/sys/net/ipv4/ip_forward
其輸出應為 "1"
1. 清除所有 iptable rules
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
2. 設定新的 iptable rules
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j MASQUERADE
設定完畢後使用 pxe server 來作 apt-get update/apt-get upgrade/apt-get install PKG 來看看是否能連上鏡像站,若無法連上鏡像站的話請檢查 DNS 伺服器設定。
0 請設定 ipv4 forward,指令如下:
echo "1" > /proc/sys/net/ipv4/ip_forward
我們可以執行底下指令來確認設定是否有成功:
cat /proc/sys/net/ipv4/ip_forward
其輸出應為 "1"
1. 清除所有 iptable rules
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
2. 設定新的 iptable rules
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j MASQUERADE
設定完畢後使用 pxe server 來作 apt-get update/apt-get upgrade/apt-get install PKG 來看看是否能連上鏡像站,若無法連上鏡像站的話請檢查 DNS 伺服器設定。
建置 DHCP 伺服器
要讓 PXE Server 可以指派 IP 給 192.168.10.0/24 網域中的所(有)電腦,必須先安裝DHCP 伺服器並進行設定才行,首先要安裝 isc-dhcp-server 套件,請執行底下指令以進行安裝:
# apt-get install isc-dhcp-server \Enter
1. 設定 DHCP 伺服器
DHCP 伺服器之設定檔位置在 /etc/dhcp/dhcpd.conf,我們希望 DHCP 伺服器所給定的 IP 範圍限制在 192.168.10.100 ∼ 192.168.10.200 間,其它 IP 由我們手動設定使用,其內容如列表 3.8 所示:
option domain−name " example . org " ;
option domain−name−servers 8.8.8.8;
default−lease−time 600;
max−lease−time 7200;
allow booting ;
subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.100 192.168.10.200;
option subnet−mask 255.255.255.0;
option broadcast−address 192.168.10.255;
option routers 192.168.10.1;
option domain−name−servers 8.8.8.8;
next−server 192.168.10.254;
filename " pxelinux .0 " ;
}
因此我們的 IP 分配如下:
192.168.10.1 -> 閘道 (br10)
192.168.10.2 ~ 192.168.10.99 -> 自定 IP
192.168.10.100 ~ 192.168.10.200 -> DHCP 自動分配 IP
192.168.10.201 ~ 191.168.10.253 -> 自定 IP
192.168.10.254 -> PXE Server
接著請設定 /etc/default/isc-dhcp-server 這個檔案,把底下片段
INTERFACESv4=:
修改為
INTERFACESv4="ens3"
其中 ens3 是你的網路卡。
2. 啟動 DHCP 伺服器
要啟動 DHCP 伺服器,請執行底下指令:
# /etc/init.d/isc-dhcp-server restart \Enter
其輸出如下:
[ ok ] Stopping ISC DHCP server: dhcpd.
[ ok ] Starting ISC DHCP server: dhcpd
請注意第 3 行的訊息告訴我們 dhcpd 已被啟動,如果前面的設定都沒(有)作錯的話,理論上這個 DHCP 伺服器已經可以分配 IP 給 192.168.10.0/24 網段中之其它電腦了
3. 檢查 DHCP 伺服器是否正常動作
為了檢查 DHCP 伺服器是否有正常動作,我們可以檢視 DHCP 的設定檔,其位置在 /var/log/syslog。如果 DHCP 伺服器有正常動作的話,應該會(有)底下片段:
syslog:Mar 27 03:36:46 pxeserver dhcpd: DHCPDISCOVER from de:ad:be:ef:ec:a8 via eth0
syslog:Mar 27 03:36:47 pxeserver dhcpd: DHCPOFFER on 192.168.10.103 to de:ad:be:ef:ec:a8 via eth0
syslog:Mar 27 03:36:49 pxeserver dhcpd: DHCPREQUEST for 192.168.10.103 (192.168.10.254) from de:ad:be:ef:ec:a8 via eth0
syslog:Mar 27 03:36:49 pxeserver dhcpd: DHCPACK on 192.168.10.103 to de:ad:be:ef:ec:a8 via eth0
4.讓 DHCP 伺服器開機後就會啟動
# update-rc.d isc-dhcp-server defaults \Enter
update-rc.d: using dependency based boot sequencing
# apt-get install isc-dhcp-server \Enter
1. 設定 DHCP 伺服器
DHCP 伺服器之設定檔位置在 /etc/dhcp/dhcpd.conf,我們希望 DHCP 伺服器所給定的 IP 範圍限制在 192.168.10.100 ∼ 192.168.10.200 間,其它 IP 由我們手動設定使用,其內容如列表 3.8 所示:
option domain−name " example . org " ;
option domain−name−servers 8.8.8.8;
default−lease−time 600;
max−lease−time 7200;
allow booting ;
subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.100 192.168.10.200;
option subnet−mask 255.255.255.0;
option broadcast−address 192.168.10.255;
option routers 192.168.10.1;
option domain−name−servers 8.8.8.8;
next−server 192.168.10.254;
filename " pxelinux .0 " ;
}
因此我們的 IP 分配如下:
192.168.10.1 -> 閘道 (br10)
192.168.10.2 ~ 192.168.10.99 -> 自定 IP
192.168.10.100 ~ 192.168.10.200 -> DHCP 自動分配 IP
192.168.10.201 ~ 191.168.10.253 -> 自定 IP
192.168.10.254 -> PXE Server
接著請設定 /etc/default/isc-dhcp-server 這個檔案,把底下片段
INTERFACESv4=:
修改為
INTERFACESv4="ens3"
其中 ens3 是你的網路卡。
2. 啟動 DHCP 伺服器
要啟動 DHCP 伺服器,請執行底下指令:
# /etc/init.d/isc-dhcp-server restart \Enter
其輸出如下:
[ ok ] Stopping ISC DHCP server: dhcpd.
[ ok ] Starting ISC DHCP server: dhcpd
請注意第 3 行的訊息告訴我們 dhcpd 已被啟動,如果前面的設定都沒(有)作錯的話,理論上這個 DHCP 伺服器已經可以分配 IP 給 192.168.10.0/24 網段中之其它電腦了
3. 檢查 DHCP 伺服器是否正常動作
為了檢查 DHCP 伺服器是否有正常動作,我們可以檢視 DHCP 的設定檔,其位置在 /var/log/syslog。如果 DHCP 伺服器有正常動作的話,應該會(有)底下片段:
syslog:Mar 27 03:36:46 pxeserver dhcpd: DHCPDISCOVER from de:ad:be:ef:ec:a8 via eth0
syslog:Mar 27 03:36:47 pxeserver dhcpd: DHCPOFFER on 192.168.10.103 to de:ad:be:ef:ec:a8 via eth0
syslog:Mar 27 03:36:49 pxeserver dhcpd: DHCPREQUEST for 192.168.10.103 (192.168.10.254) from de:ad:be:ef:ec:a8 via eth0
syslog:Mar 27 03:36:49 pxeserver dhcpd: DHCPACK on 192.168.10.103 to de:ad:be:ef:ec:a8 via eth0
4.讓 DHCP 伺服器開機後就會啟動
# update-rc.d isc-dhcp-server defaults \Enter
update-rc.d: using dependency based boot sequencing
tftp 伺服器建置
2019/11/11 修訂
我們所架設的 PXE 伺服器主要提供同網域 (192.168.10.0/24) 上其它主機能透過網路開機,為了提供網路開機的功能,必須在 PXE 伺服器上安裝 DHCP 伺服器、TFTP 伺服器,底下介紹如何安裝 TFTP 伺服器:
請執行底下指令以安裝 tftp 套件:
# apt-get install tftpd-hpa \Enter
要設定 tftp 伺服器可以提供網路開機的服務必須先下載 X86_64 之 netboot 檔案,下載位置如底下所示:
http://192.168.10.254/debian/dists/buster/main/installer-amd64/current/images/netboot/
ftp://ftp.tw.debian.org/debian/dists/buster/main/installer-amd64/current/images/netboot/
下載完畢後請以 root 權限將 netboot.tar.gz 解開在 /srv/tftp 目錄,指令如下:
# tar xfva netboot.tar.gz -C /srv/tftp \Enter
解完之後在 /srv/tftp 目錄下會有底下檔案:
root@pxe:/srv/tftp# ls -l
total 18908
drwxrwxr-x 3 root root 4096 Mar 30 06:03 debian-installer
lrwxrwxrwx 1 root root 47 Mar 30 06:03 ldlinux.c32 -> debian-installer/amd64/boot-screens/ldlinux.c32
-rw-r--r-- 1 root root 19351686 May 6 10:39 netboot.tar.gz
lrwxrwxrwx 1 root root 33 Mar 30 06:03 pxelinux.0 -> debian-installer/amd64/pxelinux.0
lrwxrwxrwx 1 root root 35 Mar 30 06:03 pxelinux.cfg -> debian-installer/amd64/pxelinux.cfg
-rw-rw-r-- 1 root root 64 Mar 30 06:03 version.info
如果沒有問題的話,接下來就可以準備啟動 tftp 伺服器了。
請執行底下指令來啟動 tftp 伺服器:
# /etc/init.d/tftpd-hpa restart \Enter
[ ok ] Restarting HPA's tftpd: in.tftpd.
這表示目前 tftp 已經啟動成功了,如果希望設定 tftp 伺服器於下次開機後自動執行,請使用 update-rc.d 來進行設定,如底下所示:
# update-rc.d tftpd-hpa defaults \Enter
其輸出如下所示:
update-rc.d: using dependency based boot sequencing
update-rc.d: warning: default stop runlevel arguments (0 1 6) do not match tftpd
-hpa Default-Stop values (1)
啟動完畢後,我們新增一個 buildlinux1.sh 來測試 tftp 伺服器是否已可正常使用,其內容如下:
# IP=192.168.10.254 pxeserver.example.org
CPU=host
SMP=2
MEMORY=1024
HDA=linux1.img
HDA_SIZE=10G
MAC="DE:AD:BE:CF:EC:B9"
BRIDGE=br10
CDROM=/opt/iso/debian-8.3.0-amd64-CD-1.iso
[ -f $HDA ] && rm $HDA
qemu-img create $HDA $HDA_SIZE -f qcow2
qemu-system-x86_64 -enable-kvm -cpu $CPU -smp $SMP -m $MEMORY \
-drive file=$HDA,format=qcow2 \
-boot n \
-net nic,macaddr=$MAC -net bridge,br=$BRIDGE
新增完畢後,請執行:
~/virtualclassroom$ sh buildlinux1.sh
理論此時可以看到網路開機的畫面,然後可以開始裝機,這是我們第一台 linux 測試機器,其名稱為 linux1.my.com。
我們所架設的 PXE 伺服器主要提供同網域 (192.168.10.0/24) 上其它主機能透過網路開機,為了提供網路開機的功能,必須在 PXE 伺服器上安裝 DHCP 伺服器、TFTP 伺服器,底下介紹如何安裝 TFTP 伺服器:
請執行底下指令以安裝 tftp 套件:
# apt-get install tftpd-hpa \Enter
要設定 tftp 伺服器可以提供網路開機的服務必須先下載 X86_64 之 netboot 檔案,下載位置如底下所示:
http://192.168.10.254/debian/dists/buster/main/installer-amd64/current/images/netboot/
ftp://ftp.tw.debian.org/debian/dists/buster/main/installer-amd64/current/images/netboot/
下載完畢後請以 root 權限將 netboot.tar.gz 解開在 /srv/tftp 目錄,指令如下:
# tar xfva netboot.tar.gz -C /srv/tftp \Enter
解完之後在 /srv/tftp 目錄下會有底下檔案:
root@pxe:/srv/tftp# ls -l
total 18908
drwxrwxr-x 3 root root 4096 Mar 30 06:03 debian-installer
lrwxrwxrwx 1 root root 47 Mar 30 06:03 ldlinux.c32 -> debian-installer/amd64/boot-screens/ldlinux.c32
-rw-r--r-- 1 root root 19351686 May 6 10:39 netboot.tar.gz
lrwxrwxrwx 1 root root 33 Mar 30 06:03 pxelinux.0 -> debian-installer/amd64/pxelinux.0
lrwxrwxrwx 1 root root 35 Mar 30 06:03 pxelinux.cfg -> debian-installer/amd64/pxelinux.cfg
-rw-rw-r-- 1 root root 64 Mar 30 06:03 version.info
如果沒有問題的話,接下來就可以準備啟動 tftp 伺服器了。
請執行底下指令來啟動 tftp 伺服器:
# /etc/init.d/tftpd-hpa restart \Enter
[ ok ] Restarting HPA's tftpd: in.tftpd.
這表示目前 tftp 已經啟動成功了,如果希望設定 tftp 伺服器於下次開機後自動執行,請使用 update-rc.d 來進行設定,如底下所示:
# update-rc.d tftpd-hpa defaults \Enter
其輸出如下所示:
update-rc.d: using dependency based boot sequencing
update-rc.d: warning: default stop runlevel arguments (0 1 6) do not match tftpd
-hpa Default-Stop values (1)
啟動完畢後,我們新增一個 buildlinux1.sh 來測試 tftp 伺服器是否已可正常使用,其內容如下:
# IP=192.168.10.254 pxeserver.example.org
CPU=host
SMP=2
MEMORY=1024
HDA=linux1.img
HDA_SIZE=10G
MAC="DE:AD:BE:CF:EC:B9"
BRIDGE=br10
CDROM=/opt/iso/debian-8.3.0-amd64-CD-1.iso
[ -f $HDA ] && rm $HDA
qemu-img create $HDA $HDA_SIZE -f qcow2
qemu-system-x86_64 -enable-kvm -cpu $CPU -smp $SMP -m $MEMORY \
-drive file=$HDA,format=qcow2 \
-boot n \
-net nic,macaddr=$MAC -net bridge,br=$BRIDGE
新增完畢後,請執行:
~/virtualclassroom$ sh buildlinux1.sh
理論此時可以看到網路開機的畫面,然後可以開始裝機,這是我們第一台 linux 測試機器,其名稱為 linux1.my.com。
虛擬電腦教室所需之 shell script 及檔案定義
∼/ .................................................................... 家目錄
virtualclassroom/......................................虛擬電腦教室目錄
+debian-7.4.0-amd64-CD-1.iso....................Debian X86_64 ISO 檔
+pxeserver.img .................................... PXE Server 之影像檔
+deb_mirror.img........儲存 debian 套件之影像檔,PXE Server 之 sdb
+linux.img..........................................Linux 主機之影像檔
+buildpxe.sh..............安裝 PXE Server 之 shell script,列表 3.6
+buildlinux.sh ........... 安裝 Linux 主機之 shell script,列表 3.10
+runpxe.sh.......執行 PXE Server 虛擬機器之 shell script,列表 3.7
+runlinux.sh ........... 執行 Linux 虛擬主機之 shell script,列表 ??
-----------------------buildpxe.sh-------------------------------------------
# IP=192.168.2.254 pxeserver.example.org
CPU=host
SMP=2
MEMORY=1024
HDA=pxeserver.img
MAC="DE:AD:BE:CF:EC:B7"
BRIDGE=br10
CDROM=/opt/iso/debian-7.4.0-amd64-CD-1.iso
qemu-system-x86_64 -enable-kvm -cpu $CPU -smp $SMP -m $MEMORY \
-hda $HDA \
-cdrom $CDROM -boot d \
-net nic,macaddr=$MAC -net bridge,br=$BRIDGE
----------------------------------------------------------------------------------------
---------------------runpxe.sh-------------------------------------------------------
# IP=192.168.2.254
# PXE Server
CPU=host
SMP=2
MEMORY=1024
HDA=pxeserver.img
HDB=deb_mirror.img
MAC="DE:AD:BE:CF:EC:B7"
BRIDGE=br10
CDROM=/opt/iso/debian-7.4.0-amd64-CD-1.iso
qemu-system-x86_64 -enable-kvm -cpu $CPU -smp $SMP -m $MEMORY \
-hda $HDA \
-hdb $HDB \
-cdrom $CDROM \
-net nic,macaddr=$MAC -net bridge,br=$BRIDGE
----------------------------------------------------------------------------------------------------
-------------------------buildlinux.sh----------------------------------------------------------
CPU=host
SMP=2
MEMORY=1024
HDA=linux.img
MAC="DE:AD:BE:EF:EC:A8"
BRIDGE=br10
CDROM=/opt/iso/debian-7.4.0-amd64-CD-1.iso
qemu-system-x86_64 -enable-kvm -cpu $CPU -smp $SMP -m $MEMORY \
-hda $HDA \
-net nic,macaddr=$MAC -net bridge,br=$BRIDGE \
-bootp tftp://192.168.10.254/pxelinux.0 \
-tftp /srv/tftp \
-------------------------------------------------------------------------------------------------------
------------------runlinux.sh---------------------------------------------------------------------
CPU=host
SMP=2
MEMORY=1024
HDA=linux.img
MAC="DD:AD:BE:EF:EC:B6"
BRIDGE=br10
qemu-system-x86_64 -enable-kvm -cpu $CPU -smp $SMP -m $MEMORY \
-hda $HDA \
-net nic,macaddr=$MAC -net bridge,br=$BRIDGE
---------------------------------------------------------------------------------------------------------
virtualclassroom/......................................虛擬電腦教室目錄
+debian-7.4.0-amd64-CD-1.iso....................Debian X86_64 ISO 檔
+pxeserver.img .................................... PXE Server 之影像檔
+deb_mirror.img........儲存 debian 套件之影像檔,PXE Server 之 sdb
+linux.img..........................................Linux 主機之影像檔
+buildpxe.sh..............安裝 PXE Server 之 shell script,列表 3.6
+buildlinux.sh ........... 安裝 Linux 主機之 shell script,列表 3.10
+runpxe.sh.......執行 PXE Server 虛擬機器之 shell script,列表 3.7
+runlinux.sh ........... 執行 Linux 虛擬主機之 shell script,列表 ??
-----------------------buildpxe.sh-------------------------------------------
# IP=192.168.2.254 pxeserver.example.org
CPU=host
SMP=2
MEMORY=1024
HDA=pxeserver.img
MAC="DE:AD:BE:CF:EC:B7"
BRIDGE=br10
CDROM=/opt/iso/debian-7.4.0-amd64-CD-1.iso
qemu-system-x86_64 -enable-kvm -cpu $CPU -smp $SMP -m $MEMORY \
-hda $HDA \
-cdrom $CDROM -boot d \
-net nic,macaddr=$MAC -net bridge,br=$BRIDGE
----------------------------------------------------------------------------------------
---------------------runpxe.sh-------------------------------------------------------
# IP=192.168.2.254
# PXE Server
CPU=host
SMP=2
MEMORY=1024
HDA=pxeserver.img
HDB=deb_mirror.img
MAC="DE:AD:BE:CF:EC:B7"
BRIDGE=br10
CDROM=/opt/iso/debian-7.4.0-amd64-CD-1.iso
qemu-system-x86_64 -enable-kvm -cpu $CPU -smp $SMP -m $MEMORY \
-hda $HDA \
-hdb $HDB \
-cdrom $CDROM \
-net nic,macaddr=$MAC -net bridge,br=$BRIDGE
----------------------------------------------------------------------------------------------------
-------------------------buildlinux.sh----------------------------------------------------------
CPU=host
SMP=2
MEMORY=1024
HDA=linux.img
MAC="DE:AD:BE:EF:EC:A8"
BRIDGE=br10
CDROM=/opt/iso/debian-7.4.0-amd64-CD-1.iso
qemu-system-x86_64 -enable-kvm -cpu $CPU -smp $SMP -m $MEMORY \
-hda $HDA \
-net nic,macaddr=$MAC -net bridge,br=$BRIDGE \
-bootp tftp://192.168.10.254/pxelinux.0 \
-tftp /srv/tftp \
-------------------------------------------------------------------------------------------------------
------------------runlinux.sh---------------------------------------------------------------------
CPU=host
SMP=2
MEMORY=1024
HDA=linux.img
MAC="DD:AD:BE:EF:EC:B6"
BRIDGE=br10
qemu-system-x86_64 -enable-kvm -cpu $CPU -smp $SMP -m $MEMORY \
-hda $HDA \
-net nic,macaddr=$MAC -net bridge,br=$BRIDGE
---------------------------------------------------------------------------------------------------------
如何使用無線網卡連上網路
如何使用無線網卡連上網路
1. 關閉有線網路之 default route
請先以 route 指令來觀看目前的 default route 為何,其指令如下:
# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
link-local * 255.255.0.0 U 1000 0 0 eth0
我們可以看到目前預設的 route 是 eth0,請將此 default route 刪除,指令如下:
route del default eth0
接著再執行一次 route 來觀看結果,如底下所示:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
link-local * 255.255.0.0 U 1000 0 0 eth0
2. 將無線網卡啟動
通常無線網卡是 wlan0 這個裝置,如果不確定的話請觀看 /etc/udev/rules.d/70-persistent-net.rules 這個檔案,找到以下片段:
# PCI device 0x168c:/sys/devices/pci0000:00/0000:00:1c.1/0000:03:00.0 (ath9k)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="94:39:e5:62:ac:10", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="wlan*", NAME="wlan0"
確認為 wlan0 之後,請執行底下指令啟動無線網卡:
ifconfig wlan0 up
3. 使用無線網卡掃瞄基地台
一旦啟動無線網卡後,我們可以執行底下指令來掃瞄基地台:
# iwlist wlan0 scanning
其輸出如下所示:
Wlan0 Scan completed :
Cell 01 - Address: 00:E0:4C:A5:EB:1A
Channel:6
Frequency:2.437 GHz (Channel 6)
Quality=64/70 Signal level=-46 dBm
Encryption key:off
ESSID:"stut_p503"
Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
9 Mb/s; 12 Mb/s; 18 Mb/s
Bit Rates:24 Mb/s; 36 Mb/s; 48 Mb/s; 54 Mb/s
..(中間省略)
Cell 02 - Address: 00:12:0E:BA:7A:AE
Channel:6
Frequency:2.437 GHz (Channel 6)
Quality=35/70 Signal level=-75 dBm
Encryption key:off
ESSID:"stut_s412@"
Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
9 Mb/s; 12 Mb/s; 18 Mb/s
Bit Rates:24 Mb/s; 36 Mb/s; 48 Mb/s; 54 Mb/s
..(中間省略)
Cell 03 - Address: 90:F6:52:B3:E4:9A
Channel:4
Frequency:2.427 GHz (Channel 4)
Quality=30/70 Signal level=-80 dBm
Encryption key:on
ESSID:"S611-AP"
Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
9 Mb/s; 12 Mb/s; 18 Mb/s
Bit Rates:24 Mb/s; 36 Mb/s; 48 Mb/s; 54 Mb/s
..(中間省略)
我們會發現無線網卡掃瞄到很多不同的 ESSID,這些 ESSID 即是無線網卡所掃瞄到的基地台,無線基地台分成兩個種類:
A. 需要密碼才能連線
B. 無需密碼即能連線
底下分別說明:
4. 連線需要密碼之無線基地台
假設我們有一個基地台名為 HAHAHA,其連線密碼為 0123456789 的話,則我們需要執行底下指令才能連線,建議寫成 shell script:
----------------------------wifi-on.sh--------------------------------
ifconfig eth0 down
wpa_passphrase "HAHAHA" 0123456790 > /etc/wpa_supplicant/WIFI.conf
wpa_supplicant -BDwext -iwlan0 -c/etc/wpa_supplicant/WIFI.conf
dhclient -v wlan0
route add default wlan0
echo "nameserver 8.8.8.8" > /etc/resolv.conf
-----------------------------------------------------------------------
5. 連線無需密碼之基地台
同上,如果無線基地台無需密碼即可連線的話,請執行底下指令即可:
iwconfig wlan0 essid "HAHAHA"
dhclient -v wlan0
6. 設定 default route
接下來請執行 route 檢查 wlan0 是否為 default route,如下所示:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 10.22.127.254 0.0.0.0 UG 0 0 0 wlan0
10.22.120.0 * 255.255.248.0 U 0 0 0 wlan0
如果 wlan0 目前仍不是 default route,我們要手動將 wlan0 設定為 default route,指令如下:
# route add default wlan0
作完後請再執行 route 指令確認即可。
1. 關閉有線網路之 default route
請先以 route 指令來觀看目前的 default route 為何,其指令如下:
# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
link-local * 255.255.0.0 U 1000 0 0 eth0
我們可以看到目前預設的 route 是 eth0,請將此 default route 刪除,指令如下:
route del default eth0
接著再執行一次 route 來觀看結果,如底下所示:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
link-local * 255.255.0.0 U 1000 0 0 eth0
2. 將無線網卡啟動
通常無線網卡是 wlan0 這個裝置,如果不確定的話請觀看 /etc/udev/rules.d/70-persistent-net.rules 這個檔案,找到以下片段:
# PCI device 0x168c:/sys/devices/pci0000:00/0000:00:1c.1/0000:03:00.0 (ath9k)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="94:39:e5:62:ac:10", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="wlan*", NAME="wlan0"
確認為 wlan0 之後,請執行底下指令啟動無線網卡:
ifconfig wlan0 up
3. 使用無線網卡掃瞄基地台
一旦啟動無線網卡後,我們可以執行底下指令來掃瞄基地台:
# iwlist wlan0 scanning
其輸出如下所示:
Wlan0 Scan completed :
Cell 01 - Address: 00:E0:4C:A5:EB:1A
Channel:6
Frequency:2.437 GHz (Channel 6)
Quality=64/70 Signal level=-46 dBm
Encryption key:off
ESSID:"stut_p503"
Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
9 Mb/s; 12 Mb/s; 18 Mb/s
Bit Rates:24 Mb/s; 36 Mb/s; 48 Mb/s; 54 Mb/s
..(中間省略)
Cell 02 - Address: 00:12:0E:BA:7A:AE
Channel:6
Frequency:2.437 GHz (Channel 6)
Quality=35/70 Signal level=-75 dBm
Encryption key:off
ESSID:"stut_s412@"
Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
9 Mb/s; 12 Mb/s; 18 Mb/s
Bit Rates:24 Mb/s; 36 Mb/s; 48 Mb/s; 54 Mb/s
..(中間省略)
Cell 03 - Address: 90:F6:52:B3:E4:9A
Channel:4
Frequency:2.427 GHz (Channel 4)
Quality=30/70 Signal level=-80 dBm
Encryption key:on
ESSID:"S611-AP"
Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
9 Mb/s; 12 Mb/s; 18 Mb/s
Bit Rates:24 Mb/s; 36 Mb/s; 48 Mb/s; 54 Mb/s
..(中間省略)
我們會發現無線網卡掃瞄到很多不同的 ESSID,這些 ESSID 即是無線網卡所掃瞄到的基地台,無線基地台分成兩個種類:
A. 需要密碼才能連線
B. 無需密碼即能連線
底下分別說明:
4. 連線需要密碼之無線基地台
假設我們有一個基地台名為 HAHAHA,其連線密碼為 0123456789 的話,則我們需要執行底下指令才能連線,建議寫成 shell script:
----------------------------wifi-on.sh--------------------------------
ifconfig eth0 down
wpa_passphrase "HAHAHA" 0123456790 > /etc/wpa_supplicant/WIFI.conf
wpa_supplicant -BDwext -iwlan0 -c/etc/wpa_supplicant/WIFI.conf
dhclient -v wlan0
route add default wlan0
echo "nameserver 8.8.8.8" > /etc/resolv.conf
-----------------------------------------------------------------------
5. 連線無需密碼之基地台
同上,如果無線基地台無需密碼即可連線的話,請執行底下指令即可:
iwconfig wlan0 essid "HAHAHA"
dhclient -v wlan0
6. 設定 default route
接下來請執行 route 檢查 wlan0 是否為 default route,如下所示:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 10.22.127.254 0.0.0.0 UG 0 0 0 wlan0
10.22.120.0 * 255.255.248.0 U 0 0 0 wlan0
如果 wlan0 目前仍不是 default route,我們要手動將 wlan0 設定為 default route,指令如下:
# route add default wlan0
作完後請再執行 route 指令確認即可。
訂閱:
文章 (Atom)