如何在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

相关内容