以下教程仅针对设置静态 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"
配置说明
ifconfig_hn1
- 配置第二个网络接口(对应 eth1)inet
- 指定使用 IPv4192.168.138.8
- 设置的静态 IP 地址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
第 14.5 节 以太网卡 | FreeBSD 中文社区(Chinese FreeBSD Community,CFC)
Solved - What is the difference between "/etc/rc.d/netif" and "/etc/netstart"? | The FreeBSD Forums