Tag: aircrack
Tag: android
Post
Android06客戶端Socket(待修正)
本篇未經調整,雖然能運作,但其中命名可能容易混淆,請斟酌參考。 1.開通網路使用權限 AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.httpreguests"> <!--這兩行是關鍵內容,可以啟動網路
Post
Android05進行httprequest
1.開通網路使用權限 AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.httpreguests"> <!--這兩行是關鍵內容,可以啟動網路使用權限--> <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!--這兩行是關鍵內容,
Post
Android snackbar與除錯log04
1.目標 各種程式語言在執行的時候都可以看到一些log,方便我們除錯與對程式進行調整。 Android上也存在著顯示log的工具。 除此之外,還有
Post
Android長期保存資料於SharedPreferences03
1.目標 將資料存入Android的SharedPreferences,進行長期保存 官方文檔 https://developer.android.com/reference/android/content/SharedPreferences 2.前端 欄位: 文字輸入欄位(將資料存入Share
Post
Android中的按鈕01
1.介紹 當我們要開發安卓App時,第一個步驟就是安裝Android Studio。 可以在官方網站上頭找到下載點。 Android Studio官方網站 https://developer.android.com/studio 2.開
Tag: apparmor
Tag: apt
Post
adduser 和 useradd 的差異
adduser 和 useradd 的差異: adduser 用法 sudo adduser [選項] 用戶名 # 無選項添加新用戶: 會提示您輸入用戶的密碼和其他信息。 sudo adduser 用戶名 # 添加系統用戶: 這將添加一個沒有家目錄
Post
Linux網路基本指令1
ip 類網路指令 以下指令僅在重新啟動前生效,如果要長期保存,需要根據各 Linux 發行版不同實踐調整設定檔案。 # 列出介面 ip link # 查詢個別網卡的資訊 ip addr show eth0 ip
Post
nginx配置多個reverse-proxy
我們可以看到 nginx 的配置檔案位於下面的位置。 /etc/nginx/nginx.conf 我們可以用下列方法來重新導向我們的 Domain name,可以導向容器,或者其他運作中的程式實例。 nginx.conf server { server_name example1.com; location
Post
清理apt暫時存檔
下載套件的暫存路徑清除 當apt套件管理工具在安裝套件時,會先對套件進行下載。 下載完畢尚未安裝的套件會被儲存在以下路徑: /var/cache/apt/archives 當這個目錄裡頭的東西
Tag: asp.net
Post
ASP.net找不到csc.exe
打開上排選單的 工具>NuGet套件管理員>套件管理器主控台 然後輸入以下指令。 Update-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform -r
Post
將ASP.net部屬到Azure的AppService
啥是Azure的App Service服務? App Service是個微軟提供,要花錢的服務。 不過還好在碩士生涯中,學校有提供教育用的點數可以使用,
Tag: auditd
Tag: aws
Post
AWS-EKS-建立一個Cluster
簡述 簡單來說,使用 AWS CLI + eksctl 兩個工具,很快就可以佈署好,並且進行管理了。 比較多步驟的是在新環境中安裝 AWS CLI 。 1.用 Root acount 建立 IAM account 為了乾淨好管理,先
Post
AWS證照SSA筆記
Region 區域,例如美國東部,或者東京… Availability Zones 簡稱AZ,在一個區域裡頭,可以有數個AZ,例如同樣在東京,可以有兩個AWS機房。 IAM 權限控管
Tag: azure
Post
Azure部屬MySQL
1.適用於 MySQL 的 Azure 資料庫 點選『適用於 MySQL 的 Azure 資料庫』 如果沒有的話,可以在上排選單。 2.建立 3.單一伺服器 4.建立MySQL伺服器 以下有幾個一定要
Post
將ASP.net部屬到Azure的AppService
啥是Azure的App Service服務? App Service是個微軟提供,要花錢的服務。 不過還好在碩士生涯中,學校有提供教育用的點數可以使用,
Tag: bashtop
Post
Bashtop好看點的主機狀態面板
希望有個看起來酷炫又詳細的主機狀態顯示器嗎? bashtop符合你的需求! 在debian上頭安裝bashtop sudo add-apt-repository ppa:bashtop-monitor/bashtop sudo apt update sudo apt install bashtop
Tag: byte
Post
python與byte串與網路
本篇引用自Foundations of Python Network Programming一書 bytes串與網路的關係 在網路傳輸時如socket,是無法直接採取Unico
Tag: bytes
Post
python與byte串與網路
本篇引用自Foundations of Python Network Programming一書 bytes串與網路的關係 在網路傳輸時如socket,是無法直接採取Unico
Tag: c
Post
區域變數與陣列的記憶體安排
區域變數與動態分配存在於stack中,是由高位向低位記憶體成長 類似這樣 記憶體高位 ----- int a int b int c . . . ----- 記憶體低位 而陣列存在於heap中,是由
Post
Gdb使用
GDB使用指令 --------------- 提示gcc編譯時記得開啟g選項,編譯出來的產物才不會啟動優化, 同時可以使用gdb除錯 匯入檔案:gdb 檔案名稱 匯入後命令行左邊
Tag: cc
Post
suricata入侵防禦系統(IPS)
作者 阿維 環境 拜託,使用Ubuntu吧! 不然要從頭編譯suricata。 雖然可以,但是比較麻煩。 安裝 安裝PPA sudo apt-get update sudo apt-get install software-properties-common sudo add-apt-repository ppa:oisf/suricata-stable sudo apt-get update 安裝s
Tag: ccna
Tag: cicd
Post
Jenkins的docker-compose容器
Jenkins 的參考 YAML 以下 Docker compose 應對到 80 port。 docker-compose.yaml version: '3.3' services: jenkins: image: jenkins/jenkins:lts restart: unless-stopped privileged: true user: root ports: - 80:8080 container_name: jenkins volumes: - ./jenkins/data:/var/jenkins_home - /var/run/docker.sock:/var/run/docker.sock - /usr/local/bin/docker:/usr/local/bin/docker 連入容器的方法 docker exec jenkins bash
Post
軟體測試的覆蓋準則
假設 假設這是我們今天要測試的程式。 INPUT A,B,X IF (A>1) AND (B=0) THEN Y=A IF (A=2) OR (X>1) THEN Y=X PRINT Y 流程圖 %%{init: {'theme':'dark'}}%% flowchart TD A(程式開始) --> B{A>1 and B=0} B -->|True| D(Y=A) B -->|False| E{A=2 or x>1} D --> E{A=2 or x>1} E{A=2 or x>1} --> |False| G
Post
Jenkins的docker容器
一次性快速使用Jenkins docker run \ --rm \ -u root \ -p 8080:8080 \ -v jenkins-data:/var/jenkins_home \ -v /var/run/docker.sock:/var/run/docker.sock \ -v "$HOME":/home \ jenkinsci/blueocean 趁密碼出現時,從終端機上頭複製下來 用複製到的密碼解鎖 http://127.0.0.1:8080/ 長期保存的Jen
Tag: curl
Post
curl遠端執行shell
遠端(例如github或網頁)執行shell script的方法, 此方法需要curl套件。 bash < <(curl -s 網址) 這種方法執行的shell中不可加入su
Tag: daily
Post
Serverless真的省錢嗎
不一定! 可能更貴。 根據文章 Scaling up the Prime Video audio/video monitoring service and reducing costs by 90% 的研究顯示,某個影像音訊監控服務,在採用各種 AWS Lambda 函數互相交互的時候,花費了大量的資金。 https://www.primevideotech.com/video-streaming/scaling-up-the-prime-video-audio-video-monitoring-service-and-reducing-costs-by-90
Post
2023-11-09-面試心得
今天線上面試是一間 Laravel 有關的公司。 有錄取,人都很好,但由於在考證照,所以暫時沒加入! 以下是面試題目: 第一題 請問 MVC 架構分為哪三個部分? 第二題 Laravel 中
Post
2023-11-07-面試心得
今天參加的面試是一間網頁公司,面試的是兩個職位。 後端工程師 SRE (Site Reliability Engineering) 網站可靠度工程師 我主要期待的是 SRE 的這份職位。 該公司若面試後超過 7 天沒有回應
Tag: ddos
Post
suricata入侵防禦系統(IPS)
作者 阿維 環境 拜託,使用Ubuntu吧! 不然要從頭編譯suricata。 雖然可以,但是比較麻煩。 安裝 安裝PPA sudo apt-get update sudo apt-get install software-properties-common sudo add-apt-repository ppa:oisf/suricata-stable sudo apt-get update 安裝s
Tag: docker
Post
關於Docker的Image閒談1
Docker 的 Volume 與 Image 的具體儲存位置 實際上 Volume 與 Image 在 Linux 上儲存在以下目錄: /var/lib/docker/ /var/lib/docker/containers /var/lib/docker/image /var/lib/docker/volumes 雖然不建議,但純手動來複製 Image 也是可能的。 Docker 或者其他容器技術的 Layer 結構 以下是個
Post
Docker基本指令
Docker概念 半虛擬化 比一般虛擬機快 檔案大小很小 不用完全模擬到硬體層級 實用只指令 1.運作一個nginx網頁伺服器 run: 下載映像檔同時執行。 -d: 第
Post
讓firefox跑在docker-compose裡頭的正確腳本
資料夾結構 firefox ├── docker-compose.yml ├── Dockerfile └── run docker-compose.yml #docker-compose版本 version: "3.4" #服務,不過這裡唯一的服務就是firefox瀏覽器 services: #服務名稱,
Post
LinuxMint20.1上安裝docker
Mint安裝docker會遇上的問題 由於Mint目前還沒有專用版本的docker儲存庫, 所以我們必須使用Mint的源頭Ubuntu版本的do
Post
docker.sock錯誤處理
docker.sock的錯誤 剛裝好docker時常常會跳出此種錯誤 Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.40/containers/json: dial unix /var/run/docker.sock: connect: permission denied docker.sock的功能 簡
Tag: ettercap
Tag: firefox
Post
讓firefox跑在docker-compose裡頭的正確腳本
資料夾結構 firefox ├── docker-compose.yml ├── Dockerfile └── run docker-compose.yml #docker-compose版本 version: "3.4" #服務,不過這裡唯一的服務就是firefox瀏覽器 services: #服務名稱,
Tag: firewall
Tag: frontend
Post
按照比例縮放元素的vh與vw
當我們想按照畫面比例縮放一個元素時 我們可以用以下兩種方式 %比例 width: 30%; 這個元素為父元素寬度的30%。 vw,vh比例 width: 100vw; 這個元素為瀏覽網頁的裝置的
Tag: gcp
Post
繪製GCP設計圖稿
Architecture Diagramming Tool 一個可以繪製GCP架構圖的工具,主要繪圖部件稱為 Google Cloud Developer Cheat Sheet 。 可以幫助設計 GCP 雲端架構。 可以用拖曳進行操作。 參考頁面: Introducing a Google Cloud architecture diagramming tool Google Cloud Developer
Post
GCP的ACE證照筆記-考前筆記
GCP ACE 考前模擬題目的小筆記 以下紀錄著模擬考題裏頭的各種超綱題。 儲存秘密 GCP Secret Manager 與 Environment variables 的抉擇,兩個都可行,該選哪個? GCP Secret Manager 提供版本控制和日誌記錄功
Post
GCP的ACE證照筆記-12-Storage 儲存
Storage 儲存分成兩種 Block Storage 類似許多二進位訊息的儲存區塊,可以作為硬碟直接掛上。從一個更高的角度來看,硬碟儲存的是一串 0 與 1 , 映像檔也是如此。而 Block Storage 不
Post
GCP的ACE證照筆記-11-Cloud KMS (Cloud Key Management)
Data States 資料狀態 Data at rest: 資料在裝置上使用或者在備份中 Hard disk Database Backups Archives Data in motion (運動中): 資料在網路傳輸中 如資料從本地轉送到雲端儲存 應用程式跟 Database 交互中 兩種型
Post
GCP的ACE證照筆記-10-Cloud Run
Cloud Run 基於 Knative,一種自動管理 K8S 的工具,幾乎可以做到全自動擴展。 不須維護基礎設施。 使用時才付費。 Cloud Run for Anthos Cloud Run 是在數秒之內運作一個容器帶
Post
GCP的ACE證照筆記-09-Cloud function 第二代 (2nd gen)(未完成)
Cloud function - 2nd gen (未完成) 更長的執行時間 60 分鐘。 更大的 VM Size,16 GB RAM,4 vCPU。 Concurrency: 1 個 function 接受同時 1000 個併發。第一代,1 次接受 1 個併發。 Multiple
Post
GCP的ACE證照筆記-08-Cloud function 第一代
Cloud function 可以用在某個事件 (Event) 發生時,產生某個反應。 例如某個 error log 發生時,出現反饋。 這項服務是 Serverless 服務,只在運作時算錢。 支援語言 Node.js, Python, Go, Java, .NET, and Ruby 成本計算方
Post
GCP的ACE證照筆記-07-Google Kubernetes Engine
GKE 簡述 (p.111) Google 提供的 K8S 服務。 跟典型的 K8S 服務一樣有以下特色: Auto Scaling Service Discovery Load Balancer Self-Healing Zero Downtime Deployment Auto-repair Pod and Cluster Autoscaling 可用 Cloud Logging 與 Cloud Monitoring 監控 由 Google 提供的 Container-Optimized OS 提供 Persistent disks 與 Local SSD。 啟動
Post
GCP的ACE證照筆記-06-App Engine
App Engine 一個可以簡單部屬可以自動縮放的應用程式。 預設運作環境: Go, Java, .NET, Node.js, PHP, Python, Ruby ,這些語言都有提供運作環境。 客製化作環境: 可採用任何語言。 App Engine 是 Re
Post
GCP的ACE證照筆記-05-Managed Services
IAAS (Infrastructure as a Service) 供應商管理硬體,其他可以自訂。 例如 : VM。 需自己更新 OS, APP, APP runtime, Auto scaling, Availability, Load balancing。 PAAS (Platform as a Service) 供應商管理硬體, OS, 網路, APP runtime, Load balancing,
Post
GCP的ACE證照筆記-04-Cloud Load Balancing
Cloud Load Balancing 負載平衡,可以提供一個IP或者網址後方,放置多台機器。 可以單 region 或者 multiple regions。 增加服務的 Resiliency (彈性),Auto Scaling,Hi
Post
GCP的ACE證照筆記-03-Instance Groups
Instance Groups 可以採用數個 VM template 組成一個群組進行管理。 兩種型態的 Instance Groups: Managed: 自動擴展的同一種 template 並且自動修復與自動管理釋放虛擬機。 Unmanaged: 許多不同型態的 template 組成,無法自
Post
GCP的ACE證照筆記-02-Gcloud簡介
Gcloud 的常用功能 # 初始化,登入GCP帳號 gcloud init # 列出所有啟動的屬性,可以看到登入帳號與 projuct 名稱 gcloud config list # 列出帳號 gcloud config list account # 列出區域 gcloud config list region # 列出 Project gcloud config
Post
GCP的ACE證照筆記-01-GCE介紹
GCP-ACE 證照筆記 Associate Cloud Engineer Certification 助理雲端工程師證照 Region 遍布全球的地區,一個地區會有多個 Zone 機房。 目前有 20 個以上。 Zones 資料中心 (data centers),同 region 的 zone 資料互傳
Tag: gdb
Post
區域變數與陣列的記憶體安排
區域變數與動態分配存在於stack中,是由高位向低位記憶體成長 類似這樣 記憶體高位 ----- int a int b int c . . . ----- 記憶體低位 而陣列存在於heap中,是由
Post
Gdb使用
GDB使用指令 --------------- 提示gcc編譯時記得開啟g選項,編譯出來的產物才不會啟動優化, 同時可以使用gdb除錯 匯入檔案:gdb 檔案名稱 匯入後命令行左邊
Tag: git
Post
Git整合過去Commit
如果說有多條commit要合併成一條 就需要使用 git rebase 1 首先,在git 中最新的一個commit 稱為 Head 所以git rebase的一個常用指令就是 git rebase
Post
Git的簡單使用
1.Git的三個區域 Working tree 工作樹 我們甚麼都還沒做時,資料在這裡 Staging Area 暫存區 我們進行指令add 後資料在這裡 Repository 儲存庫 我們commit時資料進入儲存庫
Post
Git復原失誤的操作
以Revert復原已經提交的變更 每次的變更都會留下雜湊質值 git log 可以查看 要復原變更可以以雜湊值復原 git revert acc6af6 如果復原時跳出UNIX式的VI編輯器介
Post
用Gogs自己架設Git Server
Gogs是啥? 由go語言撰寫而成,一個輕量化方便部屬的Git伺服器。 需要的部件 Docker: 一個能夠建立容器,快速部屬環境的半虛擬化工具。 Gogs: 輕量化Git
Post
如何用22port以外連上Git Server
Git伺服器的SSH port 基本上來說,git server所使用的ssh port就是22 port。 為何會有例外 由於自己架設的Git Server,2
Post
github免密碼上傳與RSA金鑰產生
先決條件 這篇是建立在理解 git基本使用 擁有github帳號 使用linux 上述條件達成才比較能夠理解本篇git的部份, 建議上網找些資料學習。 不
Tag: git server
Post
用Gogs自己架設Git Server
Gogs是啥? 由go語言撰寫而成,一個輕量化方便部屬的Git伺服器。 需要的部件 Docker: 一個能夠建立容器,快速部屬環境的半虛擬化工具。 Gogs: 輕量化Git
Tag: github
Post
Git整合過去Commit
如果說有多條commit要合併成一條 就需要使用 git rebase 1 首先,在git 中最新的一個commit 稱為 Head 所以git rebase的一個常用指令就是 git rebase
Post
Git的簡單使用
1.Git的三個區域 Working tree 工作樹 我們甚麼都還沒做時,資料在這裡 Staging Area 暫存區 我們進行指令add 後資料在這裡 Repository 儲存庫 我們commit時資料進入儲存庫
Post
Git復原失誤的操作
以Revert復原已經提交的變更 每次的變更都會留下雜湊質值 git log 可以查看 要復原變更可以以雜湊值復原 git revert acc6af6 如果復原時跳出UNIX式的VI編輯器介
Post
如何用22port以外連上Git Server
Git伺服器的SSH port 基本上來說,git server所使用的ssh port就是22 port。 為何會有例外 由於自己架設的Git Server,2
Post
github免密碼上傳與RSA金鑰產生
先決條件 這篇是建立在理解 git基本使用 擁有github帳號 使用linux 上述條件達成才比較能夠理解本篇git的部份, 建議上網找些資料學習。 不
Tag: gpu
Post
Linux_mint卡在開始logo的解決
Linux_mint卡在開始logo的解決 linux mint 在某些情況下會卡在開機logo 而引發這種情況的可能原因 常常與顯示卡(gpu)有關連 若顯示卡是n
Tag: grub
Post
Linux_mint卡在開始logo的解決
Linux_mint卡在開始logo的解決 linux mint 在某些情況下會卡在開機logo 而引發這種情況的可能原因 常常與顯示卡(gpu)有關連 若顯示卡是n
Tag: hugo
Post
插入數學內容的方法
範例Latex與javascript引入語法 <script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script> <script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script> <p> When \(a \ne 0\), there are two solutions to \(ax^2 + bx + c = 0\) and they are \[x = {-b \pm \sqrt{b^2-4ac} \over 2a}.\] </p> 範例 When \(a \ne 0\), there are two solutions to \(ax^2 + bx
Post
加入佈景主題
從github抓取的指令 例如 ,我們要抓的佈景主題的名稱叫 m10c 我們找到m10c的部落格網址 然後輸入以下指令 git submodule add https://github.com/vaga/hugo-theme-m10c.git themes/m10c 指令的最後一段 themes/m10c 意思是將主題
Tag: iptables
Post
iptables筆記-1
iptables 是什麼? iptables 是 Linux 內核中的防火牆軟體 netfilter 的管理工具,位於使用者空間,同時也是 netfilter 的一部分。 Netfilter 位於內核空間,不僅有網路地址轉換的功能,也具備資料包內
Tag: java
Post
java的打包筆記1
Java 直接打包成 jar 假定我們有個 hello.java # 把檔案編譯成 hello.class javac hello.java # 把 hello.class 轉換成 hello.jar,-c 代表建立 jar 檔案,-f 代表指定檔案名稱。 jar -cf hello.jar hello.class #或者 jar -cf
Tag: journalctl
Post
linux查看Journalctl的log
Journalctl 檢查近期 Linux 的Log。 -f: 在終端機上持續輸出。 -n 100: 近期 100 條 Log。 journalctl -f -n 100
Tag: k8s
Post
K8S基本操作-52-K8S 一些 CKA 的小筆記
查詢 CIDR CIDR 分配儲存在 API Server 上: cat /etc/kubernetes/manifests/kube-apiserver.yaml | grep range CNI Plugin 配置文件位置 CNI Plugin 配置文件位置在以下位置: /etc/cni/net.d/ 例如: /etc/cni/net.d/10-weave.conflist 列出所有資源名稱 如: pod, deployment, configmap。 kubectl api-resources --namespaced
Post
K8S基本操作-52-kubectl 操作備忘
Kubectl 自動補全 # 自動補全腳本 source <(kubectl completion bash) echo "source <(kubectl completion bash)" >> ~/.bashrc # 把 kubectl 簡化成 k alias k=kubectl complete -o default -F __start_kubectl k –all-namespaces 替代 kubectl -A 建立物件 kubectl apply -f ./my-manifest.yaml # 建立資源 kubectl apply -f ./my1.yaml -f ./my2.yaml # 建立資源從多個
Post
K8S基本操作-51-K8S kubectl 參數簡寫
操作簡寫 例如: kubectl get pod pod1 可以寫成 kubectl get po pod1 以下是常用簡寫: certificates = cert, certs certificiaterequests = cr, crs certificatesigningrequests = csr componentstatuses = cs configmaps = cm cronjobs = cj customresourcedefinitions = crd, crds daemonsets = ds deployments = deploy endpoints = ep events = ev horizontalpodautoscalers = hpa ingresses = ing limitranges
Post
K8S基本操作-50-K8S Ingress
Ingress 一句話說 Ingress 就是用不同的 Path 導向不同 Service 的功能。 如我們有2個頁面,一個是網站一個是 API ,分別屬於不同 K8S Service 。 Ingress 可以讓兩個 Service 用以下方式存取: # Web Service 存取
Post
K8S基本操作-49-K8S內部的DNS與Port
K8S 各種服務使用的 Port ETCD: 2379,2380 port Kube-API: 6443 port Kubelete: 10250 port Kube-scheduler: 10259 port Kube-controller-manager: 10257 port 各種 Service 的內部 IP: 30000 - 32767 port K8S Service 中的 DNS 如果有個 Service 如下: Service Name: web-service Namespace: default 這樣就能用以下三個 URL 來存取 Service: # 同 Namespace
Post
K8S基本操作-48-K8S與容器網路介面(Container Network Interface)
Container Network Interface 容器網路介面 K8S 的 CNI 是指容器網路介面(Container Network Interface),它是一個標準的 API,用於讓 K8S 與不同的網路插件溝通,實現
Post
K8S基本操作-47-K8S 多節點分次更新
節點列表 假定我們有以下兩節點: controlplane node01 更新 Control Plane 主節點 假定我們要更新的目標版本是 1.27.0 ,如果要更新別的版本請手動修改以下版本 排空 controlplane 節點: kubectl drain controlplane --ignore-daemonsets 然後執
Post
K8S基本操作-46-關於儲存與 Volume
K8S 使用的儲存與網路介面 K8S 提供了三種開放的接口規範,分別是 CRI、CNI 和 CSI,用於對接不同的後端,實現計算、網路和存儲資源的管理。 只要符合
Post
K8S基本操作-45-Kubectx 和 Kubens
Kubectx 和 Kubens 是兩個用於簡化 Kubernetes 集群管理的命令行工具。 Kubectx 允許您快速在不同的 Kubernetes 集群和命名空間之間切換。 Kubens 允許您快速在不同的命名空間之間切換。 這兩個工具都
Post
K8S基本操作-44-Network Policy
Network Policy K8S Network Policy 是一種 Kubernetes 的功能,可以讓你控制 Pod 之間或 Pod 與外部網路的通訊規則。你可以使用 Network Policy 來定義哪些 Pod 可以互相連接,或者哪些 Pod 可以存取特定的 IP 或埠
Post
K8S基本操作-43-Secure Context 設置容器為 no-root 用戶與 Capability
Secure Context 設置容器為 no-root 用戶 我們可以加入以下這段: spec: securityContext: runAsUser: 1010 加完之後狀況如下: --- apiVersion: v1 kind: Pod metadata: name: ubuntu-sleeper namespace: default spec: securityContext: runAsUser: 1010 containers: - command: - sleep - "4800" image: ubuntu name: ubuntu-sleeper 也可以寫在Contai
Post
K8S基本操作-42-K8S 選擇映像檔來源
建立一個 Secret 用於儲存映像檔專用 假定我們映像檔來源如下: Name: private-reg-cred Username: dock_user Password: dock_password Server: myprivateregistry.com:5000 Email: dock_user@myprivateregistry.com 我們以此用以下指令建立一個專用的 secret 儲存映像檔伺服器與登入資訊: kubectl create secret
Post
K8S基本操作-41-K8S Service account
Service Account 介紹 服務帳戶 (Service Account) 是一種由 Kubernetes 管理的帳戶類型,主要用於為 Pod 中執行的程序提供身分。它可以讓 Pod 訪問 Kubernetes API 和其他資源,而無需使用密碼或其他敏感資訊。
Post
K8S基本操作-40-K8S Cluster Role 主機叢集角色
Cluster Role 由於有些資源是綁定某一台主機的,例如: Volume 這種存在硬碟上的資源。 並且這些資源橫跨多個 Namespace 與多個 Node , 如開發環境跟生產環境都需要 Volume 。 而有時候需要
Post
K8S基本操作-39-K8S 的使用者與權限
我們是否能在 K8S 建立使用者 並非直接建立,而是採用 x509 建立使用者鑰匙後建立。 K8S 的權限種類 Node 例如每個 Worker Node 都擁有一個權限身份,設置在 kubelet 用來存取 Kube API
Post
K8S基本操作-38-K8S API
K8S API 如果我們需要為 K8S 設置自訂介面,更加自動化,甚至將 K8S 由大語言模型管理,這時候存取 API 就是個需要的功能了。 常見的 API 我們這邊以不一定真實存在的 URL:
Post
K8S基本操作-37-K8S原生憑證簽署方式
K8S 中各部件通訊時如何保障安全 kube-apiserver, kube-controller-manager, kube-scheduler, etcd, kubelet, kube-proxy 都存在著自己的鑰匙與憑證。 具體來說,每個部件都有著對應的憑證與Key: # 預設管理員 admin.crt admin.key # KUBE-SCHEDULER scheduler.crt scheduler.key # KUBE-CONTROLLER-MANAGER controllermanager.crt
Post
K8S基本操作-36-當Kube-API Server 失效時用 CRICTL 檢查錯誤
失效情況 當 ETCD server 失效,或者 Kube API server 失效時,這時無法使用 kubectl 指令登入查看。 這種時刻,需要做的就是登入該 Server ,然後使用 K8S 採用的容器 Runtime 工具來檢查錯誤報告。
Post
K8S基本操作-35-ETCD 的預設 Port
ETCD 的預設 Port ETCD server 預設使用 2379 port,所以當 Log 發生連線 2379 port 失敗時,可能是與 ETCD server 連線發生問題。
Post
K8S基本操作-34-檢查 ETCD 登入 Log
檢查 ETCD 登入 Log 我們可以用以下指令查看 etcd 的 client 端登入 Log,包含驗證成功與失敗。 -l 代表詳細內容, -u 代表來自使用者的訊息。 journalctl -u etcd.service -l 或者我們可以採用 kubectl
Post
K8S基本操作-33-在 External ETCD server Restore
在外部 ETCD server Restore 回復備份 我們的備份位置: /root/cluster2.db 將要儲存新的 etcd 資料的目錄: /var/lib/etcd-data-new 進行備份回復的指令: ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 --cacert=/etc/etcd/pki/ca.pem --cert=/etc/etcd/pki/etcd.pem --key=/etc/etcd/pki/etcd-key.pem snapshot restore /root/cluster2.db --data-dir /var/lib/etcd-data-new 修改 Service 修改以下檔案: /etc/systemd/system/etcd.service 把 ... [Service] User=etcd Type=notify
Post
K8S基本操作-32-檢查ETCD server 上的各種狀態配置
用 PS 指令檢查 etcd 的各個配置檔案路徑與參數 有些情況 Kubectl 工具未安裝在 etcd server 上,所以必須要手動用 ps 指令檢查參數: ps aux|grep etcd 結果: etcd 808 0.0 0.0 11218624 56044 ? Ssl 01:58 0:44 /usr/local/bin/etcd --name etcd-server --data-dir=/var/lib/etcd-data
Post
K8S基本操作-31-如何檢查Cluster採用的ETCD的IP or URL ?
如何檢查Cluster採用的ETCD的IP or URL ? 由於 Kube-API server,記錄著這類的訊息,所以可以調出 Pod 訊息查看 ETCD 的位置。 kubectl -n kube-system describe pod <Kube-API Server 的 Pod 名稱
Post
K8S基本操作-30-多個 Cluster 與 KubeConfig
Config不等於Config Map KubeConfig 為何要使用 KubeConfig ? 由於如果每次使用 kubectl 指令時,都要附上長串的使用者/密碼/憑證路徑,對維運效率的十分有影響的。 如
Post
K8S基本操作-29-備份與還原叢集
備份的幾種方式 Velero 可以簡單佈署在 Docker 上的 K8S 備份工具,還有 Web GUI 。 操作簡單功能完整。 此種方式甚至可以把 Volume 一起打包。 (文章撰寫時)是開源免費的。 https://velero.io/docs/v1.13/ Kubectl 備
Post
K8S基本操作-28-檢查ETCD版本
ETCD 是什麼? K8S 的 ETCD 是一個開源的分散式鍵值儲存系統,用於儲存 Kubernetes 叢集的配置和狀態資料。 它是 Kubernetes 的核心元件之一,為叢集提供以下功能: 共享配置: 儲存 Kubernetes 叢
Post
K8S基本操作-27-更新K8S Cluster
基本概念 以下是更新 K8S 需要更新的組件: (以下為同版本的組件) kube-apiserver (位於 Master 上) Controller-manager (位於 Master 上) kube-scheduler (位於 Master 上) kubelet (位於 Worker上) kube-proxy (位於 Work
Post
K8S基本操作-26-Drain
Drain 與 uncordon 在 Kubernetes (K8S) 中,Drain (有排水的意思) 功能可以將 Pod 轉移到其他的 Node。 方便對某個 Node 進行更新。 排空 node01 由於一般會有 Daemonsets,所
Post
K8S基本操作-25-Init Containers
Init Containers 在 Kubernetes (K8S) 中,Init Containers 是一種特殊的容器,在 Pod 內的應用容器啟動之前運行。 Init Containers 可以包含一些應用鏡像中不存在的實用工具和安裝腳本。 你可以在 Pod 的規
Post
K8S基本操作-24-關於1個Pod中的2個容器共用1個Volume
關於1個Pod中的2個容器共用1個Volume 以下這個YAML中存在1個 Pod app 此 Pod 中有兩個容器app與sidecar。 接著我們注意到以下兩個容
Post
K8S基本操作-23-Exec 執行 Pod 中的指令
Exec 執行 Pod 中的指令 假定我們的 Pod 稱為 app 。 例如,以下的的指令用來直接看 Pod 中的 Log (當然,這不是好方法,但在一切裝置好之前,也許會用上): kubectl exec -it app cat /log/app.log
Post
K8S基本操作-22-K8S的Secret
命令建立 Secret 直接採用指令來輸入 Secret 的方法: kubectl create secret generic db-secret --from-literal=DB_Host=sql01 --from-literal=DB_User=root --from-literal=DB_Password=password123 YAML 儲存 Secret 將 Secret 轉換成 YAML 編輯: kubectl create secret generic db-secret --from-literal=DB_Host=sql01 --from-literal=DB_User=root --from-literal=DB_Password=password123 --dry-run=client -o yaml > db-secret.yaml 可以看到 Base64 編碼後的 Secret (防止一眼被人
Post
K8S基本操作-21-K8S的YAML的環境變數與Config Map
環境變數 我們可以採用以下方式設置環境變數: apiVersion: v1 kind: Pod metadata: labels: name: webapp-color name: webapp-color namespace: default spec: containers: - env: - name: APP_COLOR value: pink image: kodekloud/webapp-color imagePullPolicy: Always name: webapp-color 其中的這一段就是了: - env: - name: APP_COLOR value: pink Config Map 以下是
Post
K8S基本操作-20-K8S的YAML的 Command 對 Dockerfile 的 Entrypoint 覆蓋
如果 Dockerfile 跟 K8S 的 YAML 配置的 Entrypoint 與 Command 不一樣呢? 實際上執行的指令會是哪一種? FROM python:3.6-alpine RUN pip install flask COPY . /opt/ EXPOSE 8080 WORKDIR /opt ENTRYPOINT ["python", "app.py"] CMD ["--color", "red"] apiVersion: v1 kind: Pod metadata: name: webapp-green labels: name: webapp-green spec: containers: - name: simple-webapp image: kodekloud/webapp-color command: ["python",
Post
K8S基本操作-19-K8S的 Rolling Update與 Recreate
我們觀察以下的 Deployment: apiVersion: apps/v1 kind: Deployment metadata: annotations: deployment.kubernetes.io/revision: "1" creationTimestamp: "2024-02-01T01:17:43Z" generation: 1 name: frontend namespace: default resourceVersion: "1023" uid: 2933b6b7-59b7-412f-b806-8b80a593f61f spec: minReadySeconds: 20 progressDeadlineSeconds: 600 replicas: 4 revisionHistoryLimit: 10 selector: matchLabels: name: webapp strategy: rollingUpdate: maxSurge: 25% maxUnavailable: 25% type: RollingUpdate template: metadata: creationTimestamp: null labels: name: webapp spec: containers: - image: kodekloud/webapp-color:v1 imagePullPolicy: IfNotPresent name: simple-webapp ports: - containerPort: 8080 protocol:
Post
K8S基本操作-17-安裝Metrics Server
Metrics Server 可以監控 K8S 的 Cluster 上的每個 Node 的 CPU, RAM 等使用。 安裝 最簡單的方式是參照以下網址,直接一行指令安裝: https://github.com/kubernetes-sigs/metrics-server kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml 使用 可以查看 Node 的 CPU 與 RAM 使用率。 kubectl top node 輸
Post
K8S基本操作-16-手動自行建設Scheduler
檢查預設的 Scheduler Scheduler 是個 Pod ,位於 kube-system 這個 namespace。 用以下指令查看 Scheduler: kubectl get pod -n kube-system 設置 Service Account 與 Cluster Role 設置如下: ServiceAccount: my-scheduler (kube-system namespace) ClusterRoleBinding: my-scheduler-as-kube-scheduler ClusterRoleBinding: my-scheduler-as-volume-scheduler 同時建立 Config Map 與 Depl
Post
K8S基本操作-15-ServiceAccount 和 ClusterRoleBinding
ServiceAccount 和 ClusterRoleBinding ServiceAccount(服務帳戶) ServiceAccount(服務帳戶) 是一種 Kubernetes 資源,用於為 Pod 提供身份。Pod 可以使用 ServiceAccount 來訪問
Post
K8S基本操作-14-Static pods
Static pods 在 Kubernetes 中,Static Pod 是一種特殊的 Pod,它不像一般的 Pod 由 Deployment 或 DaemonSet 等控制器管理,而是直接由特定節點上的 kubelet 进程管理。Static Pod 的主要特點
Post
K8S基本操作-13-Daemonsets
Daemonsets 這類程式常駐於 Node 上,類似程式的守護進程。 可用以下指令檢查所有 Namespace 的 Daemonsets: kubectl get daemonsets --all-namespace 運行叢集守護進程,例如日誌收集、監控、網路代理程式等。 在所有節點
Post
K8S基本操作-12-Resource limits
Resource limits 資源限制 我們可以設置一個 Deployment 最少需要多少資源,與最多消耗多少資源。 具體的用法是在 containers 裏頭寫下 requests 與 limits 項目。 官方的範例: --- apiVersion: v1 kind: Pod metadata: name: frontend spec: containers: - name:
Post
K8S基本操作-11-Node Affinitty
Node Affinitty 在 Kubernetes 中,Node affinity(節點親和性)是一種用於控制 Pod 調度到哪些節點上的機制。它允許您根據節點的屬性和標籤,指定 Pod 應該调度到哪些
Post
K8S基本操作-10-Taints AND Tolerations
Taints AND Tolerations 在 Kubernetes 中,Taints 和 Tolerations 是一種用於控制 Pod 調度到哪些節點上的機制。 Taints Taint 是一種附加到節點上的鍵值對。它表示該節點不適合運行具有特定容忍度(
Post
K8S基本操作-09-Labels and Selectors
Labels and Selectors Labels 是附加到 Kubernetes 對象(例如 Pod、Deployment、Service 等)上的鍵值對。它們可以用來對對象進行分類和標識,以便於管理和查找。
Post
K8S基本操作-08-Scheduling
Kube-scheduler kube-scheduler 負責監視新創建的或尚未調度(unscheduled)的 Pod,並選擇一個最佳節點來運行這些 Pod。由於 Pod 中的容器和 Pod 本身可能有不同的要求
Post
K8S基本操作-07-Ubuntu安裝K8S
MicroK8S Ubuntu 官方提供了一個 snap 套件可以超快的安裝 K8S , 稱為 MicroK8S。 sudo snap install microk8s --classic --channel=1.28 sudo usermod -a -G microk8s $USER sudo chown -f -R $USER ~/.kube su - $USER 安裝後檢查狀態是否安裝完成 microk8s status --wait-ready 使
Post
K8S基本操作-06-imperative指令
Imperative imperative command 指令式命令,例如詳細描述每個需要的步驟。 Declarative command 宣告式命令,僅需要描述期待,實現則由程式自行決定。 如 kubectl run nginx-pod --image=nginx:alpine 就屬於 imperative command。
Post
K8S基本操作-05-Service基本使用
列出 services kubectl get services 結果如下 controlplane ~ ➜ kubectl get services NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.43.0.1 <none> 443/TCP 13m kubernetes 的 ClusterIP 是 K8S 預設的服務。 顯示 service 的細部內容 kubectl describe service kubernetes 結果如下。 controlplane ~ ➜ kubectl describe service kubernetes Name: kubernetes Namespace: default Labels: component=apiserver provider=kubernetes
Post
K8S基本操作-04-namespace基本使用
列出 namespaces kubectl get namespaces 列出某 namespaces 裏頭的 pods 例如我們要取得 research namespaces 裏頭的 pod。 kubectl -n research get pods 算出某個 namespaces 裏頭的 pods 數量 kubectl -n research get pods --no-headers | wc -l 手動在某 namespaces 裏頭啟動 pod kubectl -n finance run redis
Post
K8S基本操作-03-Deployment基本使用
取得當前有多少 Deployments kubectl get deployments 檢查 Deployments kubectl describe deployment frontend-deployment 用 YAML 執行一個 Deployment 記得 kind: Deployment 開頭要大寫 kubectl apply -f deployment-definition-1.yaml 閱讀 Deployment 官方文檔 kubectl explain deployment
Post
K8S基本操作-02-ReplicaSet基本使用
本篇筆記主要談論 ReplicaSet 的基本操作。 ReplicaSet 只能維持 Pod 的數量,不能實現 Pod 的版本更新。如果要更新 Pod 的映像檔或配置,需要手動刪除舊的 Pod,讓 ReplicaSet 根據模板創建
Post
K8S基本操作-01-建立與管理Pod
本篇筆記主要談論 kubectl 的基本操作。 列出 default namespace 的 pods kubectl get pods 或者 kubectl get pods -n default 手動運作一個 Nginx 的 pod kubectl run nginx --image=nginx 確認 pod 使用哪個 image 用以下指令顯示 pod 完整細節。 例如我們的
Tag: kvm
Post
安裝KVM
本篇討論在linux mint上頭安裝kvm虛擬機的方法。 檢查CPU相容性 cpu檢查工具 sudo apt install cpu-checker 檢查 sudo kvm-ok apt 套件安裝 sudo apt install -y qemu qemu-kvm libvirt-daemon libvirt-clients bridge-utils virt-manager ovmf 啟動虛
Tag: linux
Post
adduser 和 useradd 的差異
adduser 和 useradd 的差異: adduser 用法 sudo adduser [選項] 用戶名 # 無選項添加新用戶: 會提示您輸入用戶的密碼和其他信息。 sudo adduser 用戶名 # 添加系統用戶: 這將添加一個沒有家目錄
Post
linux常用解壓縮指令
tar 假定我們有個目錄稱為 ./my 壓縮 # 壓縮 tar -czvf my.tar.gz ./my # 單純歸檔 tar -cvf my.tar ./my c:建立一個新的歸檔檔案。 z:使用 gzip 壓縮。 v:顯示執行過程中的詳細資訊(verb
Post
iptables筆記-1
iptables 是什麼? iptables 是 Linux 內核中的防火牆軟體 netfilter 的管理工具,位於使用者空間,同時也是 netfilter 的一部分。 Netfilter 位於內核空間,不僅有網路地址轉換的功能,也具備資料包內
Post
Linux Service小筆記
Service 啟動與關閉 Service 可以用在希望開機時自動運作一組程式或者 Bash 腳本,可以自動的啟動或者關閉一連串流程,甚至可以在程式崩潰時重啟。 這類操作由指令 service 與 systemctl
Post
Linux網路基本指令1
ip 類網路指令 以下指令僅在重新啟動前生效,如果要長期保存,需要根據各 Linux 發行版不同實踐調整設定檔案。 # 列出介面 ip link # 查詢個別網卡的資訊 ip addr show eth0 ip
Post
linux查看Journalctl的log
Journalctl 檢查近期 Linux 的Log。 -f: 在終端機上持續輸出。 -n 100: 近期 100 條 Log。 journalctl -f -n 100
Post
nginx配置多個reverse-proxy
我們可以看到 nginx 的配置檔案位於下面的位置。 /etc/nginx/nginx.conf 我們可以用下列方法來重新導向我們的 Domain name,可以導向容器,或者其他運作中的程式實例。 nginx.conf server { server_name example1.com; location
Post
清理apt暫時存檔
下載套件的暫存路徑清除 當apt套件管理工具在安裝套件時,會先對套件進行下載。 下載完畢尚未安裝的套件會被儲存在以下路徑: /var/cache/apt/archives 當這個目錄裡頭的東西
Post
安裝KVM
本篇討論在linux mint上頭安裝kvm虛擬機的方法。 檢查CPU相容性 cpu檢查工具 sudo apt install cpu-checker 檢查 sudo kvm-ok apt 套件安裝 sudo apt install -y qemu qemu-kvm libvirt-daemon libvirt-clients bridge-utils virt-manager ovmf 啟動虛
Post
curl遠端執行shell
遠端(例如github或網頁)執行shell script的方法, 此方法需要curl套件。 bash < <(curl -s 網址) 這種方法執行的shell中不可加入su
Post
Bashtop好看點的主機狀態面板
希望有個看起來酷炫又詳細的主機狀態顯示器嗎? bashtop符合你的需求! 在debian上頭安裝bashtop sudo add-apt-repository ppa:bashtop-monitor/bashtop sudo apt update sudo apt install bashtop
Post
Linux_mint卡在開始logo的解決
Linux_mint卡在開始logo的解決 linux mint 在某些情況下會卡在開機logo 而引發這種情況的可能原因 常常與顯示卡(gpu)有關連 若顯示卡是n
Post
Linux Mint20更換開機圖示
下載喜歡的開機圖示 下載開機圖示1 下載開機圖示2 打開圖示資料夾取出最裡層的資料夾 然後將其複製到以下位置 /usr/share/plymouth/themes 修改圖示檔案設定文件 修改預設的開機圖示
Post
Linux在SSD上的損耗減少策略2(關閉系統紀錄)
在linux中,為了明確清楚電腦曾經發生過什麼,所以會將一切紀錄記載在以下資料夾 /var/log 但是這樣終究會損耗SSD的寫入次數 而且紀錄檔會越來越大 如果
Post
linux在SSD上的損耗減少策略1(佔存檔移入記憶體)
概述 固態硬碟SSD存在著寫入次數限制 而linux上頭各應用程式 暫時存在的檔案通常會放在 /tmp 目錄之中 我們該如何減少/tmp 中頻繁的擦寫帶來的損耗
Post
手動連接裝置或磁碟槽(掛載)
假設今天,你的硬碟同時存在linux與windows 你啟動linux後希望存取windows的D槽 此時D槽被標記為 /dev/sda2 這時你可以先建立資料夾 /media/MyDisk
Tag: mac
Tag: math
Post
Mermaid畫出流程圖
我們可以用Mermaid這個Javascript函數庫來繪製出流程圖。 graph TD A(程式開始) --> B{A>1 and B=0} B -->|True| D(Y=A) B -->|False| E{A=2 or x>1} D --> E{A=2 or x>1} E{A=2 or x>1} --> |False| G(程式
Post
LaTex畫出矩陣
繪製出普通的矩陣 \documentclass{article} \usepackage{amsmath} \begin{document} $\begin{bmatrix} a & b & d\\ c & d & d \end{bmatrix}$ \end{document} $\begin{bmatrix} a & b & d\\ c & d & d \end{bmatrix}$ 繪製出有線的矩陣 \documentclass{article} \usepackage{amsmath} \begin{document} $\begin{bmatrix} \begin{array}{cc|c} a & b & d\\ c & d & d \end{array} \end{bmatrix}$ \end{document} $\begin{bmatrix} \begin{array}{cc|c} a & b & d\\ c
Post
數學符號
1.連續乘法符號 該符號代表連續成法,是pi的大寫版本。 \[ \prod_{i=1}^{4} {i} = 1\times2\times3\times4=24 \] <script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script> <script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script> <p> \[ \prod_{i=1}^{4} {i} = 1\times2\times3\times4 \] </p>
Tag: modeset
Post
Linux_mint卡在開始logo的解決
Linux_mint卡在開始logo的解決 linux mint 在某些情況下會卡在開機logo 而引發這種情況的可能原因 常常與顯示卡(gpu)有關連 若顯示卡是n
Tag: monitor
Tag: network
Post
python網路與安全閱讀心得
本篇引用自Mastering python for networking and security一書 文中所有範例都來自該書本與該書本的範例網站 書本的範例儲存庫: https://github.com/PacktPublishing/Mastering-Python-for-Networking-and-Security-Second-Edition 目錄 第一章 從目錄來看,
Post
python與byte串與網路
本篇引用自Foundations of Python Network Programming一書 bytes串與網路的關係 在網路傳輸時如socket,是無法直接採取Unico
Post
python網路程式03:tcp
本篇引用自Foundations of Python Network Programming一書 1.tcp通訊 import argparse, socket #如果長度不符預期,則發出錯誤提示 def recvall(sock, length): data = b'' while len(data) < length: more
Post
python網路程式02:udp協定與port
本篇引用自Foundations of Python Network Programming一書 1.port的用途 port其實可以看作在網路傳輸訊息上頭的一個小標籤 用來區分
Post
python網路程式01:基礎
本篇引用自Foundations of Python Network Programming一書 本章討論如何使用python發出http請求 1.用網址取得主機ip import socket if __name__ ==
Tag: ngrok
Tag: node.js
Post
NPM初始化資料夾
NPM初始化空資料夾 建立一個空資料夾,並且進入資料夾。 mkdir npm-test cd npm-test 輸入npm初始化指令 npm init 然後輸入下列內容: package name: 專案名稱 version: 專案版本 description: 專案介紹 entry point:
Post
用Express-generator重新實做路由
目錄 1.先備知識 2.新增路由檔案 3.修改app.js 先備知識 學會安裝NPM 用Express-generator建立專案 Express-gen
Post
Express-generator使用與理解
目錄 1.先備知識 2.專案進入點/bin/www 3.理解package.json 4.理解app.js 5.調整Morgan的log格式 6.模塊(
Post
用Express-generator建立專案
建立一個資料夾稱為web mkdir web 進入資料夾 cd web 安裝express 完整語法 npm install express --save 也可以安裝為開發者模式 npm install express --save-dev 簡化語法 一般模式 npm i express 也可以安裝為
Post
使用Express
原生的安裝方式 建立一個資料夾稱為web mkdir web 進入資料夾 cd web 安裝express 完整語法 npm install express --save 也可以安裝為開發者模式 npm install express --save-dev 簡化語法 一般模式 npm i
Post
執行一個簡單的node.js程式
Node.js一句話陳述 用javascript在非瀏覽器的本機環境用的直譯器。 一個簡單的javascript的程式 檔案名稱: main.js console.log("Hello world"); 直接執行 node
Tag: ns2
Tag: opencv
Post
opencv的第一個程式
1.要求 需要看懂,建議去看基礎的C++教學。 2.main.cpp 我們首先建立一個檔案,稱為main.cpp 內含我們主要的C++檔案 #include <stdio.h> #include <opencv2/opencv.hpp> using namespace cv; int main(int argc, char* argv[]) { //
Post
opencv安裝
1.Linux版本 此範例用在Ubuntu20.04 2.apt安裝opencv 安裝c++版本 sudo apt-get install libopencv-dev 安裝python版本 sudo apt-get install python-opencv
Tag: opengl
Post
OpenGL課堂筆記
目錄 第一週 推薦書 Edward Angel and Dave Shreiner, Interactive Computer Graphics: A Top-Down Approach With Shader-Based Opengl, 6th Edition, Addison-Wesley Pub. Co., April 10, 2011. ISBN:978-0132545235. Edward Angel and Dave Shreiner, Interactive Computer Graphics: A Top-Down Approach Using WebGL, 7th Edition, Addison-Wesley Pub. Co., March 10,
Post
opengl安裝(Ubuntu)
1.Linux版本 此範例用在Ubuntu20.04 2.apt安裝opengl 安裝OpenGL與相關依賴 sudo apt install cmake make g++ libx11-dev libgl1-mesa-dev libglu1-mesa-dev libxrandr-dev libxext-dev libglew-dev libglfw3 libglfw3-dev freeglut3-dev freeglut3 這邊主
Tag: openssl
Post
查看OpenSSL憑證指令
檢查憑證的指令如下 檢查憑證的指令可以用-text與-noout來查看憑證細節: openssl x509 -in my.crt -text -noout 輸出類似: Certificate: Data: Version: 3 (0x2) Serial Number: 3147495682089747350 (0x2bae26a58f090396) Signature Algorithm: sha256WithRSAEncryption Issuer: CN=kubernetes Validity Not Before: Feb 11 05:39:19
Post
關於OpenSSL憑證-建立自簽CA憑證與憑證登入授權要素
關於 CA Certificate Authority,也就是 SSL 數位憑證的簽發機構。CA 負責對申請 SSL 憑證的網站進行身份驗證,並為其簽發一個包含公開金鑰和其他資訊的數位憑
Tag: python
Post
python網路與安全閱讀心得
本篇引用自Mastering python for networking and security一書 文中所有範例都來自該書本與該書本的範例網站 書本的範例儲存庫: https://github.com/PacktPublishing/Mastering-Python-for-Networking-and-Security-Second-Edition 目錄 第一章 從目錄來看,
Post
python與byte串與網路
本篇引用自Foundations of Python Network Programming一書 bytes串與網路的關係 在網路傳輸時如socket,是無法直接採取Unico
Post
python網路程式03:tcp
本篇引用自Foundations of Python Network Programming一書 1.tcp通訊 import argparse, socket #如果長度不符預期,則發出錯誤提示 def recvall(sock, length): data = b'' while len(data) < length: more
Post
python網路程式02:udp協定與port
本篇引用自Foundations of Python Network Programming一書 1.port的用途 port其實可以看作在網路傳輸訊息上頭的一個小標籤 用來區分
Post
python網路程式01:基礎
本篇引用自Foundations of Python Network Programming一書 本章討論如何使用python發出http請求 1.用網址取得主機ip import socket if __name__ ==
Post
python_virtualenv使用
1.安裝virtualenv虛擬環境 linux mint或ubuntu上頭安裝時可以用apt來進行安裝 sudo apt install virtualenv 或直接用pip3來安裝 pip3 install virtualenv 2.建立虛擬
Tag: ramdisk
Tag: react
Tag: secure
Post
查看OpenSSL憑證指令
檢查憑證的指令如下 檢查憑證的指令可以用-text與-noout來查看憑證細節: openssl x509 -in my.crt -text -noout 輸出類似: Certificate: Data: Version: 3 (0x2) Serial Number: 3147495682089747350 (0x2bae26a58f090396) Signature Algorithm: sha256WithRSAEncryption Issuer: CN=kubernetes Validity Not Before: Feb 11 05:39:19
Post
關於OpenSSL憑證-建立自簽CA憑證與憑證登入授權要素
關於 CA Certificate Authority,也就是 SSL 數位憑證的簽發機構。CA 負責對申請 SSL 憑證的網站進行身份驗證,並為其簽發一個包含公開金鑰和其他資訊的數位憑
Post
資訊安全與管理筆記
目錄 第一週 第二週 第三週 第一週 推薦書 William Stallings. Cryptography and Network Security: Principles and Practice (7th Edition). Prentice Hall, 2017(主要) Behrouz A. Forouzan. Introduction to Cryptography and Network Security. McGraw-Hill, 2007. Douglas R. Stinson. Cryptography : theory and practice (3/e). Boca Raton : Chapman & Hall/CRC, 2006. Bruce Schneier. Applied Cryptography: Protocols,
Post
python網路與安全閱讀心得
本篇引用自Mastering python for networking and security一書 文中所有範例都來自該書本與該書本的範例網站 書本的範例儲存庫: https://github.com/PacktPublishing/Mastering-Python-for-Networking-and-Security-Second-Edition 目錄 第一章 從目錄來看,
Post
suricata入侵防禦系統(IPS)
作者 阿維 環境 拜託,使用Ubuntu吧! 不然要從頭編譯suricata。 雖然可以,但是比較麻煩。 安裝 安裝PPA sudo apt-get update sudo apt-get install software-properties-common sudo add-apt-repository ppa:oisf/suricata-stable sudo apt-get update 安裝s
Post
檢查下載檔是否被調包
1.檢查檔案的方法 今天假設我們下載了一個檔案,叫做 ubuntu-20.04.2-live-server-amd64.iso 我們要如何檢查是否被High客給調包? (High客:在網路上無時無刻情緒都很high,會
Tag: service
Post
Linux Service小筆記
Service 啟動與關閉 Service 可以用在希望開機時自動運作一組程式或者 Bash 腳本,可以自動的啟動或者關閉一連串流程,甚至可以在程式崩潰時重啟。 這類操作由指令 service 與 systemctl
Tag: sha
Post
檢查下載檔是否被調包
1.檢查檔案的方法 今天假設我們下載了一個檔案,叫做 ubuntu-20.04.2-live-server-amd64.iso 我們要如何檢查是否被High客給調包? (High客:在網路上無時無刻情緒都很high,會
Tag: shell
Post
curl遠端執行shell
遠端(例如github或網頁)執行shell script的方法, 此方法需要curl套件。 bash < <(curl -s 網址) 這種方法執行的shell中不可加入su
Tag: ssd
Post
Linux在SSD上的損耗減少策略2(關閉系統紀錄)
在linux中,為了明確清楚電腦曾經發生過什麼,所以會將一切紀錄記載在以下資料夾 /var/log 但是這樣終究會損耗SSD的寫入次數 而且紀錄檔會越來越大 如果
Post
linux在SSD上的損耗減少策略1(佔存檔移入記憶體)
概述 固態硬碟SSD存在著寫入次數限制 而linux上頭各應用程式 暫時存在的檔案通常會放在 /tmp 目錄之中 我們該如何減少/tmp 中頻繁的擦寫帶來的損耗
Tag: ssh
Tag: ssl
Post
查看OpenSSL憑證指令
檢查憑證的指令如下 檢查憑證的指令可以用-text與-noout來查看憑證細節: openssl x509 -in my.crt -text -noout 輸出類似: Certificate: Data: Version: 3 (0x2) Serial Number: 3147495682089747350 (0x2bae26a58f090396) Signature Algorithm: sha256WithRSAEncryption Issuer: CN=kubernetes Validity Not Before: Feb 11 05:39:19
Post
關於OpenSSL憑證-建立自簽CA憑證與憑證登入授權要素
關於 CA Certificate Authority,也就是 SSL 數位憑證的簽發機構。CA 負責對申請 SSL 憑證的網站進行身份驗證,並為其簽發一個包含公開金鑰和其他資訊的數位憑
Tag: system-monitoring-center
Tag: tmpfs
Tag: ventoy
Tag: virtualbox
Tag: virtualenv
Post
python_virtualenv使用
1.安裝virtualenv虛擬環境 linux mint或ubuntu上頭安裝時可以用apt來進行安裝 sudo apt install virtualenv 或直接用pip3來安裝 pip3 install virtualenv 2.建立虛擬
Tag: vue
Post
Vue筆記18以list管理class綁定
Vue筆記18以list管理class綁定 <!DOCTYPE html> <html lang="zh-hant-TW"> <head> <meta charset="UTF-8"> <title>簡化版Vue學習</title> </head> <style> .activeRed { color: red; }
Post
Vue筆記16動態調整綁定class
Vue筆記16動態調整綁定class <!DOCTYPE html> <html lang="zh-hant-TW"> <head> <meta charset="UTF-8"> <title>簡化版Vue學習</title> </head> <style> .activeRed { color: red; } .activeFont { font-size:
Post
Vue筆記17另一種class綁定方式
Vue筆記17另一種class綁定方式 <!DOCTYPE html> <html lang="zh-hant-TW"> <head> <meta charset="UTF-8"> <title>簡化版Vue學習</title> </head> <style> .activeRed { color: red; } .activeFont {
Post
Vue筆記13覆蓋原本標籤行為
Vue筆記13覆蓋原本標籤行為 <!DOCTYPE html> <html lang="zh-hant-TW"> <head> <meta charset="UTF-8"> <title>簡化版Vue學習</title> </head> <body> <div id="tag01"> <div> {{ message01 }}</div> <!
Post
Vue筆記14vbind與von縮寫
Vue筆記14vbind與von縮寫 <!DOCTYPE html> <html lang="zh-hant-TW"> <head> <meta charset="UTF-8"> <title>簡化版Vue學習</title> </head> <body> <div id="tag01"> <!-- v-bin
Post
Vue筆記15計算屬性
Vue筆記15計算屬性 <!DOCTYPE html> <html lang="zh-hant-TW"> <head> <meta charset="UTF-8"> <title>簡化版Vue學習</title> </head> <body> <div id="tag01"> <!--可以在綁定範
Post
Vue筆記12將表達式插入模板
Vue筆記12將表達式插入模板 <!DOCTYPE html> <html lang="zh-hant-TW"> <head> <meta charset="UTF-8"> <title>簡化版Vue學習</title> </head> <body> <div id="tag01"> <!--此處
Post
Vue筆記11偵測元素的創建與變更
Vue筆記11偵測元素的創建與變更 <!DOCTYPE html> <html lang="zh-hant-TW"> <head> <meta charset="UTF-8"> <title>簡化版Vue學習</title> </head> <body> <div id="tag01"> <div>{{ text01 }}</div> <div style="color:red">{{ changeAlert }}</div>
Post
Vue筆記10.資料的綁定
Vue筆記10.資料的綁定 <!DOCTYPE html> <html lang="zh-hant-TW"> <head> <meta charset="UTF-8"> <title>簡化版Vue學習</title> </head> <body> <!--物件目標標籤
Post
Vue筆記9.組件基本使用方式
Vue筆記9.組件基本使用方式 <!DOCTYPE html> <html lang="zh-hant-TW"> <head> <meta charset="UTF-8"> <title>簡化版Vue學習</title> </head> <body> <!--物件目標
Post
Vue筆記7.同步表單與頁面文字
Vue筆記7.同步表單與頁面文字 可以藉由v-model來同步輸入框與物件內的資料 <!DOCTYPE html> <html lang="zh-hant-TW"> <head> <meta charset="UTF-8"> <title>簡化版Vue學習&l
Post
Vue筆記5.for迴圈
Vue筆記5.for迴圈 若我們希望某個元素重複出現,例如卡片或商品外框 但是內容要求不同,例如商品名稱,我們可採用v-for <!DOCTYPE html> <html lang="zh-hant-TW"> <head> <meta charset="UTF-8"> &l
Tag: wifi
Tag: 中間人攻擊
Tag: 主機狀態
Post
Bashtop好看點的主機狀態面板
希望有個看起來酷炫又詳細的主機狀態顯示器嗎? bashtop符合你的需求! 在debian上頭安裝bashtop sudo add-apt-repository ppa:bashtop-monitor/bashtop sudo apt update sudo apt install bashtop
Tag: 伺服器
Tag: 前端
Post
Vue筆記18以list管理class綁定
Vue筆記18以list管理class綁定 <!DOCTYPE html> <html lang="zh-hant-TW"> <head> <meta charset="UTF-8"> <title>簡化版Vue學習</title> </head> <style> .activeRed { color: red; }
Post
Vue筆記16動態調整綁定class
Vue筆記16動態調整綁定class <!DOCTYPE html> <html lang="zh-hant-TW"> <head> <meta charset="UTF-8"> <title>簡化版Vue學習</title> </head> <style> .activeRed { color: red; } .activeFont { font-size:
Post
Vue筆記17另一種class綁定方式
Vue筆記17另一種class綁定方式 <!DOCTYPE html> <html lang="zh-hant-TW"> <head> <meta charset="UTF-8"> <title>簡化版Vue學習</title> </head> <style> .activeRed { color: red; } .activeFont {
Post
Vue筆記13覆蓋原本標籤行為
Vue筆記13覆蓋原本標籤行為 <!DOCTYPE html> <html lang="zh-hant-TW"> <head> <meta charset="UTF-8"> <title>簡化版Vue學習</title> </head> <body> <div id="tag01"> <div> {{ message01 }}</div> <!
Post
Vue筆記14vbind與von縮寫
Vue筆記14vbind與von縮寫 <!DOCTYPE html> <html lang="zh-hant-TW"> <head> <meta charset="UTF-8"> <title>簡化版Vue學習</title> </head> <body> <div id="tag01"> <!-- v-bin
Post
Vue筆記15計算屬性
Vue筆記15計算屬性 <!DOCTYPE html> <html lang="zh-hant-TW"> <head> <meta charset="UTF-8"> <title>簡化版Vue學習</title> </head> <body> <div id="tag01"> <!--可以在綁定範
Post
Vue筆記12將表達式插入模板
Vue筆記12將表達式插入模板 <!DOCTYPE html> <html lang="zh-hant-TW"> <head> <meta charset="UTF-8"> <title>簡化版Vue學習</title> </head> <body> <div id="tag01"> <!--此處
Post
Vue筆記11偵測元素的創建與變更
Vue筆記11偵測元素的創建與變更 <!DOCTYPE html> <html lang="zh-hant-TW"> <head> <meta charset="UTF-8"> <title>簡化版Vue學習</title> </head> <body> <div id="tag01"> <div>{{ text01 }}</div> <div style="color:red">{{ changeAlert }}</div>
Post
Vue筆記10.資料的綁定
Vue筆記10.資料的綁定 <!DOCTYPE html> <html lang="zh-hant-TW"> <head> <meta charset="UTF-8"> <title>簡化版Vue學習</title> </head> <body> <!--物件目標標籤
Post
Vue筆記9.組件基本使用方式
Vue筆記9.組件基本使用方式 <!DOCTYPE html> <html lang="zh-hant-TW"> <head> <meta charset="UTF-8"> <title>簡化版Vue學習</title> </head> <body> <!--物件目標
Post
Vue筆記7.同步表單與頁面文字
Vue筆記7.同步表單與頁面文字 可以藉由v-model來同步輸入框與物件內的資料 <!DOCTYPE html> <html lang="zh-hant-TW"> <head> <meta charset="UTF-8"> <title>簡化版Vue學習&l
Post
Vue筆記5.for迴圈
Vue筆記5.for迴圈 若我們希望某個元素重複出現,例如卡片或商品外框 但是內容要求不同,例如商品名稱,我們可採用v-for <!DOCTYPE html> <html lang="zh-hant-TW"> <head> <meta charset="UTF-8"> &l
Tag: 反組譯
Post
區域變數與陣列的記憶體安排
區域變數與動態分配存在於stack中,是由高位向低位記憶體成長 類似這樣 記憶體高位 ----- int a int b int c . . . ----- 記憶體低位 而陣列存在於heap中,是由
Post
Gdb使用
GDB使用指令 --------------- 提示gcc編譯時記得開啟g選項,編譯出來的產物才不會啟動優化, 同時可以使用gdb除錯 匯入檔案:gdb 檔案名稱 匯入後命令行左邊
Tag: 手機網路
Tag: 檢查
Post
檢查下載檔是否被調包
1.檢查檔案的方法 今天假設我們下載了一個檔案,叫做 ubuntu-20.04.2-live-server-amd64.iso 我們要如何檢查是否被High客給調包? (High客:在網路上無時無刻情緒都很high,會
Tag: 組合語言
Post
區域變數與陣列的記憶體安排
區域變數與動態分配存在於stack中,是由高位向低位記憶體成長 類似這樣 記憶體高位 ----- int a int b int c . . . ----- 記憶體低位 而陣列存在於heap中,是由
Post
Gdb使用
GDB使用指令 --------------- 提示gcc編譯時記得開啟g選項,編譯出來的產物才不會啟動優化, 同時可以使用gdb除錯 匯入檔案:gdb 檔案名稱 匯入後命令行左邊
Tag: 網路
Post
python網路程式01:基礎
本篇引用自Foundations of Python Network Programming一書 本章討論如何使用python發出http請求 1.用網址取得主機ip import socket if __name__ ==
Tag: 自訂
Post
Linux Mint20更換開機圖示
下載喜歡的開機圖示 下載開機圖示1 下載開機圖示2 打開圖示資料夾取出最裡層的資料夾 然後將其複製到以下位置 /usr/share/plymouth/themes 修改圖示檔案設定文件 修改預設的開機圖示
Tag: 課堂筆記
Post
資訊安全與管理筆記
目錄 第一週 第二週 第三週 第一週 推薦書 William Stallings. Cryptography and Network Security: Principles and Practice (7th Edition). Prentice Hall, 2017(主要) Behrouz A. Forouzan. Introduction to Cryptography and Network Security. McGraw-Hill, 2007. Douglas R. Stinson. Cryptography : theory and practice (3/e). Boca Raton : Chapman & Hall/CRC, 2006. Bruce Schneier. Applied Cryptography: Protocols,
Tag: 資安
Post
資訊安全與管理筆記
目錄 第一週 第二週 第三週 第一週 推薦書 William Stallings. Cryptography and Network Security: Principles and Practice (7th Edition). Prentice Hall, 2017(主要) Behrouz A. Forouzan. Introduction to Cryptography and Network Security. McGraw-Hill, 2007. Douglas R. Stinson. Cryptography : theory and practice (3/e). Boca Raton : Chapman & Hall/CRC, 2006. Bruce Schneier. Applied Cryptography: Protocols,
Post
檢查下載檔是否被調包
1.檢查檔案的方法 今天假設我們下載了一個檔案,叫做 ubuntu-20.04.2-live-server-amd64.iso 我們要如何檢查是否被High客給調包? (High客:在網路上無時無刻情緒都很high,會
Tag: 資訊安全與管理
Post
資訊安全與管理筆記
目錄 第一週 第二週 第三週 第一週 推薦書 William Stallings. Cryptography and Network Security: Principles and Practice (7th Edition). Prentice Hall, 2017(主要) Behrouz A. Forouzan. Introduction to Cryptography and Network Security. McGraw-Hill, 2007. Douglas R. Stinson. Cryptography : theory and practice (3/e). Boca Raton : Chapman & Hall/CRC, 2006. Bruce Schneier. Applied Cryptography: Protocols,
Tag: 開機
Post
Linux_mint卡在開始logo的解決
Linux_mint卡在開始logo的解決 linux mint 在某些情況下會卡在開機logo 而引發這種情況的可能原因 常常與顯示卡(gpu)有關連 若顯示卡是n
Post
Linux Mint20更換開機圖示
下載喜歡的開機圖示 下載開機圖示1 下載開機圖示2 打開圖示資料夾取出最裡層的資料夾 然後將其複製到以下位置 /usr/share/plymouth/themes 修改圖示檔案設定文件 修改預設的開機圖示
Tag: 開機失敗
Post
Linux_mint卡在開始logo的解決
Linux_mint卡在開始logo的解決 linux mint 在某些情況下會卡在開機logo 而引發這種情況的可能原因 常常與顯示卡(gpu)有關連 若顯示卡是n