VMware Workstation 14 Pro 及 CodeWeavers CrossOver 促销

关于使用盗版软件

如果的确喜欢或者需要使用某些盗版软件,那就用吧,但不要理直气壮,更不要嘲笑正版用户!

日后,能够承担正版的费用时,就买正版。

VMware Workstation 14 Pro

必装的软件,用于在 Windows 和 Linux 下运行虚拟机。

自从某一年,发现它在“黑五”时以极低的价格进行促销之后,一直希望将它“正版化”。后来惊喜地发现,在中国,促销时间为“双十一”,可惜连续两年都华丽丽地错过了。

最近看到它在促销,价格是正常售价的 20%

VMware Workstation 14 Pro - 2017-双十一促销

CodeWeavers CrossOver

Wine 的商业化版本,号称为 Wine 贡献了 80% 的代码。用于无需运行虚拟机即可在 Linux 或 macOS 下运行 Windows 应用程序,如 QQ、微信及 MS Office 等。

还是使用经典的优惠码:CXNOW,目前可享受七折优惠。

CodeWeavers CrossOver - 30% off

至于为什么不选择免费的 Wine、Winetricks/Winetricks-zh、PlayOnLinux,作为 Winetricks-zh 的老用户,我深刻体会到:CrossOver 带给我的是省心、便利,有时候,花钱买时间,避免过多无意义的折腾,是很划算的!

Ubuntu 安装完成后的设置

本篇博文为在联想昭阳 K29 上安装 Ubuntu 16.04 LTS 的笔记,部分内容可能对您没什么参考价值,又或许某些您需要的内容没有包括在内,故仅供参考。

添加“Canonical 合作伙伴”软件源

在“系统设置 – 软件与更新 – 其他软件”中勾选“Canonical 合作伙伴”软件源,以便安装 Adobe Flash Plugin 等组件。

Ubuntu - 软件源 - Canonical 合作伙伴

安装 Windows 字体及中文支持

将需要用到的 Windows 字体文件拷至“/usr/local/share/fonts”目录下,系统刷新时可调用这些字体。

如安装过程中选择中国时区,语言选择为“英语”,安装后进入“系统设置 – 语言支持”,系统将自动安装中文支持,我们将:
1. “菜单和窗口的语言”中的“汉语(中国)”移至英语之前;
2. “键盘输入法系统”设置为“fcitx”。

即可将系统语言设置为中文并为安装搜狗拼音输入法做好准备。

Ubuntu - 系统设置 - 语言支持

安装附加组件

sudo apt install --install-recommends vim cabextract p7zip unrar unzip exfat-fuse adobe-flashplugin -y

其中:
* vim 为自己惯用的编辑器,可根据自己的喜好选用;
* cabextract、p7zip、unrar、unzip为常见的压缩工具包;
* exfat-fuse 为 exfat 文件系统支持,使系统可以正常读写使用 exfat 格式化的U盘、移动硬盘;
* adobe-flashplugin,Adobe 的 Flash 插件。

安装笔记本电脑节能管理组件

sudo apt install --install-recommends tlp tlp-rdw tp-smapi-dkms acpi-call-dkms thermald powertop  -y

注:
笔记本的 Secure Boot 应设置为“Setup Mode”或关闭,否则,此步骤会因 UEFI 阻止而出错。

安装指纹识别组件

sudo add-apt-repository ppa:fingerprint/fingerprint-gui
sudo apt install --install-recommends fingerprint-gui policykit-1-fingerprint-gui libbsapi -y

注:
经常崩溃,可装可不装。

安装 Shutter(截屏工具)

sudo apt install --install-recommends shutter gnome-web-photo -y

注:
gnome-web-photo 为网页截屏插件,可用于截取整个网页。

安装常用软件

sudo apt install --install-recommends vlc gimp filezilla -y
  • vlc 为全能型视频播放器,兼容多种视频格式;
  • gimp 为类似 Photoshop 的图片编辑软件;
  • filezilla 为 FTP 工具,也有 Windows 版本。

其他如:
* 搜狗拼音输入法
* Haroopad
* 网易云音乐

官网有提供 deb 格式软件包,下载后双击即可调用“Ubuntu 软件”进行安装。

注:
搜狗拼音输入法安装后需手动添加秘钥,以便升级:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E40EBBA24FF2FC69

同时,因为已经添加了“ubuntukylin”的软件源,也可以安装“ubuntukylin”上的软件包了。

安装 WINE

sudo add-apt-repository ppa:wine/wine-builds
sudo dpkg --add-architecture i386
sudo apt install --install-recommends winehq-devel -y

注:
WINE 用于在 Linux 上运行某些 Windows 程序,我主要用于运行;
* QQ;
* 微信;
* Microsoft Office 2007。

然而,总体上,并不是很稳定,容易崩溃。

目前 WINE 也已经列入可装可不装的组件之列。

在 Ubuntu 中使用蓝牙鼠标

软件与硬件

  • Ubuntu 16.04.3 LTS
  • Microsoft Designer Mouse
  • Logitech M590

Ubuntu 对联想昭阳 K29 的硬件支持情况

Ubuntu 对我目前使用的联想昭阳 K29 硬件支持良好,之前在 Debian 上需要折腾的只有读卡器(无线网卡使用“non-free”安装盘安装即可正常识别,也可以自己安装固件),在 Ubuntu 上也可以直接识别并驱动。

在硬件方面,除了指纹识别使用的 “fingerprint-gui”时常崩溃(非必要功能,其实也不影响日常使用)之外,会令人觉得不便的,也就是蓝牙的连接问题了(前段时间 Windows 10 也曾两次系统更新后,蓝牙无法正常启用,最近已经修复)。

在 Ubuntu 上使用蓝牙鼠标(使用 Microsoft Designer Mouse 及 Logitech M590 测试通过),需进行下列设置:

设置自动启用蓝牙

编辑/etc/bluetooth/main.conf

sudo vim /etc/bluetooth/main.conf

# AutoEnable defines option to enable all controllers when they are found.
# This includes adapters present on start as well as adapters that are plugged
# in later on. Defaults to 'false'.
#AutoEnable=false

中的“AutoEnable=false”改为“AutoEnable=true”,并去掉注释;

设置启用 UserspaceHID

编辑/etc/bluetooth/input.conf

sudo vim /etc/bluetooth/input.conf

# Enable HID protocol handling in userspace input profile
# Defaults to false (HIDP handled in HIDP kernel module)
#UserspaceHID=true

中的“UserspaceHID=true”去掉注释;

启用sspmode

sudo hciconfig hci0 sspmode 1
sudo hciconfig hci0 down
sudo hciconfig hci0 up

启用实验模式

编辑/lib/systemd/system/bluetooth.service

sudo vim /lib/systemd/system/bluetooth.service

“ExecStart=/usr/lib/bluetooth/bluetoothd”改为“ExecStart=/usr/lib/bluetooth/bluetoothd -E”,以启用试验模式。

至此,蓝牙已经可以在 Ubuntu 16.04 LTS 上正常使用了。

暂不完美之处

相比 Windows,在 Linux 下使用蓝牙设备,小问题还是比较多:

  • 暂无法自动连接,即使将蓝牙功能设置为“打开”,并将 Designer Mouse 连接设置为“打开”,也还不能使用;

Ubuntu - 蓝牙设置

需进入蓝牙设置中选择“Designer Mouse”后,方可使用鼠标;

Ubuntu - 连接蓝牙鼠标

  • 暂无法使用 Designer Mouse 唤醒休眠的系统。

备注

Ubuntu 17.10 下无需在进行上述设置,即可正常使用。

在 Windows 10 下设置网络位置

我们关于网络共享的设置,有许多是与网络位置相关的。

在 Windows 7 下,我们可以很方便地修改网络位置,将其设置为“家庭网络”、“工作网络”和“公共网络”:

Windows 7 - 网络位置-设置

在 Windows 10 中,这个设置的位置改变了:

我们需要在“Windows 设置”中,选择“网络和 Internet”,在“状态”中点击“更改连接属性”:

Windows 10 - 网络位置-更改连接属性

接着,在“将这台电脑设为可以被检测到”处选择“开”即为“专用网络”,选择“关”,则为“公用网络”。

Windows 10 - 网络位置-设置

关于文档

情况说明

今天在安装并测试某开源网店系统。

我感觉到,这家公司目前对其开发的几套系统都维护得不是很积极。官网上的文档要么很陈旧(基本就是两三年前的内容),要么直接就没有,甚至,我想找一份安装文档,也没有找到,最后向客服人员索要了一份,还不是最新版本的。

好在,安装及配置并不太难,稍加测试便安装成功了。

只是还有些小细节不是很满意,想调整一下,翻遍了官网和论坛也未见片言只字。

到此,我已经深刻地体会到:
关于文档

(随手保存下来的图片,暂无法注明出处,侵删。)

心得体会

对于一款产品来说,完善的文档是非常重要的!

例如,我一直对 Arch Linux 的 ArchWiki 赞不绝口。即便复杂如以高度可定制性闻名的 Arch Linux,在完善的文档的支持下,也可以使像我一样的非专业人员少走了许多弯路。

基于 CentOS 7 系统设置 – sshd 安全配置

迁移到 Vultr 东京机房,这次我们选择了 CentOS 7 x64 作为 VPS 的操作系统,因为我们认为它相比之前使用的 Ubuntu 16.04 x64 LTS 更适合我们。

跟其他系统(无论是服务器还是桌面操作系统)一样,在系统安装后,尤其是投入生产用途时,需要进行一系列的设置,主要是增加安全性。

本文主要进行的是 sshd 安全配置,包括限制 root 及设置普通用户,其主要目的也是为了增加 sshd 的安全性。

修改 root 密码

默认生成的 root 密码太过复杂,而且是明文显示在“Server Information”中的,我们需要更改一个容易记住且安全性高的密码,使用 root 登录并运行:

passwd

即可按提示设置 root 密码。

创建普通用户

root 权限过大,且 root 容易被作为攻击的突破口,故,我们需要再创建一个普通用户,用于替代 root 进行系统的日常管理操作。

我们使用以下命令创建新用户(用户名为“newbietech”,以下简称为“newbietech”):

adduser newbietech

使用以下命令,按提示为 newbietech 设置密码:

passwd newbietech

同时,我们使用以下命令,将 newbietech 加入“Wheel”组:

gpasswd -a newbietech wheel

当看到“Adding user newbietech to group wheel”时,表明 newbietech 已经添加至 Wheel 组,具备 sudo 权限,可以在必要时提权(需输入 newbietech 的密码确认),替代 root 进行某些操作。

sshd 安全配置

我们使用 SSH 登录的方式对 VPS 进行管理,这样 sshd 的安全配置便是确保系统安全的重要部分。

对 sshd 的安全配置,主要通过修改“/etc/ssh/sshd_config”文件实现。

我们可以通过以下命令对该文件进行修改:

vi /etc/ssh/sshd_config

而使用以下命令重启 sshd 服务使修改生效:

service sshd restart

对 sshd 的安全配置,也包括对其他配置文件的修改,我们强烈建议:
* 在修改前注意保存配置文件;
* 对多项功能进行修改时,逐项进行测试,通过一项后再进行下一项的修改。

修改 sshd 端口

sshd 的默认端口为“22”,我们将它改为其他端口,例如“10086”。

我们在“/etc/ssh/sshd_config”文件中添加“Port 10086”,如下图:
sshd - Port
保存退出,运行以下命令将“10086”端口添加至防火墙的开放规则中:

firewall-cmd --add-port 10086/tcp

再重启 sshd 服务使修改生效,即可使用新端口进行登录。

经测试使用新端口进行登录无异常之后,运行:

firewall-cmd --add-port 10086/tcp --permanent

使防火墙规则在重启系统之后依然生效。

使用 SSH v2 协议

SSH v1 协议已被证实存在缺陷,我们应使用安全性更高的 SSH v2 协议以提高安全性。

我们在“/etc/ssh/sshd_config”文件中添加“Protocol 2”,修改生效后,即可启用 SSH v2 协议的支持。

sshd - Protocol

限制 root 直接登录

我们在“/etc/ssh/sshd_config”文件中添加“PermitRootLogin no”,修改生效后,即可限制 root 直接登录。

sshd - PermitRootLogin

值得注意的是,配置生效后,我们不要急于退出当前 SSH 连接,新开一个终端,测试 root 是否已被禁止登录,而使用普通用户登录是否成功。一切经测试正常后,才能将当前 SSH 连接退出。

在进行配置文件的修改之前,对拟修改的文件先进行备份是个好习惯,因为这样可以在出现问题时及时回退到可用的版本。

使用密钥进行登录

先前在使用 Amazon ECS 的时候,我们就注意到,其官方的镜像将禁止 root 直接登录并使用密钥进行登录作为增强系统安全性的措施。

使用密钥登录,我们需要先创建密钥。

在 Linux 下,我们可以使用以下命令创建密钥:

ssh-keygen -t rsa -b 4096

根据提示,即可创建“id_rsa”和“id_rsa.pub”两个文件,前者为私钥,后者为公钥,均保存在“~/.ssh”目录下。

在 Windows 下,我们也可以使用 PuTTYGen 等工具创建密钥:

PuTTY - PuTTY Key Generator

我们可以点击“Generate”按钮按提示创建密钥对。

在 Linux 下生成的密钥,我们可以使用以下方法将公钥添加至“~/.ssh/authorized_keys”文件中并设置文件读写权限:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

如果系统中没有其他密钥,我们也可以将“id_rsa.pub”文件复制一份保存为“authorized_keys”,即:

cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

我们在创建服务器实例时选择了“SSH Keys”,则 root 的主文件夹下包含密钥文件,但新创建的用户的主文件夹下不包含密钥文件,我们可以将 root 的密钥文件复制到其他用户的主文件夹下:

ls /home/                           # 应可看到 newbietech 目录
ls -ah                              # 应可看到 .ssh 目录
ls .ssh/                            # 应可看到 authorized_keys 文件
mkdir /home/newbietech/.ssh
cp .ssh/authorized_keys /home/newbietech/.ssh/
chown newbietech /home/newbietech/.ssh/authorized_keys
chmod 600 /home/newbietech/.ssh/authorized_keys

在 Windows 或其他环境下生成的密钥,我们可以创建“authorized_keys”文件并在编辑器中将公钥粘贴进来:

vi ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

上述过程还可以简单地通过“ssh-copy-id”脚本进行设置:

ssh-copy-id -i ~/.ssh/id_rsa.pub "-p 10086 newbietech@newbietech-vultr-tokyo"

总之,只要可以实现将公钥添加至“~/.ssh/authorized_keys”文件中并设置文件读写权限的目的即可。

同时,我们修改“/etc/ssh/sshd_config”文件中相关的设置:

sshd - PubkeyAuthentiation

值得注意的是,我们需要将“StrictModes”设置为“no”,否则可能会出现“server refused our key”的情况,无法使用密钥进行登录。

配置生效后,即可使用密钥登录。

如果在 Windows 下使用 PuTTY 登录,则可能生产的私钥文件“id_rsa”不符合 PuTTY 所需的格式,需要使用 PuTTY Key Generator 进行转换:

PuTTY - PuTTY Key Generator

点击“Load”按钮加载已生成的私钥,再点击“Save private key”按钮,即可生成所需的“PPK私钥”供 PuTTY 登录使用:

PuTTY-Configuration

禁用密码登录

我们创建了密钥文件,用于登录系统,同时可以设置禁止密码登录:

sshd - PasswordAuthentication

配置生效后,我们在登录时不设置密钥文件,便无法登录系统了。

安装 fail2ban

如果我们在登录系统时看到诸如:

There were 666 failed login attempts since the last successful login.

这样的提示,则表明系统可能被攻击,我们可以安装 fail2ban 之类的工具来给系统提供一定的保护,防止系统被暴力攻破,也防止短时间内接受大量的请求,导致服务器负载过重从而影响正常的访问。

我们在配置 sshd 之前便已经安装了 fail2ban,以致在测试禁止 root 登录时出现数次登录失败,当前 IP 即被 fail2ban 禁止登录,最后不得不重启路由器以获取新的 IP 之后,才能正常登录系统。这表明,fail2ban 还是有一定的防护效果的。

小结

上述是较为常用的系统安全配置,除此之外,我们还有其他许多方式来保证系统的安全,例如:

  • 禁用部分用户/用户组;
  • 关闭部分系统服务;
  • 卸载不需要的软件包;
  • 关闭部分端口(甚至可以关闭所有的端口后仅开放需要开放的端口);
  • 设置仅接受指定的终端登录系统;
  • 安装防护/备份系统;
  • ……

然而,我们认为:我们只能在有限预算的前提下,尽可能地保证系统的安全,同时,在安全与效率中取得平衡

例如,我们使用了密钥方式登录系统,同时禁用了使用密码方式登录,可以有效降低因密码遗失造成的风险,但同时也损失了部分便利性,例如,我们在没有保存密钥的设备上,就无法登录系统,也就无法随时随地对系统进行登录维护。

另外,但如果我们没有为密钥设置密码,则可以实现免密码登录,在保证一定的安全性的同时,又享受着免密登录的便利。然而,在这种情况下,如果万一密钥文件泄露,对方如果知晓服务器的地址和用户名(尤其是 root,除了权限过大之外,几乎所有的系统都存在用户名为 root 的用户,自然成了攻击者的首选),便可直接使用密钥文件登录系统,这也是为什么我们认为必须禁用 root 登录的原因。

在我们所有的服务器中,均采用了密钥方式登录,同时禁用密码方式登录,也禁用了 root 登录。

我们在创建密钥文件时为密钥文件也设置了密码,以获得双重保护,这虽是以损失一定的便利性为代价的,只是我们认为值得。

PuTTY - Login

在 CentOS 7 中设置 hostname

hostname 的设置方案

如果有多台电脑需要管理,我们倾向于给每台电脑设置一个“一目了然”名称,这样我们只要看名称就可以知道是哪台电脑,方便识别与管理。

但也有人认为,我们应像 Windows 10 默认的方式那样,随机生成一个电脑名称,以增强安全性:
Windows 10 - 电脑名称

这样,其他人可能就无法根据电脑名称判定某台电脑是总经办使用的,而另一台电脑是属于财务部的。

具体采取哪种方案,我们认为可以根据自己的管理习惯确定。

设置 hostname

我们可以在创建 Vultr 云服务器实例时设置 hostname:

Vultr - hostname

也可以随时进行更改:

在 CentOS 7 中,我们使用“hostnamectl”工具对 hostname 进行管理,设置 hostname 的命令如下:

hostnamectl set-hostname newbietech-vultr-tokyo

我们将 hostname 设置为“newbietech-vultr-tokyo”。

使用 Vultr 云服务器建站

建站的 3 种方式

建站,主要有 3 种方式:

  • 自建/托管服务器
  • 虚拟主机
  • 云服务器

自建/托管服务器及虚拟主机的优缺点

自建/托管服务器

曾经,我觉得:

在机房托管一台服务器,在上面运行各种各样的程序,是件很酷的事情。

虽然负担不起托管服务器的费用,但长年以来,我总有一两台机器扮演着服务器的角色。

TZ-3

这是我在大学宿舍里使用的一台机器,它是一台双 XEON 的工作站,运行着 Windows Server 2003,使用 IIS,后来换成 Serv-U 搭建 FTP 站点。

自建/托管服务器优点是自主性高:

  • 可以自由选配合适的硬件;
  • 可以自主安装需要的软件/模块。

缺点是:

  • 配置繁琐;
  • 托管成本高昂。

服务器放在公司或家里,它一般只作为局域网内的服务器。如果不托管到机房,但需要对外提供服务,在绝大多数情况下,我们需使用稳定性较差的动态域名。

虚拟主机

虚拟主机因其价格低廉,使用方便,一直是许多人的建站首选。

对于我们来说,虚拟主机一直令人又爱又恨。

爱它,是因为:

  • 相比托管服务器,虚拟主机相当于将服务器拆分出租,我们可以以很低的价格搭建一个网站,而不必支付高昂的价格自建并托管整台服务器;
  • 虚拟主机是已经配置好的环境,基本开通后进行简单的设置(例如绑定域名,设置数据库用户名及密码等,有的虚拟主机已经设定好了,有的则要自己设置)就可以直接使用。

缺点是几乎所有服务商都不会为某些客户提供个性定制服务。

如果我们要运行的程序需要某个模块

虚拟主机 - 可定制性差 - Zend

或是需要特定的版本

虚拟主机 - 可定制性差 - PHP

的支持,虚拟主机不能满足要求的话,多半最后是只能通过退款的方式“解决”的。

除可定制性差之外,虚拟主机的缺点主要还有:

  • 容易超卖。服务商在一台实体服务器上创建过多的虚拟主机用于出售,导致虚拟主机的性能和稳定性无法得到保障(也的确有部分良心服务商,坚持不超卖,但这也导致其虚拟主机价格昂贵);
  • 各虚拟主机之间不能实现有效隔离,其中一台主机被攻击(如 DDoS 攻击),很可能会影响到同一服务器的其他主机(服务商对此类情况的处理方法比较不人道且简单粗暴,即将被攻击的主机扫地出门,很冤吧?被攻击了,还要被服务商抛弃);
  • 共享 IP,许多廉价虚拟主机不提供独立 IP,其中某些主机被“认证”,容易导致其他主机在国内也无法正常访问;
  • 其他,例如许多虚拟主机的服务商/代理商实力不足,卷款跑路的事情也时有发生。

云服务器

云服务器综合了自建/托管服务器和虚拟主机各自的优点:

  • 云服务器相当于将托管的服务器分租,对于无需使用整台服务器的用户来说,可以大幅降低使用成本;
  • 每台云服务器都如同一台全新的服务器,可以自主安装系统及进行配置,保留了自建/托管服务器高度可定制性的优点。

云服务器是非常完美的建站解决方案。

另外,大部分云服务器厂商可以满足我们弹性部署的需求,以应对不可预知的业务爆发。

所谓弹性部署,是指我们可以根据业务的需要,自动或按计划实现机器的扩容和缩容。我们无需担心在业务量爆发性增长时,无法及时配置足够的服务器来满足业务的需求;而在业务开展不尽人意时或高峰期过后,可以及时关闭部分机器以节省开支,而无需因为装配过多的机器急于低价处理造成损失。同时大部分云服务器厂商支持使用 API 在很短的时间内大量配置/上、下线服务器。

这对初创公司来说,是非常实用的。

我在2010年试用了 Amazon EC2 之后,便基本不再考虑选用虚拟主机,更不会考虑自建/托管服务器。事实上,近年来,也很少再听到有托管服务器的业务了。

云服务器配置的确较为繁琐,但配置一般是一劳永逸的事情。配置完成后的云服务器,如果搭配控制面板,也就跟虚拟主机没有太大区别了,同样简便易用。但我个人是比较抗拒使用面板的,我认为,不安装、使用面板,可以节约宝贵的系统资源。

使用云服务器建站,如果我们需要添加额外的功能/模块,或者需要将其中某些软件/模块切换到指定版本,也无需服务商支持,自己动手解决即可。

在价格方面,目前有许多高性价比的云服务器,如本博客正在使用着的 Vultr,在价格上并不会比虚拟主机高多少,甚至比某些高端的虚拟主机还要低廉。

创建 Vultr 云服务器实例

目前各云服务器的优惠力度远不如以前,例如,Vultr 注册并充值即可获赠 20 或 50 美元的活动,目前已经停止,优惠码也好久没见公布了。但即便没有优惠活动,相比国内的云服务器,Vultr 的性价比优势依然十分明显。

总体上,Vultr 的访问速度及服务器稳定性都还不错。如果国内访客较多的话,东京、新加坡机房是比较好的选择。另外,国内部分线路并不直连日本,而是绕到美国,再到日本。确定机房之前,不妨先测试一下网速:

Vultr - 测速

我原先选择的是纽约机房,国内连接的速度可算是“惨不忍睹”,使用起来体验非常差,以致我几乎放弃了 Vultr,准备转投 Linode。进行测速后,才发现是机房选择不当造成的,转到东京机房感觉好多了。

Vultr 注册十分方便,点击下面图片的推广链接即可进行注册。

Vultr – 高性价比的云服务器

注册完成后,在控制面板中点击“Deploy New Server”按钮:

Vultr - Deploy New Server

即可按提示创建新的云服务器实例:

Vultr - Deploy New Instance

根据自己的需求和喜好,确定云服务器的配置,点击“Deploy Now”按钮,几分钟后,一台新的云服务器就创建好了。

路由器固件:Padavan 与 Tomato Phoenix (不死鸟)

今天介绍两款适合 SOHO 使用的路由器固件:PadavanTomato Phoenix (不死鸟)

路由器固件

这几年来经常折腾路由器固件,体验过的第三方固件主要有:

  • Tomato,内核版本虽比较老旧,但十分稳定,QoS 功能强大,效果也不错;
  • OpenWrt,自称是小型 Linux 发行版,初始版本仅提供最基本的功能,早期版本甚至连 WebUI 都要另行安装,可定制性强大,许多智能路由器(包括小米、极路由等)或智能家居产品固件便是由其修改、定制而来;
  • DD-WRT,功能齐全,WebUI 强大,设置简便。
  • RouterOS,与 OpenWrt 类似,也是初始状态下仅提供最基本的功能,可定制性非常强大,而且可以灵活地使用脚本进行设置,被许多公司、网吧采用,也是许多软路由的首选。

其他诸如:

  • 海蜘蛛,(其实我最早接触的软路由应该是它,其口号是:做最好的中文软路由);
  • WayOS,多拨和行为管理功能不错,在网吧、企业中广泛使用。

也是各有各精彩。

Padavan

这两年,最火爆的路由器固件,应该是 Padavan,它由华硕的开源固件 AsusWRT 修改而来,在广大爱好者的努力下,适配了大量的机型,不断丰富着它的功能。

p4davan - extensions
(图片来源:http://p4davan.80×86.io/img/carousel/extensions.png)

目前我的家庭主路由器便是一台刷了 Padavan 固件(荒野无灯修改版)的 PHICOMM PSG1218 K2,主要是看中了它功能齐全,运行稳定。

在此之前,家里的主路由器是一台刷了 Tomato 固件的磊科Q3,也是当年的刷机小王子,在它长时间工作导致运行不稳定之后,重刷固件后也未见改善,我们认为可能是硬件已经老化,便在京东上买了这台斐讯K2,刷上 Padavan 固件作为主路由使用。

p4davan - a3004ns-main
(图片来源:http://p4davan.80×86.io/img/carousel/a3004ns-main.png)

Tomato Phoenix (不死鸟)

公司与家庭相比,更看重网络连接的稳定性。我们认为:

公司的主路由,最好只根据需要启用基本的功能即可,这样有利于最大限度地保证其稳定运行。

我们注意到,许多企业级的路由器,提供的功能都称不上丰富。或许与功能相比,稳定性更为重要。

我们曾经很喜欢 RouterOS 的设计:

初始仅提供最基本的功能,其他的一切都需要手动配置。

只是对于非专业人员来说,RouterOS 设置太麻烦,且一旦网络出现软故障,调试起来也不方便。

我们也建议:

企业的网络使用有线路由器作为主路由,无线网络通过 AP 或二级路由扩展,因为无线传输的加密与解密会消耗大量的系统资源,不利于保证稳定性。

在众多的路由器固件中,我们发现佐须之男开发的不死鸟固件(Tomato Phoenix)最能满足作为小微企业主路由使用的需求。

不死鸟固件源自于 Tomato 固件,Padavan 基于 AsusWRT 的基础上开发,而 AsusWRT 也是源于 Tomato 固件,与 Tomato Dualwan、Tomato Shibby 之类的固件一样,它们都是 Tomato 的分支。

一般来说,Tomato 家族的固件,包括华硕的固件,最吸引人之处,在于强大而稳定的 QoS 功能,但目前部分 Padavan 固件的修改版可能去除了 QoS 功能,因为可能跟其他的功能冲突,如果需要这个功能,请在选择固件时注意阅读说明文件;而不死鸟固件则是近期才加入了 QoS 功能。

许多固件走的是“做加法”的发展路线,不断地引入更多的功能,虽然更讨用户喜欢,但也容易使系统变得臃肿;不死鸟固件和 OpenWrt、RouterOS 类似,走“做减法”的发展路线,默认情况下,只提供最基本、必不可少的功能。任何一项功能除非被证实必不可少,否则不轻易添加进来,或至少在需要时再添加进来。

Tomato-Phoenix - Basic

Tomato-Phoenix - Advanced

不死鸟固件目前仍为测试版,它加入的功能很少,界面也完全称得上“简陋”,但很符合我们的需求。

我们在一台极路由(极壹S ,HC5661)上刷了不死鸟固件,得益于不死鸟固件高度精简的功能设计,这台路由器运行非常稳定,带公司的百兆光纤,并没有太大的压力。

路由器设置的心得

路由器也是一种特定用途的服务器,它应该在配置完成之后,除了进行必要的维护时,它们就安静地呆在某个角落,默默地运行着支撑业务的服务。

路由器的固件,是最好折腾的系统,我们需要进行定制,来满足我们各种各样的需求;同时,也是最不适合折腾的系统,因为随时可能由于设置不当,导致网络连接中断,甚至有时不得不恢复默认设置,一切推倒重来。

所以,许多尝试我们都是先在二级路由上进行,经反复测试之后,再添加或替换到主路由上。

我们认为,这是一个很好的解决方案,也是一个良好的工作习惯。除了配置路由器,我们在配置服务器时,通常也采取这样的工作方式。

世界,您好!

博客现状

本博客目前架设在 Vultr 东京机房。

本博客所使用/推荐的产品/服务

Vultr 及其东京机房

Vultr 的云主机基于 KVM 方案,且全部使用 SSD,相对国内的云主机厂商,性价比相当突出。

东京机房在国内访问的速度还算不错,我们通过它在 YouTube 上观看 1080P 的视频也没有太大压力(当然,到了夜晚,其速度会有较大幅度的下降)。
AbcLite - YouTube

AbcLite

如果对网络加速有更高的要求,我们也强烈推荐 AbcLite

AbcLite 的性价比虽不高,且有流量限制,但我们认为:

这样的政策会导致某些潜在的用户(如有长时间高速下载之类需求的)不会考虑使用 AbcLite 的产品,从而使用户的使用体验得到更好的保证。

而事实上,我们使用了将近一个星期,感觉它各方面的表现相当不错。

另外,使用 AbcLite 的产品与我们自行搭建的相比,在某条线路出问题时,还可以切换到其他线路。它目前在全球 7 个国家和地区共计有数十个节点(全 CN2 线路),可以有效保证服务的质量。