類別:系統及安全性
| 發布於 2025-06-24 20:19
Linux 網路與防火牆設定筆記
網路 IP 設定
查詢網卡與 IP
使用 nmtui 設定
IP(限使用 NetworkManager 的系統)
操作步驟:
- 選擇
Edit a connection
- 選擇網卡(如
ens33)
- 設定方式選擇
Manual
- 設定 IP、Gateway、DNS
- 勾選
Automatically connect
- 按 OK 儲存離開
- 回到主畫面選
Activate a connection 重新啟用連線
路由設定
顯示路由表
新增/刪除路由(建議用
ip route)
網路狀態觀察
使用 netstat(過時但仍常見)
| 參數 |
說明 |
| -t |
顯示 TCP |
| -u |
顯示 UDP |
| -l |
只顯示 Listen 中的 socket |
| -n |
顯示 IP/Port 數值,不做反查 |
| -p |
顯示對應的程序 |
| -r |
顯示路由表 |
| -c |
每秒更新 |
使用 ss(建議替代 netstat)
防火牆 firewalld(使用
firewall-cmd)
設定檔路徑
查詢與管理狀態
查詢區域與服務
開啟常見服務
啟用 NAT 偽裝
防火牆區域說明(Zone)
| 區域名稱 |
說明 |
| trusted |
信任所有封包,不做過濾 |
| home |
家用網路,允許區網內大部分連線 |
| work |
工作網路,允許部分連線 |
| internal |
用於 NAT 內部網路 |
| dmz |
對外公開服務主機使用 |
| public |
預設區域,僅允許明確允許的服務 |
| external |
外部介面,建議配合 NAT 使用 |
| block |
拒絕所有連入封包,回應拒絕訊息 |
| drop |
丟棄所有連入封包,不做回應 |
nftables 防火牆(新一代工具)
檢查系統是否支援
若無任何回傳表示尚未設定規則。
基本指令
建立簡易防火牆設定
建立檔案 /etc/nftables.conf,內容範例如下:
啟用設定:
開機自動載入(以 systemd 管理):
常用管理指令
顯示指定 table/chain
小結建議
| 工具 |
狀態 |
備註 |
netstat / route |
已過時 |
建議使用 ss / ip |
firewalld |
RHEL/CentOS/Fedora 預設工具 |
適合 GUI 友好者 |
nftables |
Linux 現行標準防火牆(iptables 後繼) |
適合高階用戶與腳本 |
Linux 網路與防火牆設定筆記
網路 IP 設定
查詢網卡與 IP
# 顯示所有網卡與 IP 資訊 ip addr使用 nmtui 設定 IP(限使用 NetworkManager 的系統)
# 啟動文字介面網路設定工具 nmtui操作步驟:
Edit a connectionens33)ManualAutomatically connectActivate a connection重新啟用連線路由設定
顯示路由表
# 舊指令(route 為 net-tools 套件) route -n # 推薦指令(iproute2 套件) ip route新增/刪除路由(建議用
ip route)# 新增路由(指定閘道與網卡) ip route add 192.168.10.0/24 via 192.168.1.1 dev eth0 # 刪除路由 ip route del 192.168.10.0/24網路狀態觀察
使用 netstat(過時但仍常見)
# 顯示所有 TCP/UDP 監聽狀態(避免 DNS 反查) netstat -tuln使用 ss(建議替代 netstat)
防火牆 firewalld(使用 firewall-cmd)
設定檔路徑
查詢與管理狀態
firewall-cmd --state # 是否啟用 firewall-cmd --reload # 重載設定 firewall-cmd --runtime-to-permanent # 將目前設定存成永久查詢區域與服務
開啟常見服務
# 開啟 HTTP 服務 firewall-cmd --add-service=http --permanent firewall-cmd --reload # 開啟自訂埠號 firewall-cmd --add-port=8080/tcp --permanent firewall-cmd --reload啟用 NAT 偽裝
防火牆區域說明(Zone)
nftables 防火牆(新一代工具)
檢查系統是否支援
若無任何回傳表示尚未設定規則。
基本指令
# 檢視目前規則(完整) nft list ruleset # 加入新規則集(可從檔案或直接輸入) nft -f /etc/nftables.conf建立簡易防火牆設定
建立檔案
/etc/nftables.conf,內容範例如下:#!/usr/sbin/nft -f flush ruleset table inet filter { chain input { type filter hook input priority 0; policy drop; # 允許 loopback iif "lo" accept # 允許已建立/相關連線 ct state established,related accept # 允許 SSH tcp dport 22 accept # 允許 ICMP(如 ping) ip protocol icmp accept ip6 nexthdr icmpv6 accept # log and drop 其他封包 log prefix "nftables-in: " flags all } chain forward { type filter hook forward priority 0; policy drop; } chain output { type filter hook output priority 0; policy accept; } }啟用設定:
開機自動載入(以 systemd 管理):
# 編輯 nftables systemd 服務 systemctl enable nftables systemctl start nftables常用管理指令
nft add rule inet filter input tcp dport 80 accept # 新增規則 nft delete rule inet filter input handle 5 # 根據 handle 編號刪除 nft flush ruleset # 清空所有規則顯示指定 table/chain
小結建議
netstat/routess/ipfirewalldnftables