当前位置:首页 > 云服务器 > 正文

FreeBSD服务器如何搭建?,需要注意什么?

系统安装

  • FreeBSD 官网 下载对应架构的安装镜像(推荐使用 memstick 或 disc1 ISO)。
  • 启动安装程序,选择 Install,按提示选择键盘布局、主机名、网络接口。
  • 磁盘分区建议使用 ZFS,自动配置即可,也可手动设置 swap 大小。
  • 设置 root 密码,创建一个普通用户(可选加入 wheel 组以便使用 su)。
  • 安装结束后重启,登录系统。

基本配置

  • 主机名

    编辑 /etc/rc.conf,添加或修改 hostname="server.example.com"。

  • 网络配置

    若使用 DHCP,通常自动配置;若需静态 IP,在 /etc/rc.conf 中设置:

    ifconfig_em0="inet 192.168.1.10 netmask 255.255.255.0" defaultrouter="192.168.1.1"

    然后修改 /etc/resolv.conf 添加 DNS。

    FreeBSD服务器如何搭建?,需要注意什么? 第1张

  • 时区与时间同步

    tzsetup # 选择时区 sysrc ntpd_enable=YES service ntpd start
  • SSH 安全配置

    编辑 /etc/ssh/sshd_config:

    • PermitRootLogin no
    • PasswordAuthentication no(若使用密钥)
    • AllowUsers youruser

    然后重启 sshd:service sshd restart

    FreeBSD服务器如何搭建?,需要注意什么? 第2张

软件包管理

  • pkg 工具(推荐)

    pkg update pkg upgrade pkg install nginx mysql80-server php82
  • ports 编译(可选)

    FreeBSD服务器如何搭建?,需要注意什么? 第3张

    portsnap fetch extract cd /usr/ports/www/nginx && make install clean
  • 配置 pkg 仓库为 latest(获取最新版本)或 quarterly(稳定):

    mkdir -p /usr/local/etc/pkg/repos echo 'FreeBSD: { url: "pkg+http://pkg.FreeBSD.org/${ABI}/latest" }' > /usr/local/etc/pkg/repos/FreeBSD.conf

常见服务搭建

防火墙(pf)

  • 启用 PF:sysrc pf_enable=YES
  • 编辑 /etc/pf.conf, ext_if="em0" set skip on lo block all pass in on $ext_if proto tcp to port {22,80,443} pass out on $ext_if
  • 启动:service pf start

Web 服务器(Nginx + PHP)

  • 安装 nginx 和 php82(含 php-fpm)
  • 配置 nginx 站点文件(/usr/local/etc/nginx/nginx.conf)
  • 启动服务: sysrc nginx_enable=YES sysrc php_fpm_enable=YES service nginx start service php-fpm start

数据库(MySQL 8)

  • 安装后执行: sysrc mysql_enable=YES service mysql-server start mysql_secure_installation

安全加固

  • 系统更新:定期执行 freebsd-update fetch install
  • 限制登录:使用 sudo 替代直接 root,安装 security/sudo
  • 日志监控:配置 syslogd,使用 logwatch 或 security/audit
  • Fail2ban:安装 security/py-fail2ban,配置过滤 SSH 等
  • 定期检查:使用 periodic 脚本(每日/每周安全报告)

系统维护

  • 查看系统日志:/var/log/messages、/var/log/security
  • 监控磁盘:zpool status、df -h
  • 备份:使用 dump、rsync 或 zfs send
  • 使用 top、htop、vmstat 监控资源


相关问题与解答

FreeBSD 的 pkg 和 ports 有什么区别?如何选择?

解答:

  • pkg 是预编译的二进制包管理系统,安装快速、依赖自动解决,适用于大多数场景。
  • ports 是源码编译系统,可通过定制编译选项优化性能或启用特定功能,但编译耗时较长。
  • 选择建议:普通用户或生产环境推荐使用 pkg;需要自定义编译选项、测试新功能或最小化安装时使用 ports,两者可以共存,但注意不要混合管理同一软件。

如何配置 FreeBSD 防火墙并仅允许 SSH 和 Web 访问?

解答:

使用 pf 防火墙,编辑 /etc/pf.conf,示例配置如下(假设外网接口为 em0):

ext_if = "em0" set skip on lo block all pass in on $ext_if proto tcp to port {22,80,443} pass out on $ext_if

然后执行:

sysrc pf_enable=YES service pf start

若要持久化,使用 service pf restart 并检查规则:pfctl -s rules,注意在启用前确认 SSH 端口已放行,以免自己被锁。

0