Debian 网络应用教程详解
建立网络连接后(参加 第 5 章 网络设置),你可以运行各种网络应用。
6.1. 网页浏览器
有许多网页浏览器软件包,使用超文本传输协议(HTTP)访问远程内容。
表 6.1. 网页浏览器列表
软件包 | 流行度 | 大小 | 类型 | 网络浏览器说明 |
---|---|---|---|---|
chromium | V:35, I:108 | 234084 | X | Chromium,(来自 Google 的开源浏览器) |
firefox | V:10, I:15 | 239492 | 同上 | Firefox,(来自 Mozilla 的开源浏览器,仅在 Debian Unstable 中可用) |
firefox-esr | V:198, I:435 | 228981 | 同上 | Firefox ESR(Firefox 延长支持版本) |
epiphany-browser | V:3, I:15 | 2154 | 同上 | GNOME,兼容 HIG,Epiphany |
konqueror | V:24, I:106 | 25905 | 同上 | KDE,Konqueror |
dillo | V:0, I:5 | 1565 | 同上 | Dillo,(基于 FLTK 的轻量级浏览器) |
w3m | V:15, I:187 | 2837 | 文本 | w3m |
lynx | V:25, I:344 | 1948 | 同上 | Lynx |
elinks | V:3, I:20 | 1654 | 同上 | ELinks |
links | V:3, I:28 | 2314 | 同上 | Links(纯文本) |
links2 | V:1, I:12 | 5492 | 图像 | Links(没有 X 的控制台图像) |
6.1.1. 伪装用户代理字符串
为了访问一些过度限制的网站,你可能需要伪装网页浏览器程序返回的 User-Agent 字符串。参见:
MDN Web Docs: userAgent
Chrome Developers: Override the user agent string
How to change your user agent
How to Change User-Agent in Chrome, Firefox, Safari, and more
How to Change Your Browser’s User Agent Without Installing Any Extensions
How to change the User Agent in Gnome Web (epiphany)
6.1.2. 浏览器扩展
所有现代的 GUI(图形用户界面)浏览器支持基于 browser extension 的源代码,它在按 web extensions 变成标准化。
6.2. 邮件系统
本章节关注于消费者级互联网连接的典型的移动工作站。
6.2.1. 电子邮件基础
电子邮件 由三个部分组成,消息的信封,邮件头及邮件正文。
SMTP 用电子邮件信封上的 "To" 和 "From" 信息来投递邮件。(信封上的 "From" 信息也被叫做退回地址, 例如 From_ 等等)。
电子邮件头的"To" 和 "From" 信息,显示在 电子邮件客户端上. (在大部分情况下,这些信息是跟电子邮件信封一致,但并不全是这样。)
覆盖邮件头和正文数据的电子邮件消息格式被 多用途互联网邮件扩展 (MIME) 扩展,从纯文本的 ASCII 到其它字符编码,包括作为附件的音频、视频、图像和应用程序。
功能全面的基于 电子邮件客户端的 GUI 程序使用基于 GUI 的直观的配置,提供下列所有功能。
为了处理正文数据类型及其编码,它创建和使用多用途互联网邮件扩展 (MIME)来解释邮件标头和邮件正文。
它使用旧的 基础访问认证 或现代的 OAuth 2.0向 ISP(互联网服务提供商)的 SMTP 和 IMAP 服务器认证它自己。 (对于 OAuth 2.0,通过桌面环境设置来设置它,例如,"Settings" -> "Online Accounts".)
它发送消息到 ISP 的智能主机的 SMTP 服务监听的消息递交端口(587)。
从 TLS/IMAP4 端口(993)接收存储在 ISP 的服务器上的消息。
它能够通过他们的属性过滤邮件。
它能够提供额外的功能:联系人、日历、任务、备忘录。
表 6.2. 邮件用户代理列表 (MUA)
软件包 | 流行度 | 大小 | 类型 |
---|---|---|---|
evolution | V:30, I:239 | 486 | X GUI 程序 (GNOME3, groupware 套件) |
thunderbird | V:48, I:119 | 224760 | X GUI 程序 (GTK, Mozilla Thunderbird) |
kmail | V:38, I:97 | 23871 | X GUI 程序 (KDE) |
mutt | V:16, I:149 | 7104 | 很有可能与 vim 一起使用的字符终端程序 |
mew | V:0, I:0 | 2319 | (x)emacs 下的字符终端程序 |
6.2.2. 现代邮件服务限制
现代邮件服务器有一些限制来最小化暴露滥用(不希望和未被要求的电子邮件)问题。
在消费者级的网络上运行 SMTP 服务器来直接可靠的发送邮件到远端主机是不现实的。
一个邮件能够被任何主机静悄悄的拒绝,即使路由到了目的地,除非它尽可能看起来是经过认证的。
期望单个智能主机可靠的发送不相关的源邮件地址到远程主机,这是不现实的。
这是因为:
从消费者级网络提供的主机连接到互联网的 SMTP 端口(25)已经被封锁了。
从互联网的 SMTP 端口(25)连接到消费者级网络提供的主机已经被封锁了。
从消费者级网络提供的主机发出到互联网的消息,只能够通过消息递交端口(587)发送。
像域名密钥识别邮件 (DKIM)、发信者策略框架 (SPF) 和 基于域名的消息认证、报告和反应(DMARC) 这样的反垃圾邮件技术广泛用于电子邮件过滤。
域名密钥识别邮件服务可能会用于你的通过 smarthost 的电子邮件发送。
智能主机可以在邮件头重写源电子邮件地址为你的邮件账户,来阻止电子邮件欺诈。
6.2.3. 历史邮件服务端期望
一些在 Debian 上的程序,它们默认期望访问 /usr/sbin/sendmail
命令来发送邮件,或者从一个个性化设置的 UNIX 系统邮件服务器来发送邮件,实现历史的功能:
邮件是由纯文本文件创建。
邮件是由
/usr/sbin/sendmail
命令处理。对于目的地址为同一主机,
/usr/sbin/sendmail
命令进行邮件的本地分发,将邮件附在/var/mail/$username
文件后。期望这个特征的命令:
apt-listchanges
,cron
,at
, ...对于目的地址在远程主机,
/usr/sbin/sendmail
命令远程传输邮件到目的主机,使用 SMTP 发现 DNS MX 记录。期望这个特征的命令:
popcon
,reportbug
,bts
, ...
6.2.4. 邮件传输代理 (MTA)
在 Debian 12 Bookworm 后,在没有 mail transfer agent (MTA) 程序的情况下,Debian 移动工作站可以基于 电子邮件客户端,配置为全功能的 GUI (图像用户界面)。
以往的 Debian 会安装某个 MTA 程序来支持期望 /usr/sbin/sendmail
命令的程序。移动工作站上这样的 MTA 必须和 第 6.2.2 节 “现代邮件服务限制” 第 6.2.3 节 “历史邮件服务端期望” 协同工作。
对于移动工作站,典型的 MTA 选择是 exim4-daemon-light
或 postfix
,并选择类似这样的安装选项:“Mail sent by smarthost; received via SMTP or fetchmail”。这些是轻量 MTA 和 "/etc/aliases
" 匹配。
![]() | 提示 |
---|---|
配置 |
表 6.3. 基础的邮件传输代理相关的软件包列表
软件包 | 流行度 | 大小 | 说明 |
---|---|---|---|
exim4-daemon-light | V:217, I:227 | 1575 | Exim4 邮件传输代理 (MTA : Debian 默认的) |
exim4-daemon-heavy | V:6, I:6 | 1743 | Exim4 邮件传输代理 (MTA : 灵活的替代品) |
exim4-base | V:224, I:234 | 1699 | Exim4 文档 (文本) 和通用文件 |
exim4-doc-html | I:1 | 3746 | Exim4 文档 (html) |
exim4-doc-info | I:0 | 637 | Exim4 文档 (info) |
postfix | V:124, I:133 | 4039 | Postfix 邮件传输代理 (MTA : 安全的替代品) |
postfix-doc | I:6 | 4646 | Postfix 文档 (html+text) |
sasl2-bin | V:5, I:13 | 371 | Cyrus SASL API 实现 (实现 postfix SMTP 认证) |
cyrus-sasl2-doc | I:0 | 2154 | Cyrus SASL - 文档 |
msmtp | V:6, I:11 | 667 | 轻量 MTA |
msmtp-mta | V:4, I:6 | 124 | 轻量 MTA (sendmail 兼容扩展到msmtp ) |
esmtp | V:0, I:0 | 129 | 轻量 MTA |
esmtp-run | V:0, I:0 | 32 | 轻量 MTA(sendmail 兼容扩展到esmtp ) |
nullmailer | V:8, I:9 | 474 | 部分功能 MTA,没有本地邮件 |
ssmtp | V:5, I:8 | 2 | 部分功能 MTA,没有本地邮件 |
sendmail-bin | V:13, I:13 | 1901 | 全功能 MTA(如果你已经对它熟悉) |
courier-mta | V:0, I:0 | 2407 | 全功能 MTA(web 接口等.) |
git-email | V:0, I:10 | 1087 | git-send-email (1) 发送系列补丁邮件程序 |
6.2.4.1. exim4 的配置
对于那些通过 smarthost 的网络邮件,你应该按如下所示的 (重新) 配置 exim4-*
软件包。
$ sudo systemctl stop exim4 $ sudo dpkg-reconfigure exim4-config
配置 "General type of mail configuration" 时,选择 "mail sent by smarthost; received via SMTP or fetchmail"。
设置 "System mail name:" 为默认的 FQDN (参见第 5.1.1 节 “主机名解析”)。
设置 "IP-addresses to listen on for incoming SMTP connections:" 为默认的 "127.0.0.1; ::1"。
"Other destinations for which mail is accepted:" 选项留空。
"Machines to relay mail for:" 选项留空。
设置 "IP address or host name of the outgoing smarthost:" 为 "smtp.hostname.dom:587"。
设置 "Hide local mail name in outgoing mail?" 选项为 "NO"。(或者像第 6.2.4.3 节 “邮件地址配置”描述的那样使用 /etc/email-addresses
" 代替)
选择如下所示的其中一个来回答 "Keep number of DNS-queries minimal (Dial-on-Demand)?"。
"No" 如果启动的时候,系统就连上了互联网。
"Yes" 如果启动的时候,系统没有连上互联网。
设置 "Delivery method for local mail:" 选项为 "mbox format in /var/mail/"。
"Split configuration into small files?:" 选项设为 "Yes"。
通过修改 "/etc/exim4/passwd.client
" 文件,来创建用于 smarthost 的密码条目。
$ sudo vim /etc/exim4/passwd.client ... $ cat /etc/exim4/passwd.client ^smtp.*\.hostname\.dom:username@hostname.dom:password
配置 exim4
(8),在 "/etc/default/exim4
" 文件中写入 "QUEUERUNNER='queueonly'
","QUEUERUNNER='nodaemon'
" 等等,来最小化系统资源使用。(可选的)
通过如下所示的启动 exim4
。
$ sudo systemctl start exim4
"/etc/exim4/passwd.client
" 文件中的主机名不应该是别名,你应该按如下所示的检查真正的主机名。
$ host smtp.hostname.dom smtp.hostname.dom is an alias for smtp99.hostname.dom. smtp99.hostname.dom has address 123.234.123.89
我在 "/etc/exim4/passwd.client
" 文件中使用正则表达式来绕过别名问题。即使 ISP 更改了别名所指向的主机名,SMTP AUTH 还是可能工作的。
你能够通过如下所示的手动更新 exim4
配置:
更新 "
/etc/exim4/
" 目录下的exim4
配置文件。创建 "
/etc/exim4/exim4.conf.localmacros
" 来设置宏命令和修改 "/etc/exim4/exim4.conf.template
" 文件。(没有分割的配置)在 ”
/etc/exim4/exim4.conf.d
" 子目录中创建新文件或编辑已存在的文件。(分割的配置)运行 "
systemctl reload exim4
".
![]() | 小心 |
---|---|
如果 debconf 询问 "Keep number of DNS-queries minimal (Dial-on-Demand)?" 这个问题时,选择 了 "No" (默认值),那么启动 |
请阅读 "/usr/share/doc/exim4-base/README.Debian.gz
" 官方指导和 update-exim4.conf
(8)。
6.2.4.2. 带有 SASL 的 postfix 配置
对于通过 smarthost 的网络邮件,你应该首先阅读 postfix 文档和关键的手册页。
表 6.4. 重要的 postfix 手册页列表
命令 | 功能 |
---|---|
postfix (1) | Postfix 控制程序 |
postconf (1) | Postfix 配置工具 |
postconf (5) | Postfix 配置参数 |
postmap (1) | Postfix 查找表维护 |
postalias (1) | Postfix 别名数据库维护 |
你应该按如下所示的 (重新) 配置 postfix
和 sasl2-bin
软件包。
$ sudo systemctl stop postfix $ sudo dpkg-reconfigure postfix
选择 "Internet with smarthost"。
设置 "SMTP relay host (blank for none):" 为 "[smtp.hostname.dom]:587
" 并按如下所示配置。
$ sudo postconf -e 'smtp_sender_dependent_authentication = yes' $ sudo postconf -e 'smtp_sasl_auth_enable = yes' $ sudo postconf -e 'smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd' $ sudo postconf -e 'smtp_sasl_type = cyrus' $ sudo vim /etc/postfix/sasl_passwd
为 smarthost 创建密码条目。
$ cat /etc/postfix/sasl_passwd [smtp.hostname.dom]:587 username:password $ sudo postmap hush:/etc/postfix/sasl_passwd
通过如下所示的启动 postfix
。
$ sudo systemctl start postfix
dpkg-reconfigure
会话中使用的 "[
" 和 "]
" 和 "/etc/postfix/sasl_passwd
" 确保不去检查 MX 记录而是直接使用指定的明确主机名。参见 "/usr/share/doc/postfix/html/SASL_README.html
" 里面的 "Enabling SASL authentication in the Postfix SMTP client" 条目。
6.2.4.3. 邮件地址配置
这里有一些用于邮件传输、投递和用户代理的邮件地址配置文件。
表 6.5. 与邮件地址相关的配置文件列表
文件 | 功能 | 应用 |
---|---|---|
/etc/mailname | 用于 (外发) 邮件的默认主机名 | Debian 专用的,mailname (5) |
/etc/email-addresses | 用于外发邮件的主机名伪装 | exim (8) 专用的,exim4-config_files (5) |
/etc/postfix/generic | 用于外发邮件的主机名伪装 | postfix (1) 专用的,postmap (1) 命令执行后激活。 |
/etc/aliases | 用于接收邮件的账户别名 | 通用的,newaliases (1) 命令执行后激活。 |
"/etc/mailname
" 文件中的 mailname 通常是全称域名 (FQDN),这个全程域名将会被解析成主机的 IP 地址。对于没有可解析成 IP 地址的主机名的移动工作站,设置 mailname 为 "hostname -f
" 的值。(这对于 exim4-*
和 postfix
都是安全有效的选择。)
![]() | 提示 |
---|---|
" |
当设置 mailname 为 "hostname -f
" 的值时,通过 MTA 的源邮件地址的伪装可以通过如下所示的来实现。
用于
exim4
(8) 的 "/etc/email-addresses
" 文件,exim4-config_files
(5) 手册页中有关于它的解释用于
postfix
(1) 的 "/etc/postfix/generic
" 文件,generic
(5) 手册页中有关于它的解释
对于 postfix
,接下来的额外步骤需要执行。
# postmap hash:/etc/postfix/generic # postconf -e 'smtp_generic_maps = hash:/etc/postfix/generic' # postfix reload
你能够通过如下所示的来测试邮件地址配置。
exim
(8) 用-brw, -bf, -bF, -bV, ...
选项postmap
(1) 用-q
选项。
6.2.4.4. 基础 MTA 操作
这里有一些基础的 MTA 操作。有一些可能会通过 sendmail
(1) 的兼容性接口来实现。
表 6.6. 基础 MTA 操作列表
exim 命令 | postfix 命令 | 说明 |
---|---|---|
sendmail | sendmail | 从标准输入读取邮件并且安排投递 (-bm ) |
mailq | mailq | 列出带有状态和队列 ID 的邮件队列 (-bq ) |
newaliases | newaliases | 初始化别名数据库 (-I ) |
exim4 -q | postqueue -f | 刷新等待邮件 (-q ) |
exim4 -qf | postsuper -r ALL deferred; postqueue -f | 刷新所有邮件 |
exim4 -qff | postsuper -r ALL; postqueue -f | 刷新甚至已经冻结的邮件 |
exim4 -Mg queue_id | postsuper -h queue_id | 通过邮件的队列 ID 来冻结它 |
exim4 -Mrm queue_id | postsuper -d queue_id | 通过邮件的队列 ID 来移除它 |
N/A | postsuper -d ALL | 移除所有邮件 |
6.3. 服务器远程访问和工具 (SSH)
Secure SHell (SSH) 是因特网上的 安全 连接方式。在 Debian 里面,有一个叫 OpenSSH 的免费 SSH 版本,在 openssh-client
和 openssh-server
包里。
对于用户来讲, ssh
(1) 功能比telnet
(1) 更加智能和安全. 不像 telnet
命令, ssh
命令不会在遇到 telnet
的退出字符(初始默认是 CTRL-])时停止.
表 6.7. 服务器远程访问和工具列表
软件包 | 流行度 | 大小 | 工具 | 说明 |
---|---|---|---|---|
openssh-client | V:866, I:996 | 4959 | ssh (1) | SSH 客户端 |
openssh-server | V:730, I:814 | 1804 | sshd (8) | SSH 服务端 |
ssh-askpass | I:23 | 102 | ssh-askpass (1) | 请求用户输入 ssh-add 密码 (简单的 X) |
ssh-askpass-gnome | V:0, I:3 | 200 | ssh-askpass-gnome (1) | 请求用户输入 ssh-add 密码 (GNOME) |
ssh-askpass-fullscreen | V:0, I:0 | 48 | ssh-askpass-fullscreen (1) | 请求用户输入 ssh-add 密码 (GNOME),有更好看的界面 |
shellinabox | V:0, I:1 | 507 | shellinaboxd (1) | 浏览器访问 VT100 终端模拟器 网页服务器 |
虽然 shellinabox
不是一个 SSH 程序,它列在这里作为远程终端访问的一个有趣的替代。
连接到远程 X 客户端程序,参见:第 7.9 节 “X 服务端连接”。
6.3.1. SSH 基础
OpenSSH SSH 后台守护进程(daemon)只支持 SSH 2协议。
请阅读 "/usr/share/doc/openssh-client/README.Debian.gz
"、 ssh
(1)、 sshd
(8)、 ssh-agent
(1)、 ssh-keygen
(1)、 ssh-add
(1) 和 ssh-agent
(1).
![]() | 警告 |
---|---|
如果想要运行 OpenSSH 服务," 不要打开基于 rhost 的认证( |
表 6.8. SSH 配置文件列表
配置文件 | 配置文件描述 |
---|---|
/etc/ssh/ssh_config | SSH 客户端默认, 参见 ssh_config (5) |
/etc/ssh/sshd_config | SSH 服务端默认, 参见 sshd_config (5) |
~/.ssh/authorized_keys | 该账户连接到这个服务器上的客户端使用的默认 SSH 公钥 |
~/.ssh/id_rsa | 用户的 SSH-2 RSA 私钥 |
~/.ssh/id_key-type-name | 用户的 SSH-2 密钥, key-type-name 为 ecdsa 、 ed25519 等 |
从客户端启动一个 ssh
(1) 连接.
表 6.9. SSH 客户端启动例子列表
命令 | 说明 |
---|---|
ssh username@hostname.domain.ext | 使用默认模式连接 |
ssh -v username@hostname.domain.ext | 有详细信息的默认连接模式 |
ssh -o PreferredAuthentications=password username@hostname.domain.ext | SSH 2 版本,强制使用密码 |
ssh -t username@hostname.domain.ext passwd | 在远程主机上运行 passwd 命令来更新密码 |
6.3.2. 远程主机上的用户名
如果你在本地和远程主机上使用相同的用户名,你能够省略输入"username@
"。
即使在本地和远程主机使用不同的用户名,你可以使用 "~/.ssh/config
" 来省略输入用户名.对于 Debian Salsa 服务器,使用账户名 "foo-guest
",你可以设置 "~/.ssh/config
" 包含下面的内容。
Host salsa.debian.org people.debian.org User foo-guest
6.3.3. 免密码远程连接
使用"PubkeyAuthentication
" (SSH-2 协议),人们可以避免记住远程系统的密码.
在远程系统的"/etc/ssh/sshd_config
"里,设置相应的条目, "PubkeyAuthentication yes
"。
在本地生成授权秘钥对,并安装公钥到远程系统。
$ ssh-keygen -t rsa $ cat .ssh/id_rsa.pub | ssh user1@remote "cat - >>.ssh/authorized_keys"
你可以在 "~/.ssh/authorized_keys
" 里给条目增加选项来限制主机和运行特定的命令。参见 sshd
(8)"AUTHORIZED_KEYS FILE FORMAT" 。
6.3.4. 处理其它 SSH 客户端
其它平台上有一些免费的 SSH 客户端。
表 6.10. 其它平台上免费 SSH 客户端列表
环境 | 免费 SSH 程序 |
---|---|
Windows | puTTY (PuTTY:一个自由的 SSH 、Telnet 客户端) (GPL) |
Windows (cygwin) | cygwin 里的 SSH(Cygwin: Get that Linux feeling - on Windows) (GPL) |
Mac OS X | OpenSSH;在终端应用中使用 ssh (GPL) |
6.3.5. 建立 ssh 代理
用密码来保护你的 SSH 认证私钥是安全的。如果密码没有设置,使用 "ssh-keygen -p
" 来设置。
把你的公钥 (比如:"~/.ssh/id_rsa.pub
") 放到远程主机的"~/.ssh/authorized_keys
",这个远程主机使用上面描述的基于密码的连接方式。
$ ssh-agent bash $ ssh-add ~/.ssh/id_rsa Enter passphrase for /home/username/.ssh/id_rsa: Identity added: /home/username/.ssh/id_rsa (/home/username/.ssh/id_rsa)
从这里执行接下来的命令,就不再需要密码。
$ scp foo username@remote.host:foo
按 ^D 来终结 ssh 代理会话。
对于 X 服务端,通常的 Debian 启动脚本会作为父进程执行 ssh-agent
。所以你只需要执行一次 ssh-add
。进一步的信息,请阅读 ssh-agent
(1) 和 ssh-add
(1).
6.3.6. 从远程主机发送邮件
如果你在一个正确设置 了DNS 的服务器上有一个 SSH shell 账号,你能够将在你本地工作站上生成的邮件,作为远程服务器上的邮件,真正的从远程服务器上发送。
$ ssh username@example.org /usr/sbin/sendmail -bm -ti -f "username@example.org" < mail_data.txt
6.3.7. SMTP/POP3 隧道的端口转发
通过 ssh
建立一个这样的管道连接,从 localhost
的 4025 端口到 remote-server
的 25 端口,并从 localhost
的 4110 端口到 remote-server
的 110 端口,请在本机执行如下命令.
# ssh -q -L 4025:remote-server:25 4110:remote-server:110 username@remote-server
这是跨越因特网建立 SMTP/POP3 服务连接的安全方法。在远程主机"/etc/ssh/sshd_config
"里设置"AllowTcpForwarding
"条目为 "yes
".
6.3.8. 怎样通过 SSH 关闭远程系统
你可以使用 at
(1) 命令 (参见 第 9.4.13 节 “单次任务时间安排”)来从 SSH 终端里保护"shutdown -h now
" (参见 第 1.1.8 节 “怎样关闭系统”)操作过程。
# echo "shutdown -h now" | at now
在 screen
(1) (参见 第 9.1.2 节 “screen 程序”) 会话里运行 "shutdown -h now
",是另外一个方法来做这同样的事情。
6.3.9. SSH 故障排查
如果你遇到问题,检查配置文件的权限并用 "-v
" 选项运行 ssh
。
如果你是 root 账户,并有使用防火墙,使用 "-p
" 选项; 这可以避免使用1 — 1023 之间的服务端口.
如果 ssh
连接到远程站点突然停止工作,这也许是系统管理员胡乱操作的结果,可能是在系统维护时改变了 "host_key
". 在确认这个情况后,并且没有人试图用聪明的黑客技术来篡改远程主机,你可以在本机 "~/.ssh/known_hosts
" 里删除 "host_key
" 条目来重新获得连接。
6.4. 打印服务和工具
在老的类 Unix 系统中,BSD Line printer daemon(lpd) 行打印机后台守护 曾经是标准。传统的自由软件的标准打印输出格式是 PostScript (PS)。为了能够打印到非 PostScript 打印机,需要将一些过滤器系统和 Ghostscript 一道使用。参见 第 11.4.1 节 “Ghostscript”。
在现代的 Debian 系统中,Common UNIX Printing System 通用 UNIX 打印系统是事实上的标准。现代自由软件的标准打印输出格式是 Portable Document Format (PDF)可移植文件格式。
CUPS 使用 Internet Printing Protocol 互联网打印协议 (IPP). IPP 现在已经被其它操作系统,如 Windows XP 和 Mac OS X 支持。它已经变成新的具备双向通信能力的跨平台远程打印的事实标准。
幸亏有 CUPS 系统的文件格式依赖自动转化特征,简单的发送任何数据到 lpr
命令,都将产生期望的打印输出。(在 CUPS 里, lpr
能够通过安装 cups-bsd
软件包来获取.)
Debian 系统有一些不错的软件包用于打印服务和作为打印工具。
表 6.11. 打印服务和工具列表
软件包 | 流行度 | 大小 | 端口 | 说明 |
---|---|---|---|---|
lpr | V:2, I:3 | 367 | printer (515) | BSD lpr/lpd (线性打印机后台守护进程 daemon) |
lprng | V:0, I:0 | 3051 | 同上 | , , (增强) |
cups | V:97, I:441 | 1061 | IPP (631) | 互联网打印 CUPS 服务器 |
cups-client | V:119, I:461 | 426 | 同上 | 用于 CUPS 的 System V 打印机命令: lp (1), lpstat (1), lpoptions (1), cancel (1), lpmove (8), lpinfo (8), lpadmin (8), … |
cups-bsd | V:32, I:219 | 131 | 同上 | 用于 CUPS 的 BSD 打印机命令: lpr (1), lpq (1), lprm (1), lpc (8) |
printer-driver-gutenprint | V:20, I:114 | 1219 | 没有使用 | CUPS 打印机驱动 |
6.5. 其它网络应用服务
这里是其它网络应用服务。
表 6.12. 其它网络应用服务列表
软件包 | 流行度 | 大小 | 协议 | 说明 |
---|---|---|---|---|
telnetd | V:0, I:2 | 54 | TELNET | TELNET 服务 |
telnetd-ssl | V:0, I:0 | 159 | 同上 | TELNET 服务( 支持SSL) |
nfs-kernel-server | V:49, I:63 | 769 | NFS | Unix 文件共享 |
samba | V:108, I:131 | 3995 | SMB | Windows 文件和打印共享 |
netatalk | V:1, I:1 | 2003 | ATP | Apple/Mac 文件和打印共享(AppleTalk) |
proftpd-basic | V:8, I:16 | 452 | FTP | 通用文件下载 |
apache2 | V:214, I:263 | 561 | HTTP | 通用 web 服务器 |
squid | V:11, I:12 | 9265 | 同上 | 通用 web 代理服务器 |
bind9 | V:43, I:49 | 1124 | DNS | 其它主机的 IP 地址 |
isc-dhcp-server | V:18, I:36 | 6082 | DHCP | 客户端自身的 IP 地址 |
通用互联网文件系统协议(CIFS) 和服务消息块(SMB) 协议一样,被微软 Windows 广泛应用。
6.6. 其它网络应用客户端
这里是其它网络应用客户端。
表 6.13. 网络应用客户端列表
软件包 | 流行度 | 大小 | 协议 | 说明 |
---|---|---|---|---|
netcat | I:27 | 16 | TCP/IP | TCP/IP 瑞士军刀 |
openssl | V:841, I:995 | 2111 | SSL | 安全套接字层 (SSL)二进制和相关的加密工具 |
stunnel4 | V:7, I:12 | 548 | 同上 | 通用 SSL 封装 |
telnet | V:29, I:511 | 54 | TELNET | TELNET 客户端 |
telnet-ssl | V:0, I:2 | 196 | 同上 | TELNET 服务( 支持SSL) |
nfs-common | V:152, I:234 | 1124 | NFS | Unix 文件共享 |
smbclient | V:24, I:204 | 2071 | SMB | 微软 Windows 文件和打印共享客户端 |
cifs-utils | V:29, I:121 | 317 | 同上 | 远程微软 Windows 文件系统挂载和卸载命令 |
ftp | V:7, I:114 | 53 | FTP | FTP 客户端 |
lftp | V:4, I:30 | 2361 | 同上 | 同上 |
ncftp | V:1, I:14 | 1389 | 同上 | 全屏 FTP 客户端 |
wget | V:208, I:981 | 3681 | HTTP 和 FTP | web 下载工具 |
curl | V:185, I:620 | 517 | 同上 | 同上 |
axel | V:0, I:3 | 224 | 同上 | 下载加速器 |
aria2 | V:3, I:20 | 1981 | 同上 | BitTorrent 和 Metalink 支持的下载加速器 |
bind9-host | V:115, I:939 | 393 | DNS | 来自 bind9 的 host (1), "Priority: standard " |
dnsutils | V:16, I:280 | 276 | 同上 | 来自 bind 的 dig (1), "Priority: standard " |
isc-dhcp-client | V:217, I:981 | 2875 | DHCP | 获得 IP 地址 |
ldap-utils | V:12, I:63 | 767 | LDAP | 从 LDAP 服务获取数据 |
6.7. 系统后台守护进程(daemon)诊断
telnet
程序能够手工连接到系统后台守护进程(daemon),并进行诊断。
测试纯 POP3 服务,尝试用下面的操作
$ telnet mail.ispname.net pop3
部分 ISP 提供 TLS/SSL 加密的POP3 服务,为了测试它,你需要用到 telnet-ssl
包里支持 TLS/SSL 的 telnet
客户端,或 openssl
软件包。
$ telnet -z ssl pop.gmail.com 995
$ openssl s_client -connect pop.gmail.com:995
下面的 RFCs 提供每一个系统后台守护进程(daemon)所需要的知识。
表 6.14. 常用 RFC 列表
RFC | 说明 |
---|---|
rfc1939 和 rfc2449 | POP3 服务 |
rfc3501 | IMAP4 服务 |
rfc2821 (rfc821) | SMTP 服务 |
rfc2822 (rfc822) | 邮件文件格式 |
rfc2045 | 多用途互联网邮件扩展 (MIME) |
rfc819 | DNS 服务 |
rfc2616 | HTTP 服务 |
rfc2396 | URI 定义 |
在 "/etc/services
" 里,描述了端口用途.