2010年1月10日

Ubuntu Linux 最佳化網路卡 MTU 與關掉 IPv6

這篇可能需要稍微要有 TCP / IP 與 OSI 七層模型的基礎,還有網路傳輸基本概念,可能才會比較清楚自己在改些什麼。

sudo ifconfig eth0 mtu 9000
# 修改 eth0 網卡的 MTU 為 9000

ping -c 1 -s -M do
# -M do 在 ICMP 上標示不要 Fragmentation。路由器就不會切割封包
# -s 參數為 ICMP payload 大小,值為 MTU 剪掉 ICMP 表頭大小 28
# 若 MTU 大小為 1500 則 payload byte 就是 1472

將 MTU 值寫入開機設定檔
sudo vi /etc/network/interfaces # 編輯網路設定檔
iface eth0 inet static # 設定 eth0 網路卡為固定 IP
pre-up /sbin/ifconfig eth0 mtu 9000 # 設定 eth0 MTU
address 192.168.1.1
netmask 255.255.255.0
gateway 192.168.1.254

iface eth1 inet dhcp # 設定 eth1 網路卡為 DHCP
pre-up /sbin/ifconfig eth1 mtu 9000 # 設定 eth1 MTU

關閉 IPv6 支援
sudo vi /etc/modprobe.d/blacklist
加入 blacklist ipv6 即可

Ubuntu Linux 網路相關指令速記

/etc/network/interfaces
# 設定 IP, netmask, Gateway 或使用 DHCP 網路組態

/etc/hostname
# 主機名稱設定

/etc/resolv.conf
# 設定 DNS 伺服器和本機的網域名稱或網域查詢列表

/etc/hosts
# 建立靜態主機名稱與 IP 對應

sudo apt-get install network-manager-gnome
# 安裝圖形化網路管理介面 ( Gnome )

sudo apt-get install knetworkmanager
# 安裝圖形化網路管理介面 ( KDE )

netstat
# -a 列出所有連線,包含 TCP、UDP 和 Socket 通訊
# -l 列出主機在 Listen 的連線,通常為伺服器軟體
# -n 列出 netstat 時不做 IP 反查,速度較快
# -p 列出使用該連線的軟體名稱和 PID
# -t 列出 TCP 連線
# -u 列出 UDP 連線

ifconfig
# option: netmask, broadcast, mtu, IP address
# add UP or DOWN to enable or disable interface
# ifconfig eth0 hw ether AA:BB:CC:11:22:33 to change MAC address

sudo ifconfig eth0 192.168.1.1 netmask 255.255.255.0
# 設定固定 IP 與子網路遮罩

sudo route add default gw 192.168.1.254
# 設定預設閘道

route -n
sudo route del -net 0.0.0.0 gw 192.168.0.1
route -n
sudo route add -net  default gw 192.168.0.1 dev eth0
route -n
# 移除並新增路由表範例

sudo dhclient eth0
# 在網卡 eth0 上取得 IP, netmask, gateway and DNS

sudo vi /etc/network/interfaces # 設定網路範例

auto lo # 啟用 Loopback 設備。請勿變更!
iface lo inet loopback # 啟用 Loopback 設備。請勿變更!

auto eth0 # 啟用 eth0 網路卡
auto eth1 # 啟用 eth1 網路卡

iface eth0 inet static # 設定 eth0 網卡為固定 IP
address 192.168.1.1 # 設定 IP 位置
netmask 255.255.255.0 # 設定子網路遮罩
gateway 192.168.1.254 # 設定預設閘道
network 192.168.1.0 # 設定網路,可有可無
broadcast 192.168.1.255 # 設定廣播,可有可無

iface eth1 inet dhcp # 設定 eth1 網卡從 DHCP Server 取得 IP

sudo /etc/init.d/networking restart
# 重新啟用網路介面

sudo ifdown eth0
# 關閉 eth0 裝置

sudo ifup eth0
# 啟用 eth0 裝置並從 interfaces 讀取設定檔

sudo vi /etc/resolv.conf 編輯 resolv.conf 設定檔


nameserver 8.8.8.8 # 第一台 DNS 主機
nameserver 8.8.4.4 # 第二台 DNS 主機

search yzu.edu.tw edu.tw
# 網域優先搜尋。假設 ping www 或連線 www 則會自動嘗試 DNS 正解 www.yzu.edu.tw,若存在則直接回傳 IP 位置,若不存在則再嘗試 www.edu.tw。故連線同網域主機常常用到。缺點是若要連線 www.gmail.com 則首先會嘗試 DNS 正解 www.gmail.com.yzu.edu.tw,然後依序查詢下去,導致效能低落。

domain yzu.edu.tw
# 用法幾乎與 search 一樣,不過他只能設定一個,也就是主機本身的網域,不能含有其他。查詢的規則和 search 一樣,會把查詢的網址加上 domain 後所設定的網域,最後才會查詢到您的網址。

sudo vi /etc/hostname
# 設定主機名稱

sudo hostname -F /etc/hostname
# 立即更新系統 hostname

hostname -f
# 查詢系統的 FQDN ( 出錯時通常為 hosts 或 resolv.conf 沒設定好 )

Ubuntu Linux 無線網路設定筆記

Ubuntu Desktop 中的圖形化介面設定無線網路已十分完善,本篇將著重於 console 下如何設定無線網路。

iwconfig
# 測試無線網路是否成功驅動

lspci
# 查詢無線網路晶片組

iwconfig wlan0 txpower on
# 開啟無線網路電源

sudo iwlist eth0 scanning
# 查詢可用的無線網路


sudo iwconfig eth0 up
sudo iwconfig eth0 essid key 12345678
# 啟用 eth0 無線網卡,12345678 為 WEP 密碼

sudo dhclient eth0
# 透過 DHCP 自動取得 IP

sudo ifconfig eth0 192.168.0.1 netmask 255.255.255.0 # 設定 IP 與 netmask
sudo route add default gw 192.168.0.254 # 設定預設閘道


vi /etc/network/interfaces # 直接設定無線網路組態到 interfaces
auto eth0 # 啟用無線網路
iface eth0 inet static # 設定 eth0 為固定 IP 若要自動取得請改成 dhcp
wireless-essid # 設定無線網路名稱
wireless-key # 設定無線網路密碼
address 192.168.0.1
netmask 255.255.255.0
gateway 192.168.0.1

若要使用 DHCP 則最下面三行可省略。

Ubuntu Linux 透過 ADSL 上網

目前 Ubuntu 的最新發行版 9.10 圖形化介面中的 DSL 撥號程式仍然有 BUG
使用 console 來撥號是唯一使用 ADSL 連線上網的方法。

sudo pppoeconf
# 文字介面 ADSL PPPOE 撥號連線

plog
# 查詢 PPPOE 狀態

sudo poff
# 中斷 PPPOE 連線

sudo pon dsl-provider
# 啟用 PPPOE 連線

Ubuntu Linux 簡單的 Shell 環境變數設定

看完書才知道 Shell 的博大精深與變幻莫測阿,這邊只是一個小小設定的紀錄,更多的詳細用法是無法在一篇文章內說完的,去買書吧XD"

PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
# Ubuntu Linux 預設環境變數

echo $PS1
# 印出 PS1 環境變數 ( \u 表示 username \h 表示 hostname \w 表示 folder )

PS1='\[\033[1;33m\]\u\[\033[1;37m\]@\[\033[1;32m\]\h\[\033[1;37m\]:\[\033[1;31m\]\w\[\033[1;36m\]\$ \[\033[0m\]'

# 彩色 PS1 環境變數 ( 因排版限制,本處中間無斷行 )

vi ~/.bashrc or vi /home/user/.bashrc
# 編輯個人的 bashrc 可使每次打開 shell 都自動定義好色彩

搜尋此網誌