FreeBSD做服务器的好处是什么?比较WIN和LINUX的区别.

FreeBSD做服务器的好处是什么?比较WIN和LINUX的区别.,第1张

稳定、安全、性能的综合选择,如果你认为服务器的最重要指标不只是速度快,那么FreeBSD一定会让你充满惊喜,FBI的服务器就用FreeBSD。下面是FreeBSD12 vs Ubuntu VS Windows2019的压力测试(下载大图查看)

测试环境:均在虚拟机环境下,不和真机对比测试。其它没说明的信息均代表一致,软件的安装均使用包管理方式,没使用源代码安装,系统没做任何调优。3个虚拟服务器同时打开,每测试一个服务器均测试两次,以最好的结果为准。(测试结果顺序:FreeBSD、Ubuntu、Win2019)。注意:nginx服务器版本没统一,会稍微影响结果的公平性,但在合理范围之内。

ab重要指标:Requests per second(越大越好)、Time per request(越小越好)、Transfer rate(越大越好,大流量下的吞吐量)

结论:FreeBSD在大压力情况下的性能要比ubuntu略好,稳定性、安全性、健壮性也要比Linux好。当然如果要是用于深度学习而不是web,我可能会选Linux。

另外,安全都是相对的,虽然默认情况下*BSD比Linux安全,但并不代表你维护起来就安全,账号密码、ssh安全,权限,web程序的安全,都会影响系统安全性(web站点还是推荐使用wordpress最新版,安全插件使用:WP Cerber Security,比All In One WP Security略好,但即使刚入门,也比windows经常打补丁放心的多。只是FreeBSD调试wordpress还需要提高更多的技术,不是简单的pkg install就完了,需要对nginx、php、mysql有足够的掌握,这些看起来复杂,但会了又觉得其乐无穷,而且绝对会培养起传统黑客的精神和体会到简洁的强大。

24.4 拨入服务

Contributed by Guy Helmer. Additions by Sean Kelly.

为拨入服务配置FreeBSD系统与连接到终端是非常相似的,除非您正在使用 modem来拨号而不是终端。

24.4.1 外置vs.内置modem

外置modem看起来很容易拨号。 因为,外置 modem 可以通过储存在非易失性的RAM中的参数来配置,它们通常提供指示器来显示重要的RS-232信号的状态。不停闪光的信号灯能给用户留下比较深刻的印象,而且指示器也可以用来查看modem是否正常地工作。

内置modem通常缺乏非易失性的RAM, 所以对它们的配置可能会限制在通过 DIP 开关来设置。如果您的内置modem有指示灯,您也很难看得到。

24.4.1.1 Modem和线缆

如果您使用一个外置的 modem,那您将需要适当的电缆线。一个标准的串口线应当足够长以至普通的信号能够连接上:

表 24-4. 信号名称

缩写 全名

RD 收到数据 (Received Data)

TD 传出数据 (Transmitted Data)

DTR 数据终端就绪 (Data Terminal Ready)

DSR 数据集就绪 (Data Set Ready)

DCD 数据载波检测 (Data Carrier Detect) (RS-232 的收到线路信号检测器)

SG 信号地 (Signal Ground)

RTS 要求发送数据 (Request to Send)

CTS 允许对方发送数据 (Clear to Send)

FreeBSD 对速度超过 2400 bps 的情形需要通过 RTS 和 CTS 信号来完成流控制, 通过 CD 信号来检测呼叫响应和挂机,并通过 DTR 信号来在会话结束时对调制解调器进行复位。某些电缆在连接时没有提供全部需要的信号, 这会给您带来问题, 例如在挂断时登录会话不消失,这就有可能是电缆的问题。

与其它类 UNIX? *** 作系统类似, FreeBSD 使用硬件信号来检测呼叫响应, 以及在挂断时挂断并复位调制解调器。 FreeBSD 避免发送命令给调制解调器, 或监视其状态。 如果您熟悉通过调制解调器来连接基于 PC 的 BBS 系统, 这可能看起来有点难用。

24.4.2 串口的考虑

FreeBSD支持基于 NS8250, NS16450, NS16550 和 NS16550A 的EIA RS-232C通讯接口。 8250和16450设备有单字符缓冲。 16550设备提供了一个 16 个字符的缓冲,可以提高更多的系统性能。 因为单字符缓冲设备比 16 个字符的缓冲需要更多的系统资源来工作,所以基于16550A的接口卡可能更好。 如果系统没有活动的串口, 或有较大的负载, 16 字符缓冲的卡对于低错误率的通讯来说更好。

24.4.3 快速预览

对于终端, init 会在每个配置串口上为每个拨入连接产生一个 getty 进程。 例如, 如果一个 modem 被附带在 /dev/ttyd0 中,用命令ps ax可以显示下面这些:

4850 ?? I 0:00.09 /usr/libexec/getty V19200 ttyd0

当用户拨上modem, 并使用它进行连接时, CD 线就会被 modem 认出。 内核注意到载波信号已经被检测到, 需要完成 getty 端口的打开。 getty 发送一个登录:在指定的初始线速度上的命令行。 Getty 会检查合法的字符是否被接收,在典型的配置中, 如果发现 “垃圾”, getty 就会设法调节线速度,直到它接收到合理的字符。

用户在键入他/她的登录名称后, getty执行/usr/bin/login, 这会要求用户输入密码来完成登录,然后启动用户的shell。

24.4.4 配置文件

如果希望允许拨入您的 FreeBSD 系统, 在 /etc 目录中有三个系统配置文件需要您关注。 其一是 /etc/gettytab,其中包含用于 /usr/libexec/getty 服务的配置信息。 其二是 /etc/ttys, 它的作用是告诉 /sbin/init 哪些 tty 设备上应该运行 getty。 最后,关于端口的初始化命令, 应放到 /etc/rc.d/serial 脚本中。

关于在 UNIX 上配置拨入调制解调器有两种主要的流派。一种是将本地计算机到调制解调器的 RS-232 接口配置为固定速率。 这样做的好处是,远程用户总能立即见到系统的登录提示符, 而其缺点则是,系统并不知道用户真实的数据速率是多少, 因而, 类似 Emacs 这样的程序, 也就无法调整它们绘制屏幕的方式, 以便为慢速连接改善响应时间。

另一种流派将调制解调器的 RS-232 接口速率配置为随远程用户的连接速率变化。 例如, 对 V.32bis (14.4 Kbps) 连接, 调制解调器会让自己的 RS-232 接口以 19.2 Kbps 的速率运行, 而 2400 bps 连接, 则会使调制解调器的 RS-232 接口以 2400 bps 的速率运行。 由于 getty 并不能识别具体的调制解调器的连接速率反馈信息, 因此, getty 会以初始速度给出一个 login: 提示, 并检查用户的响应字符。如果用户看到乱码, 则他们应知道此时应按下 Enter 键,直到看到可以辨认的提示符为止。 如果数据速率不匹配, 则 getty 会将用户输入的任何信息均视为 “乱码”, 并尝试以下一种速率来再次给出 login: 提示符。 这一过程可能需要令人作呕地重复下去, 不过一般而言,用户只要敲一两下键盘就能看到正确的提示符了。 显然, 这种登录过程看起来不如前面所介绍的 “锁定速率” 方法那样简单明了, 但使用低速连接的用户,却可以在运行全屏幕程序时得到更好的交互响应。

这一节将尽可能公平地介绍关于配置的信息,但更着力于介绍调制解调器速率随连接速率变化的配置方法。

24.4.4.1 /etc/gettytab

/etc/gettytab是一个用来配置 getty 信息的 termcap 风格的文件。 请看看 gettytab 的联机手册了解完整的文件格式和功能列表。

24.4.4.1.1 锁定速度的配置

如果您把您的modem的数据通讯率锁定在一个特殊的速度上, 您不需要对 /etc/gettytab 文件作任何变化。

24.4.4.1.2 匹配速度的配置

您将需要在 /etc/gettytab 中设置一个记录来告诉 getty 您希望在 modem 上使用的速度。 如果您的 modem 的速率是 2400 bit/s, 则可以使用现有的 D2400 的记录。

#

# Fast dialup terminals, 2400/1200/300 rotary (can start either way)

#

D2400|d2400|Fast-Dial-2400:\

:nx=D1200:tc=2400-baud:

3|D1200|Fast-Dial-1200:\

:nx=D300:tc=1200-baud:

5|D300|Fast-Dial-300:\

:nx=D2400:tc=300-baud:

如果您有一个更高速度的 modem, 必须在 /etc/gettytab 中添加一个记录。 下面是一个让您可以以最高 19.2 Kbit/s 的用在 14.4 Kbit/s的modem上的接口记录:

#

# Additions for a V.32bis Modem

#

um|V300|High Speed Modem at 300,8-bit:\

:nx=V19200:tc=std.300:

un|V1200|High Speed Modem at 1200,8-bit:\

:nx=V300:tc=std.1200:

uo|V2400|High Speed Modem at 2400,8-bit:\

:nx=V1200:tc=std.2400:

up|V9600|High Speed Modem at 9600,8-bit:\

:nx=V2400:tc=std.9600:

uq|V19200|High Speed Modem at 19200,8-bit:\

:nx=V9600:tc=std.19200:

这样做的结果是 8-数据位, 没有奇偶校验的连接。

上面使用19.2 Kbit/s的连接速度的例子,也可以使用 9600 bit/s (for V.32), 2400 bit/s, 1200 bit/s,300 bit/s, 直到 19.2 Kbit/s。 通讯率的调节使用 nx= (“next table”) 来实现。 每条线使用一个 tc= (“table continuation”) 的记录来加速对于一个特殊传输率的标准设置。

如果您有28.8 Kbit/s的modem,或您想使用它的 14.4Kbit/s 模式,就需要使用一个更高的超过 19.2 Kbit/s 的通讯速度的 modem。 这是一个启动 57.6 Kbit/s 的 gettytab 记录的例子:

#

# Additions for a V.32bis or V.34 Modem

# Starting at 57.6 Kbps

#

vm|VH300|Very High Speed Modem at 300,8-bit:\

:nx=VH57600:tc=std.300:

vn|VH1200|Very High Speed Modem at 1200,8-bit:\

:nx=VH300:tc=std.1200:

vo|VH2400|Very High Speed Modem at 2400,8-bit:\

:nx=VH1200:tc=std.2400:

vp|VH9600|Very High Speed Modem at 9600,8-bit:\

:nx=VH2400:tc=std.9600:

vq|VH57600|Very High Speed Modem at 57600,8-bit:\

:nx=VH9600:tc=std.57600:

如果您的 CPU 速度较低, 或系统的负荷很重, 而且没有 16550A 的串口,您可能会在57.6 Kbit/s 上得到 “sio” “silo”错误。

24.4.4.2 /etc/ttys

/etc/ttys文件的配置在 例 24-1中介绍过。 配置 modem 是相似的, 但我们必须指定一个不同的终端类型。锁定速度和匹配速度配置的通用格式是:

ttyd0 "/usr/libexec/getty xxx" dialup on

上面的第一条是这个记录的设备特定文件 —— ttyd0 表示 /dev/ttyd0 是这个 getty 将被监视的文件。 第二条 "/usr/libexec/getty xxx" 是将运行在设备上的进程 init。 第三条,dialup,是默认的终端类型。 第四个参数, on, 指出了线路是可 *** 作的 init。也可能会有第五个参数, secure, 但它将只被用作拥有物理安全的终端 (如系统终端)。

默认的终端类型可能依赖于本地参考。 拨号是传统的默认终端类型,以至用户可以定制它们的登录脚本来注意终端什么时候拨号, 和自动调节它们的终端类型。 然而,作者发现它很容易在它的站点上指定 vt102 作为默认的终端类型,因为用户刚才在它们的远程系统上使用的是VT102模拟器。

您对/etc/ttys作修改之后,您可以发送 init 进程给一个 HUP 信号来重读文件。您可以使用下面的命令来发送信号:

# kill -HUP 1

如果这是您的第一次设置系统, 您可能要在发信号 init 之前等一下,等到您的 modem 正确地配置并连接好。

24.4.4.2.1 锁定速度的配置

对于一个锁定速度的配置,您的 ttys 记录必须有一个为 getty 提供固定速度的记录。 对于一个速度被锁定在 19.2kbit/s 的 modem, ttys 记录是这样的:

ttyd0 "/usr/libexec/getty std.19200" dialup on

如果您的 modem 被锁定在一个不同的数据速度, 为 std.speed 使用适当的速度来代替 std.19200。 确信您使用了一个在 /etc/gettytab 中列出的正确的类型。

24.4.4.2.2 匹配速度的设置

在一个匹配速度的设置中,您的 ttys 录需要参考在 /etc/gettytab 适当的起始 “auto-baud” 记录。 例如, 如果您为一个以 19.2 Kbit/s 开始的可匹配速度的 modem 添加上面建议的记录, 您的 ttys 记录可能是这样的:

ttyd0 "/usr/libexec/getty V19200" dialup on

24.4.4.3 /etc/rc.d/serial

高速调制解调器, 如使用 V.32、 V.32bis, 以及 V.34 的那些, 需要使用硬件 (RTS/CTS) 流控制。 您可以在 /etc/rc.d/serial 中增加 stty 命令来在 FreeBSD 内核中, 为调制解调器设置硬件流控制标志。

例如, 在 1 号串口 (COM2) 拨入和拨出设备上配置 termios 标志 crtscts, 可以通过在 /etc/rc.d/serial 增加下面的设置来实现:

# Serial port initial configuration

stty -f /dev/ttyd1.init crtscts

stty -f /dev/cuad1.init crtscts

24.4.5 Modem 设置

如果您有一个 modem, 它的参数能被存储在非易失性的 RAM 中,您将必须使用一个终端程序来设置参数 (比如 MS-DOS? 下的 Telix 或者 FreeBSD 下的 tip)。使用同样的通讯速度来连接 modem 作为初始速度 getty 将使用和配置 modem 的非易失性 RAM 来适应这些要求:

连接时宣告 CD

*** 作时宣告 DTR; DTR 消失时挂断线路并复位调制解调器

CTS 传输数据流控制

禁用 XON/XOFF 流控制

RTS 接收数据流控制

宁静模式 (无返回码)

无命令回显

请阅读您 modem 的文档找到您需要用什么命令和 DIP 接口设置。

例如,要在一个 U.S. Robotics? Sportster? 14400 的外置 modem 上设置上面的参数,可以用下面这些命令:

ATZ

AT&C1&D2&H1&I0&R2&W

您也可能想要在 modem 上寻找机会调节这个设置, 例如它是否使用 V.42bis 和 MNP5 压缩。

外置 modem 也有一些用来设置的 DIP 开关, 也许您可以使用这些设置作为一个例子:

Switch 1: UP —— DTR Normal

Switch 2: N/A (Verbal Result Codes/Numeric Result Codes)

Switch 3: UP —— Suppress Result Codes

Switch 4: DOWN —— No echo, offline commands

Switch 5: UP —— Auto Answer

Switch 6: UP —— Carrier Detect Normal

Switch 7: UP —— Load NVRAM Defaults

Switch 8: N/A (Smart Mode/Dumb Mode)

在拨号 modem 上的结果代码应该被 禁用/抑制, 以避免当 getty 在 modem 处于命令模式并回显输入时错误地给出 login: 提示时可能造成的问题。 这样可能导致 getty 与 modem 之间产生更长的不必要交互。

24.4.5.1 锁定速度的配置

对于锁定速度的配置, 您需要配置 modem 来获得一个不依赖于通讯率的稳定的 modem到计算机 的传输率。 在一个 U.S. Robotics Sportster 14400 外置 modem 上, 这些命令将锁定 modem 到计算机的传输率:

ATZ

AT&B1&W

24.4.5.2 匹配速度的配置

对于一个变速的配置, 您需要配置 modem 调节它的串口传输率匹配接收的传输率。 在一个 U.S. Robotics Sportster 14400 的外置 modem 上, 这些命令将锁定 modem 的错误修正传输率适合命令要求的速度,但允许串口速度适应没有纠错的连接:

ATZ

AT&B2&W

24.4.5.3 检查modem的配置

大多数高速的modem提供了用来查看当前 *** 作参数的命令。 在USR Sportster 14400外置modem上, 命令 ATI5 显示了存储在非易失性RAM中的设置。要看看正确的 modem *** 作参数, 可以使用命令 ATZ 然后是 ATI4。

如果您有一个不同牌子的 modem, 检查 modem 的使用手册看看如何双重检查您的 modem 的配置参数。

24.4.6 问题解答

这儿是几个检查拨号modem的步骤。

24.4.6.1 检查FreeBSD系统

把您的modem连接到FreeBSD系统, 启动系统, 然后, 如果您的 modem 有一个指示灯,当登录时看看 modem 的 DTR 指示灯是否亮: 会在系统控制台出现命令行——如果它亮, 意味着 FreeBSD 已经在适当的通讯端口启动了一个 getty 进程, 等待 modem 接收一个呼叫。

如果DTR指示灯不亮, 通过控制台登录到 FreeBSD系统,然后执行一个 ps ax 命令来看 FreeBSD 是否正在正确的端口运行 getty进程。您将在进程显示中看到像这样的一行:

114 ?? I 0:00.10 /usr/libexec/getty V19200 ttyd0

115 ?? I 0:00.10 /usr/libexec/getty V19200 ttyd1

如果您看到是这样的:

114 d0 I 0:00.10 /usr/libexec/getty V19200 ttyd0

modem 不接收呼叫, 这意味着 getty 已经在通讯端口打开了。这可以指出线缆有问题或 modem 错误配置, 因为 getty 无法打开通讯端口。

如果您没有看到任何 getty 进程等待打开想要的 ttydN 端口, 在 /etc/ttys 中双击您的记录看看那儿是否有错误。 另外,检查日志文件 /var/log/messages 看看是否有一些来自 init 或 getty 的问题日志。 如果有任何信息, 仔细检查配置文件 /etc/ttys 和 /etc/gettytab,还有相应的设备文件 /dev/ttydN,是否有错误,丢失记录,或丢失了设备指定文件。

24.4.6.2 尝试接入Try Dialing In

设法拨入系统。 确信使用8位, 没有奇偶检验, 在远程系统上的1阻止位。如果您不能立刻得到一个命令行, 试试每隔一秒按一下 Enter。如果您仍没有看到一个登录: 设法发送一个 BREAK。如果您正使用一个高速的 modem 来拨号, 请在锁定拨号 modem 的接口速度后再试试。

如果您不能得到一个登录:prompt,再检查一下 /etc/gettytab,重复检查:

在/etc/ttys 中指定的初始可用的名称与 /etc/gettytab 的一个可用的相匹配。

每个 nx= 记录与另一个 gettytab 可用名称匹配。

每个 tc= 记录与另一个 gettytab可用名称相匹配。

如果您拨号但 FreeBSD 系统上的 modem 没有回应, 确信 modem 能回应电话。 如果 modem 看起来配置正确了, 通过检查 modem 的指示灯来确认 DTR 线连接正确。

如果您做了好几次,它仍然无法工作,打断一会,等会再试试。 如果还不能工作,也许您应该发一封电子邮件给 FreeBSD 一般问题邮件列表 寻求帮助。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12109840.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存