[{"content":"\n前言 會開始本次的折騰主要原因是我的 Homelab 中，擔任主要 Router 的工控主機效能好像很不怎麼樣，想在家裡做 Vlan Routing 呀或是 實踐 DMZ 管控呀之類的，都會有高機率看到它 CPU 突然飆高甚至死機。\n在好幾次變磚頭的折騰後，我決定 Let it be.\n讓它專注做好 Router 的角色，把內網的 L3 Routing 的工作交給我的 NCU 主機。\n極度折騰的軟路由選擇 最一開始的想法很單純，想說單純把 PVE 上的 VM 網路跟平常使用的網路分開來，做簡單的 Vlan Routing 就好。\n原以為可以順便學習一下 PVE 的 SDN 功能，但實踐上沒想像中的簡單，所以還是決定架設一台虛擬的 Router 最為直觀。\n選擇 VyOS 也沒啥特別的理由，就只是聽說它是 Cisco Like CLI，設定邏輯應該比較好掌握。\n前置作業 VyOS 是 Open-Source 的開源系統，但對免費用戶僅提供 Rolling Release 版本(或稱為 nightly build 也就是每日都會更新的意思非長期穩定版)。\n不過使用上好像不會因此而有不穩定的狀態，所以就看個人取向選個最新的版本吧。\nVM配置 每一次看網路教學文都不會看到架一個服務具體來說到底要多少資源 嘖\n但 VyOS 的官網上有說明最低配置需求:\n最小配置需求 64-bit CPU 512 MB of RAM 2 GB Disk space 建議配置需求 1024 MiB RAM 4 GB Storage space 資源需求很低，對於 Homelab 來說用最低配置就行了，如果有其他配置要求，可以去官網查看其他建議值。\n安裝 使用下載的 ISO 檔開機後，會出現 Boot Menu，並在系統 loading 後出現登入畫面\n預設的登入帳號 vyos 密碼 vyos\n登入後輸入 install image 開始安裝系統，按照提示輸入對應選項即可完成安裝。安裝完成後，重新啟動即可\n配置 VyOS 的配置指令和 Cisco 類似 (嚴格來說是跟 Nexus類似，現在的 Cisco IOS越來越詭異了) ，一樣是要先進入 configure 模式，以 set 和 delete 來做新增或移除設定。針對於服務或是群組設定則是用 edit 進入下一層編輯，top 指令則為回到頂層。\n按 TAB 可以補全指令，按 ? 可以顯示可選的指令有哪些，當設定結束後需要先 commit 再執行 save 儲存設定。\n基本系統設定 1 2 3 4 5 6 # 設定 hostname set system host-name \u0026lt;hostname\u0026gt; # 設定系統時區 set system time-zone Asia/Taipei # 建立新的使用者 set system login user \u0026lt;user\u0026gt; authentication plaintext-password \u0026lt;password\u0026gt; IP設定 VyOS 的 Interface 命名方式為 eth0 eth1 eth2 \u0026hellip; 以此類推，在 proxmox 的 VM 上會按照硬體選項的順序對應之，但為了避免有誤，建議先查看 ip add 確定網卡的 MAC 跟預想的是不是一致。\n1 2 3 4 5 6 7 8 # 設定 wan 口網路 可為 DHCP 或 靜態IP set interface ethernet \u0026lt;wan port\u0026gt; address \u0026lt;dhcp / static ip\u0026gt; # 設定 lan 口網路 這邊設的就是內網連到 VyOS的IP 也就是內網的Gateway set interface ethernet \u0026lt;lan port\u0026gt; address \u0026lt;dhcp / static ip\u0026gt; # 設定 default gateway 如果wan口配置 dhcp 則不用設這項 set protocols static route 0.0.0.0/0 next-hop 192.168.0.1 #中華電信小烏龜預設IP commit #啟用設定 save #保存設定 一些服務設定 SSH\n1 2 3 set service ssh port 22 # set service ssh acl permit \u0026#39;10.0.0.0/8\u0026#39; # 配置 ssh 的 ACL # 看自己要不要折騰 還有好多可選配置 DHCP 這邊剛好可以說明一下 edit 指令的用法\n在不用 edit 時配置 DHCP\n1 2 3 4 5 6 7 8 9 configure set service dhcp-server shared-network-name eth1 authoritative # 設定為主要DHCP SERVER set service dhcp-server shared-network-name eth1 subnet 192.168.2.0/24 default-router 192.168.2.1 # 設定 DHCP 配發預設GW set service dhcp-server shared-network-name eth1 subnet 192.168.2.0/24 lease 86400 # 設定DHCP lease time set service dhcp-server shared-network-name eth1 subnet 192.168.2.0/24 name-server 8.8.8.8 # 設定 DHCP 配發DNS set service dhcp-server shared-network-name eth1 subnet 192.168.2.0/24 range 0 start 192.168.2.2 # DHCP 配發IP範圍 range指的是可配發的IP區段 從0開始 set service dhcp-server shared-network-name eth1 subnet 192.168.2.0/24 range 0 stop 192.168.2.10 # 區段IP 最後位置 commit save 用 edit 配置\n1 2 3 4 5 6 7 8 9 10 11 12 13 # 進入dhcp設定層級 edit service dhcp-server shared-network-name \u0026lt;text\u0026gt; subnet \u0026lt;192.168.2.0/24\u0026gt; # 設定gateway set option default-router \u0026lt;192.168.2.1\u0026gt; # 設定dns set option name-server 1.1.1.1 # dhcp租約時間(秒) set lease 86400 # 設定dhcp ip pool set range 0 start 192.168.2.2 set range 0 stop 192.168.2.10 # subnet id ，不重複即可 set subnet-id 1 看起來 edit 的使用情境類似於 物件導向 的設定，不過選擇哪個就見仁見智了\n例如 Cisco ACL 教學時都推薦用 extend 作規則命名，但實務上我有經手過的客戶都還是用 standard ACL 居多，所以不太會動的服務設定就依個人喜好設定吧。\nNAT SNAT\n1 2 3 4 5 6 configure set nat source rule 100 outbound-interface eth0 # 設定 eth0 為NAT的出口端 set nat source rule 100 source address 192.168.2.0/24 # 設定內網網段 set nat source rule 100 translation address masquerade # 將內網網段轉譯成NAT出口端IP commit save DNAT\n1 2 3 4 5 6 7 8 9 configure set nat destination rule 100 inbound-interface eth0 # 外網流量進入口 set nat destination rule 100 destination address 192.168.1.2 # 從 eth0 接口訪問 192.168.1.2 set nat destination rule 100 destination port 80 # 訪問目的端port 80 set nat destination rule 100 protocol tcp # 設定使用的傳輸層協定 TCP set nat destination rule 100 translation address 192.168.2.2 # 流量映射給192.168.2.2 set nat destination rule 100 translation port 8080 # 映射port 轉為 192.168.2.2的 8080 port commit save 總結 VyOS 是一種軟路由的解決方案，還具有許多 Router 及 Firewall 的功能。但在我的情境裡只是當作 L3 Routing的角色，所以相關筆記就先暫時紀錄到這裡吧。\n參考內容 感謝網路上的各路大神 VyOS快速設定\n【Vyos-开源篇-2】- vyos软路由基本配置\n安装和初始化 VyOS 虚拟机\nDay 4 - 部署 Home Lab 網路 - 安裝路由器\n","date":"2024-12-22T08:06:58.528Z","permalink":"https://dow1226.github.io/vyos%E8%BB%9F%E8%B7%AF%E7%94%B1%E8%A8%AD%E5%AE%9A%E7%AD%86%E8%A8%98/","title":"VyOS軟路由設定筆記"},{"content":"\n因為工作中遇到有user反應直播卡頓，在協助處理時，查到一些資料，先筆記下來，感覺未來需要用到的機率挺高的。\n參考資料來源 https://www.movavi.com/zh/learning-portal/best-obs-settings-for-recording.html\n推薦設定 參數 推薦設定 基礎解析度 1920 × 1080 螢幕的大小，以 1080p 進行「全螢幕」擷取。 輸出解析度 依照直播平台做調整 常見的FPS 60 FPS 降級濾鏡 Bicubic 錄製格式 MP4 位元速率 16,000 預設值 MaxQuality 速率控制 CBR 編碼器 X264 程式優先順序 高於正常水準 演色器 Direct3D 11 色彩格式 NV12 色彩空間 709 色彩範圍 全 OBS推薦的影片位元速率 品質 輸出畫質 影片位元速率 超高清 4K 8000 高清 1920 x 1080 (1080P) 3000/5000 高清 1280 x 720 (720P) 1800/2500 中等畫質 640 x 360 (360P) 600/800 影片位元速率越高越好，但也要根據實際使用的情況做調整。\n過高的速率只會浪費網路頻寬，在即時串流的情境，720P - 1080P 其實就很夠用了。\n音訊位元速率 品質 音訊位元速率 高品質 320 高品質 256 中等品質 128 一些術語筆記 基礎解析度: 畫面解析度由寬度 x 高度決定。標準的24吋螢幕顯示的畫面大小即為 1920 x 1080，全螢幕擷取時，最適用的畫質即為 1080p HD。 輸出解析度: 輸出解析度不一定要跟基礎解析度相同。簡單說，基礎解析度指的是 OBS所看到的畫面，在本機存儲，使用情境可能是畫面錄影或是剪輯影片。而輸出解析度則為輸出到串流平台所使用的畫質，輸出解析度設定要與平台要求相容，否則輸出品質會被影響。 降級濾鏡: 當輸出解析度比基礎解析度低時，影片需要降級才能因應輸出設定的條件，透過這個濾鏡功能來達成。最高品質的功能為 Lanczos。但不是每個電腦都適用，建議使用 Bicubic，相容性較高。 電腦需求 基本的直播串流電腦硬體需求:\nCPU: Intel Core i5 以上 最好有獨立顯卡，OBS跟 Nvida相容性較佳 RAM: 至少 8GB以上 串流設定 輸出模式: 選擇進階，開啟串流設定選項 音軌: 預設選擇1 編碼器: 軟體編碼為 x264，若電腦有獨立顯卡可選擇硬體編碼 H.264，軟體編碼使用的是CPU資源 位元率: 選擇 CBR 控制，影像位元率建議設定為 4000Kbps (4mbps) 影像位元率: 直播串流的流量，取決於網路頻寬速度。但不是越高越好，否則會出現掉禎或延遲嚴重的問題，且各家串流平台的上限不同。FB建議最高不超過 9000Kbps。 位元速率與網路速度之關係 這是工作遇到主要的問題，USER認為直播會卡的原因為網路不夠快。\n但實際上直播所使用的網路速度要求並不高，以 Youtube 的解析度說明而言， 4K/2160p 最高位元率為 40Mbps，網速只要達到 40M以上就能支援播放影片。\n但一般情況下，即時直播不建議使用到4K畫質，1440P就能有相當不錯的效果，且各家平台推薦的解析度大多是介於720P ~ 1080P之間，網路要求甚至不到10M。 另外直播延遲時間也有影響，低延遲的設定下，各家平台皆不支援4K解析度的輸出，即便平台會自行做輸出調整，但呈現出來的結果就不一定是USER能接受的樣子囉。\n以現在人人都是自媒體的時代，直播串流已經非常簡單了，一般情況下軟體自動設定就足夠了。網路的要求其實也非常低，如果硬體都沒問題的情況下，直播連放都放不出來，那樣的網路環境相信是連開個網頁都有問題，但相信這樣的網路環境已經不常見啦。\n","date":"2024-12-12T15:09:05.939Z","permalink":"https://dow1226.github.io/obs%E7%9B%B4%E6%92%AD%E8%A8%AD%E5%AE%9A%E8%AA%BF%E6%95%B4%E9%81%B8%E9%A0%85/","title":"OBS直播設定調整選項"},{"content":"在homelab中常常跟著教學架了一些Docker容器，但又不求甚解。 所以實際應用上常會莫名其妙就吃鱉或踩坑，這次也是常踩到的坑之一，特別記錄一下。\n進入容器 所謂的進入容器，就是指進到 Docker Container 的CLI介面。 我對於 Docker Container的理解還是傾向於它類似於 VM 虛擬機的概念， 進入容器也就類似於開啟虛擬機的管理介面的意思。 (我是這麼想啦 但許多教學都說這兩個觀念完全不同)\n進入Docker容器的常見方法\nDocker Attach SSH exec Docker Attach 這是使用 Docker的指令進入容器的CLI介面\n1 sudo docker attach \u0026lt;\u0026#34;容器名稱\u0026#34;\u0026gt; 接下來就會進到容器的CLI介面中， 但必須注意的是：==不是每個容器都有bash的shell== 很多教學都是直接用什麼 apt apt-get 之類的常用linux管理指令，在某些容器裡是不適用的\n另外要注意的是，使用這個指令進入容器後，管理的session就只有這一個，如果hang住了，是沒辦法像開其他session來救的\nSSH 用SSH就跟日常使用連去server管理的方式一樣，但前提是容器必須有裝 SSH Server。 用SSH就沒有前面的 session 問題，但網路上好像不建議docker用ssh，為啥我就沒細看了。\nexec 這也是個docker指令 簡單說就是在host主機上，指定容器去執行某些指令，例如開啟一個shell\n1 sudo docker exec -it \u0026lt;\u0026#34;容器名稱\u0026#34;\u0026gt; /bin/bash 以上命令為開啟一個bash shell 但就如前面有提到的，不是每個容器都有bash，我就是踩到了這個坑。\n心得總結 Docker 運作上感覺真的跟VM很像，目前都還只是部屬一些服務自己日常玩而已，不知道實際在企業應用是什麼樣子，也許未來有機會再多熟悉些。\n","date":"2024-12-09T14:11:48.077Z","permalink":"https://dow1226.github.io/dockerattach/","title":"DockerAttach"},{"content":"\n概述 Markdown 目標是實現「易讀易寫」，語法全由標點符號所組成\nMarkdown 跟 HTML 差別 比較項目 Markdown HTML 定位與用途 一種輕量級的標記語言，設計用於簡潔地編寫純文本，然後轉換為格式化的內容。 超文本標記語言，用於定義網頁的結構和內容，是網站開發的基礎。 語法與可讀性 使用簡單的符號（如 # 表示標題，* 表示列表），即使不渲染也易於閱讀。 使用標籤（如 \u0026lt;h1\u0026gt;、\u0026lt;p\u0026gt;）來標記內容，源代碼包含大量標籤，閱讀起來較為複雜。 學習難度 學習曲線平緩，適合快速上手和編寫文檔。 需要理解各種標籤、屬性和網頁結構，學習成本較高。 功能與靈活性 支持基本的文本格式化，功能有限，適用於簡單文檔。 功能豐富，支持複雜的布局、多媒體、表單等，可與 CSS、JavaScript 結合實現動態效果。 轉換與渲染 需要轉換為 HTML 或其他格式才能被瀏覽器正確顯示。 瀏覽器原生支持，直接解析和渲染。 使用場景 撰寫 README 文件、技術文檔、博客文章等。 開發網頁和 Web 應用程序，是前端開發的基礎。 可擴展性 通過插件或擴展可以增加功能，但受限於 Markdown 的設計理念。 高度可擴展，通過各種框架和庫可以實現幾乎任何功能。 與其他技術的結合 通常與版本控制系統（如 Git）和協作平台（如 GitHub）結合使用。 可與 CSS、JavaScript 結合，構建完整的前端應用。 社區與支持 有廣泛的社區支持，許多工具和平台都支持 Markdown。 作為網頁開發的基礎技術，擁有龐大的開發者社區和資源。 行內 HTML 舉例來說，在 Markdown 文件裡加上一段 HTML 表格：\nThis is a regular paragraph. \u0026lt;table\u0026gt; \u0026lt;tr\u0026gt; \u0026lt;td\u0026gt;Foo\u0026lt;/td\u0026gt; \u0026lt;/tr\u0026gt; \u0026lt;/table\u0026gt; This is another regular paragraph. Markdown 語法在 HTML 區塊標籤中將不會被進行處理。\n語法筆記 主標題 標題的語法\n標題 === 副標題 副標 --- 字體大小 # H1 ## H2 ### H3 #### H4 ##### H5 字體效果 斜體字 粗體字 斜粗體 刪除線 正常^上標^ 正常下標 ==螢光筆記==\n*斜體字* **粗體字** ***斜粗體*** ~~刪除線~~ 正常^上標^ 正常~下標~ ==螢光筆記== 引文 縮排語法 第一層\n第二層\n第三層\n\u0026gt;縮排語法 \u0026gt;第一層 \u0026gt;\u0026gt;第二層 \u0026gt;\u0026gt;\u0026gt;第三層 標號 數字標號 數字標號 數字標號 其他標號 其他標號 其他標號\n1. 數字標號 2. 數字標號 3. 數字標號 - 其他標號 + 其他標號 * 其他標號 清單 無序清單 無序清單 無序清單子清單 無序清單子子清單 有序清單 有序清單 有序清單子清單 有序清單子子清單 - 無序清單 - 無序清單 - 無序清單子清單 - 無序清單子子清單 1. 有序清單 2. 有序清單 1. 有序清單子清單 1. 有序清單子子清單 連結 連結名稱\n[連結名稱]((https://google.com)) 程式碼 1 2 var s = \u0026#34;JavaScript 語法高亮\u0026#34;; alert(s); 1 2 $s = \u0026#34;PHP 語法高亮\u0026#34;; echo $s; ```javascript var s = \u0026quot;JavaScript 語法高亮\u0026quot;; alert(s); ``` ```php $s = \u0026quot;PHP 語法高亮\u0026quot;; echo $s; ``` 表格 每個標頭元件都要用至少三個破折號+直線分隔開來，預設為置左。\n冒號可以用來標示欄位的對齊方式。\n表頭1 表頭2 表頭3 左1 中1 右1 左2 中2 右2 左3 中3 右3 當然，也可以在表格內加入樣式\n功能 效果 Markdown語法 粗體 粗體 **粗體** 斜體 斜體 *斜體* 刪除線 刪除線 ~~刪除線~~ 每個標頭元件都要用至少三個`破折號`+`直線`分隔開來，預設為置左。 `冒號`可以用來標示欄位的對齊方式。 | 表頭1 | 表頭2 | 表頭3 | |-------|:-----:|------:| | 左1 | 中1 | 右1 | | 左2 | 中2 | 右2 | | 左3 | 中3 | 右3 | 當然，也可以在表格內加入樣式 | 功能 | 效果 | Markdown語法 | |:------:|:----------:|:------------:| | 粗體 | **粗體** | `**粗體**` | | 斜體 | *斜體* | `*斜體*` | | 刪除線 | ~~刪除線~~ | `~~刪除線~~` | 表格生成器\n","date":"2024-12-09T14:05:07.765Z","permalink":"https://dow1226.github.io/markdown%E8%AA%9E%E6%B3%95%E7%AD%86%E8%A8%98/","title":"Markdown語法筆記"}]