从链路到应用分层检查

ifconfig -a
netstat -rn
route -n get default
ping -c 3 1.1.1.1
drill freebsd.org
sockstat -4 -6 -l

先确认接口是否 UP、地址与掩码是否正确,再看路由;能访问 IP 但不能解析名称时才进入 DNS。不要一遇到网络问题就同时修改 rc.conf、resolv.conf、防火墙和 sshd。

持久接口配置

DHCP 示例(接口名必须替换为本机实际值):

sysrc ifconfig_em0=DHCP
service netif restart em0
service routing restart

远程主机不应直接重启唯一管理接口。先通过控制台、第二接口或计划回滚验证。静态 IPv4、IPv6、VLAN、LAGG 和桥接的语法应从当前 Handbook 与 rc.conf(5) 获取,避免复制旧版接口名。

DNS

/etc/resolv.conf 可能由 DHCP 客户端或 resolvconf 生成。先查看文件注释和 resolvconf -l,再决定修改上游 DHCP、本地 unbound 或静态配置。诊断时区分:

drill freebsd.org
drill @1.1.1.1 freebsd.org
drill -T freebsd.org

外部公共 DNS 仅作示例,生产环境要考虑内部域、隐私、合规和网络可达性。

NTP

sysrc ntpd_enable=YES
service ntpd start
ntpq -pn

时钟偏差会破坏 TLS、日志关联、Kerberos 和包签名验证。首次大偏差是否允许 step,应按 ntpd 配置和业务容忍度决定;数据库主机不要未经评估强制跳时钟。

OpenSSH

修改前保留当前会话和配置副本。推荐顺序:部署并验证密钥;限制允许用户/组;检查配置;reload;从第二会话验证;最后再考虑关闭密码或 root 登录。

sshd -t
sshd -T | less
service sshd reload
sockstat -4 -6 -l | grep sshd

sshd -T 展示有效配置,但 Match 条件需要额外上下文。防火墙规则要在 SSH 新会话验证后启用。若连接失败,查看 /var/log/auth.log、服务监听地址、路由与 PF/IPFW,而不是立即删除所有限制。