目錄網路配置服務管理防火牆配置文件下載wget和curl網路連接信息netstat和ss Linux 網路管理涉及一系列任務,包括配置網路介面、設置IP地址、管理網路服務和防火牆等。 網路配置 網卡命名 根據網路介面定義設備: ethX 傳統的乙太網介面命名方式,其中 X 通常是數字,如 eth0 ...
目錄
Linux 網路管理涉及一系列任務,包括配置網路介面、設置IP地址、管理網路服務和防火牆等。
網路配置
網卡命名
根據網路介面定義設備:
-
ethX 傳統的乙太網介面命名方式,其中 X 通常是數字,如 eth0 等
-
wlanX 用於無線網卡介面,類似於 wlan0 等
不同的發行版和內核版本網卡命名規則會有所不同,可以使用命令 ls /sys/class/net/
來查看系統中的網卡介面。
其中預設存在的 lo
是指環回(loopback)介面,環回介面的 IP 地址通常是 127.0.0.1,也稱為本地迴環地址。
網卡配置
ifconfig
命令用於查看和配置網路介面信息。
sudo ifconfig eth0 up # 啟用 eth0 介面
sudo ifconfig eth0 down # 禁用 eth0 介面
sudo ifconfig eth0 192.168.1.10 netmask 255.255.255.0 up # 設置IP地址和子網掩碼
其他命令包括 ip、nmcli 等都大同小異。
網路配置文件
配置靜態IP地址,在 Ubuntu 中配置靜態 IP 地址可以通過編輯網路配置文件來完成。
使用 NetworkManager 的方法:
- 編輯網路介面配置文件
sudo vim /etc/network/interfaces
- 編輯靜態IP地址、網關和DNS伺服器的
auto eth0
iface eth0 inet static
address 192.168.1.100 # 靜態 IP 地址
netmask 255.255.255.0 # 掩碼
gateway 192.168.1.1 # 網關
dns-nameservers 8.8.8.8 8.8.4.4 # DNS 伺服器
- 保存並退出編輯器,重新啟動網路服務
sudo systemctl restart NetworkManager
還有通過 netplan 管理網路的方式。
服務管理
systemctl
和 service
都是用於管理系統服務的命令行工具。
systemctl是在較新版本的Linux中引入的系統和服務管理工具,如systemd。service命令是傳統 SysVinit系統中用來管理系統服務的工具。
在許多Linux發行版中,service命令實際上是systemctl命令的一個符號鏈接,以向後相容。
使用 systemctl 啟動、停止和重啟網路服務:
sudo systemctl status network.service # 查看服務狀態
sudo systemctl start network.service # 啟動服務
sudo systemctl stop network.service # 停止服務
sudo systemctl restart network.service # 重啟服務
sudo systemctl enable network.service # 設置開機自啟動
sudo systemctl disable network.service # 禁用開機自啟動
service和systemctl相比除了參數的位置不同,其他一致。
防火牆配置
常用的Linux防火牆工具包括 iptables
和 firewalld
,用於配置和管理Linux的防火牆規則。
Netfilter是Linux內核中用於實現數據包過濾和網路地址轉換功能的框架,iptables和firewalld都是基於Netfilter框架實現的工具。iptables是傳統的Linux防火牆工具,而firewalld則是較新的動態防火牆管理器。
重點關註firewalld防火牆,它支持動態更新技術並加入了區域的概念。
firewalld中常見的區功能變數名稱稱(預設為public)以及相應的策略規則:
區域 | 預設規則策略 |
---|---|
阻塞區域 (block) | 拒絕流入的流量,除非與流出的流量相關 |
工作區域 (work) | 拒絕流入的流量,除非與流出的流量相關 |
家庭區域 (home) | 拒絕流入的流量,除非與流出的流量相關 |
公共區域 (public) | 不相信網路上的任何電腦,只有選擇接受傳入的網路連接 |
隔離區域 (DMZ) | 隔離區域也稱為非軍事區域,內外網路之間增加的一層網路,起到緩衝作用。對於隔離區域,只有選擇接受傳入的網路連接。 |
信任區域 (trusted) | 允許所有的數據包 |
丟棄區域 (drop) | 拒絕流入的流量,除非與流出的流量相關 |
內部區域 (internal) | 等同於home區域 |
外部區域 (external) | 拒絕流入的流量,除非與流出的流量有關;而如果流量與ssh服務相關,則允許 流量 |
firewall-cmd 是用於管理 firewalld 防火牆的命令行工具:
查看防火牆狀態:
firewall-cmd --state
啟動/停止/重啟 firewalld 服務:
systemctl start firewalld
systemctl stop firewalld
systemctl restart firewalld
開啟/關閉 firewalld 服務:
systemctl enable firewalld
systemctl disable firewalld
查看所有防火牆規則:
firewall-cmd --list-all
添加/移除埠:
firewall-cmd --add-port=PORT/PROTOCOL
firewall-cmd --remove-port=PORT/PROTOCOL
添加/移除服務:
firewall-cmd --add-service=SERVICE
firewall-cmd --remove-service=SERVICE
重載防火牆規則:
firewall-cmd --reload
如果想讓策略一直存在,需要在firewall-cmd命令設置防火牆策略時添加 --permanent
參數。
例如
配置在172.24.8.0 網段的主機訪問伺服器的5423埠被轉發到80埠:
firewall-cmd --zone=public --add-forward-port=port=5423:proto=tcp:toport=80:toaddr=SERVER_IP --source=172.24.8.0/24
文件下載wget和curl
curl
和 wget
都是在命令行下使用的用於下載文件的工具。wget專門用於下載文件,不支持發送請求。curl不僅能下載,還可以發送各種類型的請求,使用代理等。
curl 命令常用的參數:
-
-X, --request 指定 HTTP 請求方法,如 GET、POST、PUT、DELETE 等
-
-d, --data 發送 POST 請求時使用的數據
-
-H, --header 添加額外的請求頭信息
-
-i, --include 在輸出中包含 HTTP 頭信息
-
-o, --output 將響應輸出到指定文件
-
-O, --remote-name 將遠程文件保存到本地,使用遠程文件的文件名
-
-L, --location 遵循重定向
-
-v, --verbose 顯示詳細的操作信息,包括請求和響應的頭信息
-
-A, --user-agent 設置用戶代理字元串
wget 命令常用的參數:
-
-O, --output-document 將下載的文件保存為指定的文件名
-
-P, --directory-prefix 將下載的文件保存到指定目錄下
-
-r, --recursive 遞歸下載,下載指定 URL 下的所有鏈接
-
-t, --tries 設置重試次數
-
-b, --background 後臺下載模式
-
-U, --user-agent 設置用戶代理字元串
-
--limit-rate= 限制下載速率
網路連接信息netstat和ss
ss
和 netstat
都是用於查看系統網路連接信息的命令行工具。ss是一個更現代的工具,使用更快的內核數據源,並且在處理大量連接時性比netstat更好,能夠顯示更多的詳細信息。netstat 是一個更傳統的工具,用於顯示網路連接、路由表、介面統計信息等。
ss 命令的一些常用選項:
-
-t 顯示TCP套接字
-
-u 顯示 UDP 套接字
-
-l 顯示監聽狀態的套接字
-
-a 顯示所有連接狀態的套接字
-
-p 展示使用socket的進程
-
-n 不解析服務名
-
-i 更多詳細信息
netstat 命令的一些常用選項:
-
-a 顯示所有連接和監聽埠
-
-n 以數字形式顯示地址和埠號,而不是嘗試反解析主機名和服務名
-
-t 僅顯示 TCP 協議相關的連接
-
-u 僅顯示 UDP 協議相關的連接
-
-l 僅顯示正在監聽的套接字
-
-p 顯示每個套接字關聯的進程 ID 和進程名稱
通常ss和netstat會和grep命令結合,快速找到符合條件的網路連接信息。
例如:
netstat -antlp | grep 80
# 找到埠為80的TCP網路連接信息
若有錯誤,歡迎指正!o( ̄▽ ̄)ブ