以下教程仅针对设置静态 IPv4

Prerequisite

FreeBSD 14.2

用户已在 wheel 组中,可以取得 root 权限

实践操作

基于文件的配置静态 IPv4

FreeBSD 添加 eth1 接口静态 IP,在 /etc/rc.conf 中进行配置

hostname="freebsd-test"
ifconfig_hn0="DHCP"
ifconfig_hn0_ipv6="inet6 accept_rtadv"
ifconfig_hn1="inet 192.168.138.8 netmask 255.255.255.0"
ifconfig_hn1_ipv6="inet6 accept_rtadv"
sshd_enable="YES"
moused_enable="YES"
ntpd_enable="YES"
ntpd_sync_on_start="YES"
powerd_enable="YES"
# Set dumpdev to "AUTO" to enable crash dumps, "NO" to disable
dumpdev="AUTO"
zfs_enable="YES"

主要添加了这一行:

ifconfig_hn1="inet 192.168.138.8 netmask 255.255.255.0"

配置说明

  1. ifconfig_hn1 - 配置第二个网络接口(对应 eth1)
  2. inet - 指定使用 IPv4
  3. 192.168.138.8 - 设置的静态 IP 地址
  4. netmask 255.255.255.0 - 设置子网掩码为 255.255.255.0(即 /24)

若需更换默认网关则添加

defaultrouter="192.168.138.1"

基于命令行配置静态 IPv4

若仅设置暂时操作可使用如下命令

ifconfig em0 inet 192.168.138.8/24

此处使用 sysrc 配置静态 IP 为永久

root@freebsd-test:~ # sysrc ifconfig_hn1="inet 192.168.138.8 netmask 255.255.255.0"
ifconfig_hn1:  -> inet 192.168.138.8 netmask 255.255.255.0

若需更换默认网关则

sysrc defaultrouter="192.168.138.1"

验证一下配置文件

root@freebsd-test:~ # cat /etc/rc.conf
hostname="freebsd-test"
ifconfig_hn0="DHCP"
ifconfig_hn0_ipv6="inet6 accept_rtadv"
sshd_enable="YES"
moused_enable="YES"
ntpd_enable="YES"
ntpd_sync_on_start="YES"
powerd_enable="YES"
# Set dumpdev to "AUTO" to enable crash dumps, "NO" to disable
dumpdev="AUTO"
zfs_enable="YES"
ifconfig_hn1="inet 192.168.138.8 netmask 255.255.255.0"
defaultrouter="192.168.138.1"

重启网络

以 root 权限重启网络服务

service netif restart && service routing restart

dhcpclient 重新获取 hn0 的 IP,此处操作与本文内容无关简略过掉

dhcpclient hn0

或是采用旧的做法,有关 /etc/rc.d/netif/etc/netstart,可参见:Solved - What is the difference between "/etc/rc.d/netif" and "/etc/netstart"? | The FreeBSD Forums

/etc/netstart restart

查看路由表(若设置网关为 hn1 的 192.168.138.1)

root@freebsd-test:~ # netstat -rn
Routing tables

Internet:
Destination        Gateway            Flags         Netif Expire
default            192.168.138.1      UGS             hn1
127.0.0.1          link#1             UH              lo0
192.168.137.0/24   link#2             U               hn0
192.168.137.8      link#1             UHS             lo0
192.168.138.0/24   link#3             U               hn1
192.168.138.8      link#1             UHS             lo0

Internet6:
Destination                       Gateway                       Flags         Netif Expire
::/96                             link#1                        URS             lo0
::1                               link#1                        UHS             lo0
::ffff:0.0.0.0/96                 link#1                        URS             lo0
fe80::%lo0/10                     link#1                        URS             lo0
fe80::%lo0/64                     link#1                        U               lo0
fe80::1%lo0                       link#1                        UHS             lo0
fe80::%hn0/64                     link#2                        U               hn0
fe80::215:5dff:fe20:8333%lo0      link#1                        UHS             lo0
fe80::%hn1/64                     link#3                        U               hn1
fe80::215:5dff:fe20:8334%lo0      link#1                        UHS             lo0
ff02::/16                         link#1                        URS             lo0

参考资料

Chapter 7. Network | FreeBSD Documentation Portal

7.3.有线网络 | FreeBSD 中文手册

第 14.5 节 以太网卡 | FreeBSD 中文社区(Chinese FreeBSD Community,CFC)

Solved - What is the difference between "/etc/rc.d/netif" and "/etc/netstart"? | The FreeBSD Forums

How to configure static IP Address on FreeBSD - nixCraft

FreeBSD Set a Default Route / Gateway - nixCraft

最后修改:2025 年 03 月 13 日
如果觉得我的文章对你有用,请随意赞赏