顯示具有 網路設定 標籤的文章。 顯示所有文章
顯示具有 網路設定 標籤的文章。 顯示所有文章

2025年9月14日 星期日

橋接 UEFI 虛擬機, 2025 network manager 版

現在很少開虛擬機, 如果有, 也都是用 kvm -pflash ... 指令簡單用一下我的 UEFI 隨身碟。 今天需要讓區網裡的機器看見虛擬機, 所以必須開 virt-manager。 太久沒用, 都快忘記怎麼用了。 花了一小時挖出自己散落在好幾篇的舊設定, 終於慢慢想起來, 趕快記錄下來:

2024年6月1日 星期六

原來 docker 會破壞 virt-manager 虛擬機的 bridge 連線

想要開一部虛擬機來玩古典遊戲機, 先用 docker 測試, 又改用 virt-manager 測試。 結果幾天前原本可以用的 虛擬機 bridge 連線 突然就壞掉了。 弄了半個早上, 還問了 chatgpt, 最後才發現原來 docker 設定的 iptables 規則會去擋到別人的網卡! (問 chatgpt 的時候完全沒有想到會是 docker 製造的問題, 為了簡化, 還特地把指令輸出裡面跟 docker 相關的部分刪掉。) 根據上述 archlinux 的文件解說, 只要在 /etc/docker/daemon.json 裡面加一個設定: "bridge": "brext" 就可以了。 這裡 brext 是我的 bridge 的名字。 奇怪,這是 2017 年的 bug report 耶!? 有大大 (Dmitry Smirnov) 說 docker 團隊不太在意這個 bug, 希望大家都用 docker 就好, 後來他就改用 rkt 了。 可是後來 rtk 也停止更新了。

2024年5月27日 星期一

建立 bridge 連線, nmcli 版

我喜歡把 virt-manager 所管理的虛擬機從自閉的網路裡面拉到跟 host 同一層的家中區網, 以便手機、 平板等等其他裝置可以看到這些虛擬機。 過去幾年是用 netplan 來建立 bridge; 今年 (從 linux mint) 移民到 debian, 預先安裝的是 nmcli 而不是 netplan。 那就跟著改吧, 這樣比較方便在社群裡求助。

2022年9月27日 星期二

電腦教室的 bridge 同名之亂

虛擬機通常躲在 host 的後面, 區網的其他機器看不到虛擬機的 IP。 這樣比較安全但也比較不方便。 我在電腦教室要叫學生互相檢查或攻擊同學的虛擬機, 這時就需要用 bridge (橋接器) 把虛擬機提升到跟 host 位於相同的區網。

觀念上來說, 需要做的事包含:

  1. 建立一個虛擬 bridge, 比方說叫做 brext 好了。
  2. 停用 eth0。
  3. 把實體網卡 eth0 接在 brext 底下。
  4. 透過 brext 對外尋求 dhcp 服務。 (Host 的網路又恢復連線。)
  5. 以後虛擬機的網路也都接在 brext 上。

2020年9月4日 星期五

virt-manager 的一些設定:虛擬機區網曝光、 實體硬碟、 UEFI

在 virt-manager 裡面指定橋接以便連線至區網 如果說 kvm 是 linux 虛擬機的引擎, 那麼 virt-manager 就是完工的車子。 以前年輕喜歡耍帥直接開著 引擎裸露 的 (網路連線) 拼裝車 上街拉風; 現在懶惰了, 還是開著完工的成品車比較簡單。 gtwang 的文章 有 virt-manager 慢動作分解教學; 笑傲紅塵路 有更多關於虛擬化技術的詳盡解說。 這篇我只想簡單筆記一下我的使用方式, 特別是對外網路的部分。

2020年9月3日 星期四

(幾乎不談指令) 概念性的 netplan 簡介

netplan 指定到底要用 NetworkManager 還是要用 networkd 來實作網路連線 Ubuntu 18.04 (還是更早?) 棄 /etc/network/interfaces 改用 netplan 以來, 我一直不敢面對, 一直還是堅持用 懷舊網路設定。 最近 移民 mint 20 ulyana, 總算搞懂 netplan: 它只是一個最高階層、 負責出一張嘴的空殼, 在它的設定檔 /etc/netplan/*.yaml 裡面有一句最重要的 renderer, 由這句話指定到底要用 NetworkManager 還是要用 networkd 來實作網路連線 -- 它們才是真正做苦工的程式。 有點像是董事長 (呃,我剛剛說了什麼~) 決定要請哪一位來當總經理/執行長: 沒有太多選擇, 大概就只有這兩位, 而且最好不要請兩位同時上任。 爬文時, 有人也人把這兩個選擇稱為不同的 backends。 很棒的 stackexchange 問答。

2019年7月9日 星期二

「Docker pull 卡住不動」 的實驗計畫

不太確定為什麼, 偶爾會遇到 docker pull 抓映像檔抓到一半突然卡住不動。 很多人都遇過相同的問題, 而且很多年了都沒有解決, 到現在 Bounty Source 還在懸賞。 我在電腦教室特別常遇到這個問題; 可惜上課期間來不及研究。 這篇的目的是希望下次再遇到時, 可以做一些實驗, 確認一下到底是伺服器那頭的問題, 還是我們這頭的問題。 如果夠多人測試不同的排列組合, 並且到上述 issue 回報自己的排列組合, 說不定對開發者除錯會有一些幫助。

以下提到設定檔的地方, 都以 lubuntu 18.04 bionic beaver 為準。

2018年7月6日 星期五

在 ubuntu 18.04 底下為 kvm 打造的虛擬區域網路

[2020/9/3 改推薦採用 netplan 設定 bridge 搭配 virt-manager 會比本文簡單很多。]

Ubuntu 18.04 Bionic Beaver 的網路設定改用 netplan 取代舊的 /etc/network/interfaces 設定方式。 如果只是單純的固定 IP 或 DHCP, 據說設定很簡單。 可是我想採用類似 手工精簡版 的方式來幫未來的 qemu-kvm guests 設定獨立式或可橋接外界的虛擬區域網路。 暫時沒有力氣學 netplan, 所以就照著 這個問答 強制改成舊的設定方式比較簡單。 但若不小心, 有可能會在開機時無限等待 dhcp 服務。 以下是我的 lubuntu 18.04 最終網路設定, 及一些有助除錯的筆記。

2017年9月5日 星期二

百毒不侵救命碟 「貴哥實驗室版」: 不必燒毀、 麻瓜可自製、 圖書館/電腦教室幾乎零管理

注意: 不推薦創見的隨身碟, 尤其 不推薦創見的記憶卡!

注意: mbootuz.py 僅限用於處理傳統 MBR 方式分割的硬碟/隨身碟。 mbootuz.py 不適用於處理 GPT 方式分割的硬碟/隨身碟。

請到 這裡 下載最新版的 *.iso 。 以 2024 年為例, 可以下載 24/gx24B-debian-trixie.iso 這是以 debian 13 trixie (testing) 為基礎的版本 [或更輕巧的 32bit gantix*.iso、 文字模式救援光碟 grml linux] 這些是我上課用的 live CD。 請把它燒成 DVD、 用它開機之後, 打開一個終端機, 可以這樣自製 「百毒不侵救命碟」:

ls /dev/sd*
# 插入隨身碟
ls /dev/sd*
# 查看一下比剛才多出什麼? 例如多出 /dev/sdz 跟 /dev/sdz1, 那麼就:
sudo mbootuz.py mkboot /dev/sdz
# 密碼是一個空格 (不良示範, 不要學)
sudo mbootuz.py cplive -p greg.img -Z 2G /dev/sdz

其中 -p 後面的檔名請根據你的姓名或代號命名; -Z 後面的值代表幫 linux 預留多大的可寫入空間。 (也就是會多吃掉隨身碟那麼多空間。) 就這樣, 兩個指令, 複製時間從五分鐘十五分鐘不等, 你已成功自製 mbootuz.py cplive 版的開機隨身碟! 以下是詳細解說。 [2017/10/22 mbootuz.py 大改寫, mklive 子命令已被 cplive 子命令取代。]

2017年9月3日 星期日

Debian Live: 把已灌入硬碟的系統變成 live cd

live-boot 的開機流程 玩出來了! 太感動了! Debian 系列 (含 *ubuntu) 有一個 live-boot 套件, 它可以把你已安裝在硬碟上的 linux 系統打包變成一張開機光碟 (live CD)。 這有什麼好處?

  1. 因為光碟是唯讀的, 所以你可以把系統用 squashfs 的方式壓縮到很小, 很省空間。
  2. 這張光碟可以用 pxe 從網路開機。
  3. 你可以把這張光碟放到隨身碟上, 再加上 persistence 功能, 又讓它變成可寫入的版本。 幫麻瓜製作開機隨身碟變得又快又簡單!。

2022/10/30 若要製作 UEFI 版的開機光碟, 請參考 支援 UEFI 光碟的開機載入程式 rEFInd。

2017年5月30日 星期二

透過 pxe 網路開機載入開機光碟

很久以前就想玩 pxe 網路開機; 最近想要攻佔不歸我管的 windows 電腦教室, 才開始認真學。 做壞事克服逆境真是進步的最佳動力啊! 這篇 (中文) 很詳盡; 不過如果區網內已有一個 dhcp 伺服器, 而且不能關掉, 那該怎麼辦呢? 把自己的 dhcp 服務設定成 proxy 就可以了。 本文主要參考 這篇 manski.net 的英文文章, 因為它採用 dnsmasq, 讓設定變得很簡單, 而且文章本身也寫得簡單明瞭。 最後, 本文也說明如何透過 pxe 啟動特定幾張 live cd。 搜尋 「pxe 光碟」 時, 會看到很多 「透過 pxe 啟動 linux 安裝光碟」 類型的文章; 但如果只是想要網路開機, 並沒有要安裝呢? 這是本文的重點。

2017年5月22日 星期一

窮人的 proxmox (可攜式/行動) 機房

tux 開車載著機房 業餘機房管理員貴哥向系上要了一部較高階的桌機, 在上面安裝 proxmox 虛擬環境, 用它來架設私有雲、 管理幾部 linux 教學伺服器已經兩年了, 感覺超簡單超方便的, 很想分享給中小企業網管們, 還有喜歡電腦自主又想幫學校省錢的老師們。 小格舊版的 「虛擬機新手恩物 proxmox」 那篇蠻受歡迎的; 新版的 4.* 系列有很多改變, 所以決定重寫一篇。 也順便示範: 沒有伺服器和固定 IP 可用的窮人也能把 proxmox 安裝在一個 qcow2 檔或隨身碟裡面, 背著一間機房到處跑、 隨時拿出來練習! 這招拿來教 proxmox 很方便, 不會影響到電腦教室裡原本的 linux 系統。 (<== 真正的原始動機) 但本篇並不只限定於對隨身碟/行動版有興趣的讀者 -- 如果你只是單純想玩 proxmox、 而且手邊有實體伺服器可用, 則可以省略前面的 (第一層) 虛擬環境架設, 直接用 proxmox 光碟啟動伺服器, 並且跳到第二節第4步。

2017年5月14日 星期日

手工精簡版 qemu-kvm 虛擬區域網路

本文已過時。 請改參考 在 ubuntu 18.04 底下為 kvm 打造的虛擬區域網路

qemu/kvm 是蠻底層的 linux 虛擬化工具, 只適合用於單一虛擬機的場合。 它固定配 10.0.2.15 的 IP 給虛擬機, 這個 IP 僅供虛擬機自嗨用, 從 host 並不能用這個 IP 連到虛擬機; 。 如果要管理一整群虛擬機, 各自要有 ip、 彼此要能互連, 理論上應該改用 virsh 跟 virt-manager 比較好。 不過這兩者的相依套件蠻多的。 對於喜歡騎腳踏車勝過騎機車/開車的人來說, 其實 「含有多部 kvm 虛擬機的區域網路環境」 還是可以用 qemu/kvm 指令徒手建立出來。