如何在IPFW上使用介面名稱而不是IP位址?

如何在IPFW上使用介面名稱而不是IP位址?
add 04000 allow IP from 192.168.1.10 to ca-vancouver.privateinternetaccess.com keep-state

我想更改為 epair0b 因為我想避免硬編碼 IP 位址並且我想使用 DHCP

所以我改為

add 04000 allow IP from epair0b to ca-vancouver.privateinternetaccess.com keep-state

並得到錯誤

Line 6: hostname ```epair0b'' unknow

有沒有辦法在 IPFW 上使用介面名稱或「機器」?

換句話說,我想避免在我的規則中使用硬編碼的 IP 位址。

謝謝!

答案1

根據ipfw手冊頁,

me 匹配系統中介面上配置的任何 IP 位址。
add 04000 allow IP from me to ca-vancouver.privateinternetaccess.com keep-state

答案2

DHCP 守護程式可以更新您的/etc/hosts檔案並在主機名稱旁邊設定本機 IP。這樣您就可以使用解析為目前 IP 的主機名稱。

鍵入hostname以取得您的主機名稱。

檢查 DHCP 守護程式的線上說明頁,以了解它們是如何實現的。它可能看起來像這樣:

#!/bin/sh

set -e

if [ "$IFACE" = lo ]; then
    exit 0
fi

SHORT_HOST=`hostname`

# Remove current line with hostname at the end of line
sed -i '/'$SHORT_HOST'$/ d' /etc/hosts

ipaddr=$(ifconfig  | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}')
echo "$ipaddr $SHORT_HOST" >>/etc/hosts

相關內容