設定 UFW 規則
要精確限制只有 10.130.0.6 這個 IP 能夠連線到本機的 3306 埠口,請執行以下指令:
sudo ufw allow from 10.130.0.6 to any port 3306
這條規則會明確指定來源(from)必須是 10.130.0.6,目標(to any)則是本機任何網路介面上的 3306 埠口。如果你有多張網卡,想限制得更嚴格,可以把 any 改成本機在該網路環境下的私人 IP。
確認規則優先順序
在 UFW 中,規則的順序非常重要。如果之前已經有過開放給所有人的規則(例如 allow 3306),新加入的特定 IP 規則可能會失效。請使用以下指令檢查:
sudo ufw status numbered
請確認針對 10.130.0.6 的規則排在最前面。如果發現有其他更寬鬆的規則排在上面(例如 3306 ALLOW ANYWHERE),請使用 sudo ufw delete 加上編號將其刪除,確保防火牆只對特定 IP 放行。
資料庫連線配置
即使防火牆門開了,MySQL 或 MariaDB 如果沒有監聽正確的介面,連線依然會失敗。請檢查設定檔(通常在 /etc/mysql/mariadb.conf.d/50-server.cnf 或 /etc/mysql/mysql.conf.d/mysqld.cnf):
bind-address = 0.0.0.0
如果這裡設定為 127.0.0.1,則外部 IP(包含 10.130.0.6)將無法連入,因為資料庫只接受來自 localhost 內部的連線。修改後記得重啟資料庫服務:sudo systemctl restart mysql。
查詢 IP 位址與網路設定
在 Ubuntu 中,最常用且推薦的指令是 ip addr,你可以簡寫為 ip a。這個指令會列出所有網路介面的詳細資訊。
常用查詢指令
如果你只需要快速看一眼 IP,或是需要詳細的設定資訊,可以參考以下幾種指令:
- 詳細資訊: ip addr show 或 ip a。這會顯示每個介面的 MAC 位址、IPv4、IPv6 以及運作狀態。
- 精簡格式: ip -br addr。這會以一行一個介面的方式列出 IP,適合快速閱讀。
- 純 IP 位址: hostname -I。這會直接印出本機目前所有的私人 IP,不含其他雜訊。
- 對外公網 IP: curl ifconfig.me。如果你想知道在網際網路上的 IP,可以使用這個指令向外部伺服器查詢。
解讀 ip addr 輸出內容
當你執行 ip a 時,你會看到類似以下的內容:
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 …
link/ether 08:00:27:xx:xx:xx brd ff:ff:ff:ff:ff:ff
inet 192.168.1.105/24 brd 192.168.1.255 scope global dynamic enp0s3
valid_lft 86134sec preferred_lft 86134sec
- enp0s3: 這是網路介面的名稱(以前常叫 eth0)。
- inet: 後面接的就是你的 IPv4 位址(例如 192.168.1.105)。
- UP: 代表該介面目前正在運作中。
- link/ether: 這是你的硬體位址(MAC Address)。
靜態 IP 設定位置
如果你想修改 IP 設定使其永久生效,Ubuntu 現在預設使用 Netplan 工具。設定檔通常存放在以下路徑:
/etc/netplan/
檔案通常是 .yaml 格式,例如 01-netcfg.yaml。編輯該檔案後,需要執行 sudo netplan apply 才能讓設定生效。