首页>教程>FreeBSD 教程> 网络配置 >FreeBSD 配置有限网卡

FreeBSD 配置有限网卡

有线网卡相对于无线网卡来说,一般连接更稳定,网速也更快,在 FreeBSD 中配置有限网卡可以使用如下几种形式:

  • 配置静态 IPv4 地址
  • 配置动态 IPv4 地址
  • 配置静态 IPv6 地址
  • 配置动态 IPv6 地址

配置静态 IPv4 地址

如果你的网络环境中分配了一个静态 IP,而不是使用 DHCP 服务器动态分配 IP 地址,就需要使用该种方式配置静态 IP 地址方式。在公司中常使用该配置方式。

在配置静态 IP 地址时需要手动指定 IP、子网掩码和网关。

临时配置 IP

在系统中临时指定 IP 地址,重启系统后就会失效。

临时指定 IP 地址需要使用 ifconfig 命令,使用如下形式配置:

ifconfig em0 inet 192.168.1.150/24

命令解释说明: - em0:网卡名称 - inet:指定使用 IPv4 地址形式 - 192.168.1.150/24:IP 地址+子网掩码,/24 表示掩码占 24 位,等价于 255.255.255.0

开机自启配置

在启动文件 /etc/rc.conf 中添加配置,可以实现开机时自动完成 IP 配置。

1)在/etc/rc.conf 文件中添加配置,可以使用 sysrc 命令:

sudo sysrc ifconfig_em0="inet 192.168.1.150 netmask 255.255.255.0"

命令解释说明: - sysrc:FreeBSD 专用命令,用于修改启动配置文件 - ifconfig_em0:指定为 em0 网卡进行配置,名称格式为 ifconfig_网卡名 - inet 192.168.1.150:使用 inet 指定 IP 地址 - netmask 255.255.255.0:使用 netmask 指定子网掩码

2)配置默认网关

sudo sysrc defaultrouter="192.168.1.1"

命令解释说明: - defaultrouter:指定系统的默认网关地址。

3)配置 DNS 服务器

编辑 /etc/resolv.conf 文件:

sudo vi /etc/resolv.conf

在文件中添加如下的 DNS 地址:

nameserver 211.137.191.26

命令解释说明: - nameserver:用于指定 DNS 服务器 IP,如果存在多个,优先使用第一个 - /etc/resolv.conf:DNS 解析配置文件

4)重启网络服务使配置生效

service netif restart && service routing restart
  • service netif restart:重启网络接口服务
  • service routing restart:重启路由服务

测试网络连通性

使用 ping 命令测试网络的连通情况:

ping -c10 www.freebsd.org

命令解释说明:

  • -c210:发送 10 个包后停止命令运行

返回结果:如果没有丢失包,则表示网络连接正常,也可以发送更多的包来查看网络连接的情况。

配置动态 IPv4 地址

如果你的网络环境中配置了 DHCP 服务器,那么就可以使用 DHCP 服务自动配置 IP 相关信息。如在家中安装了无线路由,家庭使用的无线路由都包含了 DHCP 服务器,可以动态配置 IPv4 地址。

配置使用 DHCP 服务

使用如下的命令配置使用 DHCP 服务,在 /etc/rc.conf 文件中添加相应的配置:

sudo sysrc ifconfig_em0="DHCP"

解释说明:指定 em0 网卡通过 DHCP 获取 IP 地址。

触发 DHCP 分配

在配置使用了 DHCP 服务后,使用如下的命令触发使用 DHCP 服务为系统分配地址:

sudo dhclient em0

如果配置成功会输出类似如下的信息:

DHCPREQUEST on em0 to 255.255.255.255 port 67  # 发送 DHCP 请求
DHCPACK from 192.168.1.1  # 收到路由器的 DHCP 响应
bound to 192.168.1.19 -- renewal in 43200 seconds.  # 分配到 IP,租期 12 小时

如果已经完成配置,会输出类似如下的信息:

dhclient already running, pid: 817.
exiting.

配置后台运行 DHCP 客户端

默认情况下 dhclient 在前台运行,这可能会导致依赖网络的程序会产生启动延迟。

使用如下命令可配置 dhclient 在后台运行:

sudo sysrc background_dhclient="YES"

IPv6 说明

FreeBSD 已经完全支持 IPv6 地址形式,IPv6 地址为 128 位,分为 单播地址、任播地址、组播地址三种类型,支持自动配置(SLAAC)和静态配置。

IPv6 的优势

当对于 IPv4 来说,IPv6 存在多方面的优势:

  • 超大的地址空间,就是在新兴的物联网中的每一个设备一个 IP 也使用不完,解决 IPv4 不够用的问题
  • 支持无状态地址自动配置(SLAAC)
  • 支持加密进行通信,简化了头部结构,能够提高转发效率

IPv6 地址格式

IPv6 的地址格式形式如下:

  • 规范格式:x:x:x:x:x:x:x:x,共有 8 组数字,每组数字之间使用 : 分隔,每组的 x 为 4 位十六进制数,即 16 位二进制,如 FEBC:A574:382B:23C1:AA49:4592:4EFE:9982
  • 简化格式:用 :: 代替连续的 0 段,如 fe80::1 等价于 fe80:0000:0000:0000:0000:0000:0000:0001

配置静态 IPv6 地址

1)使用如下形式配置静态 IPv6 地址:

sudo sysrc ifconfig_em0_ipv6="inet6 2001:db8:4672:6565:2026:5043:2d42:5344 prefixlen 64"

命令解释说明:

  • ifconfig_em0_ipv6:指定配置的网卡为 em0,使用 IPv6 地址形式
  • inet6:指定的地址内容为 IPv6 地址形式
  • 2001:db8:4672:6565:2026:5043:2d42:5344:配置的静态 IPv6 地址
  • prefixlen 64:使用 prefixlen 指定子网前缀的长度,类似 IPv4 中的子网掩码

2)使用如下的命令配置 IPv6 的默认网关

sudo sysrc ipv6_defaultrouter="2001:db8:4672:6565::1"

3)配置 IPv6 任播地址

任播地址的作用是向最近的节点发送数据,要配置任播地址需要添加 _aliasN 后缀。

使用如下命令配置 IPv6 地址形式的任播地址:

sudo sysrc ifconfig_em0_alias0="inet6 2001:db8:4672:6565::a anycast"

命令解释说明: - anycast:指定该 IPv6 地址为任播地址

配置动态 IPv6 地址

无状态地址自动配置(SLAAC)是指:

网络中的路由器会周期性的广播一条 RA 消息,其中包含一个 64 位的网络前缀,如:2001:db8:abcd:1234::/64,设备收到这个网络前缀后,会根据 MAC 地址通过特定算法(EUI-64)生成成一个 64 位的接口标识符。把网络前缀和生成的接口标识符组合起来,形成一个 IPv6 地址。

如: 网络前缀 2001:db8:abcd:1234::/64,与接口标识符 ::1a2b:3c4d:5e6f 形成一个完整的地址: 2001:db8:abcd:1234:1a2b:3c4d:5e6f

使用 SLAAC 配置 IPv6 地址

1)使用如下的命令,启用 SLAAC 自动配置 IPv6 地址:

sudo sysrc ifconfig_em0_ipv6="inet6 accept_rtadv"

命令解释说明:

  • accept_rtadv:允许网卡接收路由器广播的通告信息

2)启用接收路由器广播的通告的守护进程:

sudo sysrc rtsold_enable="YES"

特殊说明

如果你的系统中启用了 IPv6 转发,即包含该配置 ipv6_gateway_enable=YES,需要添加如下的配置,才能启用自动配置 SLAAC 地址:

sudo sysctl net.inet6.ip6.rfc6204w3=1

或者编辑 /etc/sysctl.conf 文件:

sudo vi /etc/sysctl.conf

添加如下的内容:

net.inet6.ip6.rfc6204w3=1

配置 IPv6 路由器

如果想要使用 FreeBSD 作为 IPv6 路由器,那么需要启用广播 RA 信息的服务,并做相应的配置。

1)启用 rtadvd 广播服务:

sudo sysrc rtadvd_enable="YES"

2)指定广播通告的网卡:

sudo sysrc rtadvd_interfaces="em0"  # 指定使用 em0 网卡发送广播通告

3)创建配置文件 /etc/rtadvd.conf, 并添加如下内容:

em0:\
    :addrs#1:addr="2001:db8:1f11:246::":prefixlen#64:tc=ether:

配置内容解释说明:

  • em0::指定配置的网卡名称;
  • addrs#1:广播 1 个 IPv6 网络前缀的通告
  • addr="2001:db8:1f11:246::":指定广播通告的 IPv6 网络前缀
  • prefixlen#64:设置网络前缀的长度为 64 位
  • tc=ether:指定链路类型为以太网

4)启动 rtadvd 广播服务:

sudo service rtadvd start

启用 IPv4-IPv6 地址映射

使用如下命令可以启用 IPv4-IPv6 地址之间的映射:

sudo sysrc ipv6_ipv4mapping="YES"