Freebsd

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

  • February 25, 2022
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 地址。

謝謝!

根據ipfw手冊頁

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

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

引用自:https://unix.stackexchange.com/questions/603849