我们一群计算机科学专业的学生正在尝试启动并运行我们的第一台服务器。我们将尝试在这台机器上安装 FreeBSD。如果您能建议我们应该在服务器上包含哪些实用程序/软件包,那就太好了,这对我们来说是一个很好的学习体验。什么网络服务器系统?邮件服务器系统?开发环境?还有其他提示或尝试吗?
我们只是想要一些扎实的系统管理经验。
干杯!
答案1
如果你是计算机科学专业的,为什么不去学校的 IT 部门了解他们在生产环境中做了什么,然后从那里开始呢?仅仅在一台机器上设置邮件服务器、DNS 服务器或开发服务器是无法获得完整体验的(而且你将学习在一个系统上设置三、四或五台服务器的糟糕做法,并认为这一定是在“现实世界”环境中应该做的事情)。采访该领域的人士将为你提供一个良好的开端,让你决定该做什么。
我的建议是在白盒上设置 VMWare ESXi...您可以通过 Google 查找信息,基本上是一个价格低廉但与操作系统兼容的系统...并设置许多子服务器以在 ESXi 盒内的虚拟网络上测试事物,包括将一个 VM 设置为虚拟路由器/防火墙。如果这还不能让您在思考网络服务器的工作原理时获得一些乐趣,我不知道还有什么能让您获得乐趣。
答案2
对于 Web 服务器,您可以设置 Apache。也许是 Tomcat?
对于网络,请配置 DHCP 服务器和 DNS 服务器。此外,还要设置防火墙。此外,还要在客户端和服务器之间设置一些共享。配置 samba,以便 Windows 客户端也可以访问服务器。
您还可以设置 LDAP。
我建议一次只做一件事。安装一个,配置它。然后,更改配置并尝试一下,看看不同的设置如何影响服务。此外,对于防火墙之类的东西,看看不同的设置如何影响依赖网络访问的其他服务。
确保此服务器位于独立网络上。您不会希望服务器上运行的服务干扰较大的网络(例如学校的网络)。
这些只是一些想法。我会先考虑网络和 Web 服务器。不要马上考虑 LDAP 或类似的东西。另外,不要考虑开发环境,因为服务器实际上不应该运行这些环境。当你到达那个点时,尝试在工作站上开发一个测试应用程序并将其部署到 Web 服务器。
答案3
一种方法是使用虚拟机来建立比较系统。
一个上使用 Sendmail,另一个上使用 Postfix,还有一个上使用 Exim。
Apache 与 Lighttpd 与 nginx。
Svn 与 git 与 Mercurial。
答案4
我想说,我认为你的做法很棒。这正是我刚开始使用服务器的方式,我设置了一个 FreeBSD 服务器并对其进行了操作。我还认为 FreeBSD 是一个很好的起点,因为它不像 Linux 那样需要点击操作。我建议尽可能多地从源代码编译,这将为你带来宝贵的经验。以下是我推荐的一些软件:
- qmail - 出色的电子邮件服务器,可以让您很好地了解电子邮件服务器的内部工作原理
- BIND - 标准 DNS 服务器。我个人更喜欢 djbdns,但我认为使用 BIND 配置文件有很多值得学习的地方
- Samba - 正如 NYSystemsAnalyst 指出的那样,samba 是将 Windows 计算机连接到 *nix 机器的绝佳工具。
- Apache - Apache 是必需的,它是互联网上的标准 *nix 网络服务器,也可以使用 PHP 和 Perl 对其进行编译。
我认为在一台机器上这样做没什么问题,因为这只是一个测试环境。我还建议重新编译内核,这是另一个很好的学习经验。
最后,我同意 NYSystemsAnalyst 的观点,你应该将其远离任何生产网络,你不希望任何东西干扰。