第 6 章 网络应用

目录

6.1. 网页浏览器
6.1.1. 浏览器配置
6.2. 邮件系统
6.2.1. 电子邮件基础
6.2.2. 现代邮件服务基础
6.2.3. 工作站的邮件配置策略
6.3. 邮件传输代理 (MTA)
6.3.1. exim4 的配置
6.3.2. 带有 SASL 的 postfix 配置
6.3.3. 邮件地址配置
6.3.4. 基础 MTA 操作
6.4. 邮件用户代理 (MUA)
6.4.1. 基础 MUA — Mutt
6.5. 远程邮件检索和转发实用工具
6.5.1. getmail 配置
6.5.2. fetchmail 配置
6.6. 带有过滤器的邮件投递代理 (MDA)
6.6.1. maildrop 配置
6.6.2. procmail 配置
6.6.3. 重新投递 mbox 内容
6.7. POP3/IMAP4 服务器
6.8. 打印服务和工具
6.9. 服务器远程访问和工具 (SSH)
6.9.1. SSH 基础
6.9.2. SMTP/POP3 隧道的端口转发
6.9.3. 免密码远程连接
6.9.4. 处理其它 SSH 客户端
6.9.5. 建立 ssh 代理
6.9.6. 怎样通过 SSH 关闭远程系统
6.9.7. SSH 故障排查
6.10. 其它网络应用服务
6.11. 其它网络应用客户端
6.12. 系统后台守护进程(daemon)诊断

建立网络连接后(参加 第 5 章 网络设置),你可以运行各种网络应用。

[提示] 提示

对于现代的 Debian 网络基础设施的具体说明,阅读 Debian 管理员手册 —— 网络基础设施

[警告] 警告

本章是基于 2013 年发布的 Debian 7.0 (Wheezy) 编写的,所以其内容正在变得过时。

有许多网页浏览器软件包,使用超文本传输协议(HTTP)访问远程内容。


在某些浏览器中,你可以使用下列特殊的 URL 来确认它们的设置。

  • "about:"

  • "about:config"

  • "about:plugins"

Debian 提供了在 main 档案库中提供了许多自由的浏览器插件软件包,不仅可以处理 Java(软件平台)Flash,也可以处理 MPEGMPEG2MPEG4DivXWindows Media Video (.wmv)QuickTime (.mov)MP3 (.mp3)Ogg/Vorbis 文件、DVD、VCD 等等。Debian 也提供相关辅助程序,可以用来安装来自 contrib 或 non-free 的 non-free 浏览器插件软件包。


[提示] 提示

尽管使用上述的 Debian 软件包会更容易,但你依旧可以手动启用插件,你需要将 “*.so” 文件安装到插件目录中(例如 “/usr/lib/iceweasel/plugins/”)并重启浏览器。

有些网站拒绝基于你所使用浏览器的用户代理字符串的连接。你可以通过 伪装用户代理字符串 来解决这个问题。例如,你可以添加下面这行到用户配置文件中(例如 “~/.gnome2/epiphany/mozilla/epiphany/user.js” 或 “~/.mozilla/firefox/*.default/user.js”)。

user_pref{"general.useragent.override","Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)"};

或者,你也可以通过输入 “about:config” 到 URL,并右击它所显示的内容,来添加并重置这个变量。

[小心] 小心

伪装的用户代理字符串可以会导致 来自 Java 的不良副作用

[小心] 小心

如果你想设置邮件服务器来直接通过互联网交换邮件,你应该最好阅读一下这个基本文档。

邮件系统涉及到运行在多个主机上的许多服务器程序和客户端程序。从功能来说,有3种类型的邮件代理程序:

[注意] 注意

对于那些消费者级网络连接的典型移动工作站,以下的配置例子是有效的。

电子邮件 由三个部分组成,消息的信封,邮件标头及邮件正文。

SMTP 用电子邮件信封上的 "To" 和 "From" 信息来投递邮件。(信封上的 "From" 信息也被叫做退回地址, 例如 From_ 等等)。

电子邮件头的"To" 和 "From" 信息,显示在 电子邮件客户端上. (在大部分情况下,这些信息是跟电子邮件信封一致,但并不全是这样。)

为了处理正文数据类型及其编码,电子邮件客户端 (MUA) 需要用多用途互联网邮件扩展 (MIME)来解释邮件标头和邮件正文。

为了尽可能减少垃圾邮件 (不想要的和未经请求的电子邮件) 的问题,许多提供消费者级互联网连接的 ISP 服务商正在采取应对措施。

当配置电子邮件系统或解决邮递问题时,你必须考虑这些新的限制。

鉴于这些不利的互联网情况和限制,像 Yahoo.com 和 Gmail.com 这样的独立互联网邮件 ISP 提供了安全的邮件服务,使用传输层安全协议 (TLS) 和它的前身,安全套接层协议 (SSL) 就可以在任何地方通过网络连接到这些邮件服务。

  • 智能主机上的 465 端口服务,是过时的在 SSL 上的 SMTP (SMTPS 协议).

  • 智能主机上的 587 端口服务使用 STARTTLS 协议。

  • TLS/POP3 端口 (995) 是用 POP3 协议来接受邮件的。

[小心] 小心

在消费者级的网络上运行 SMTP 服务器来直接发送邮件到远端可信赖主机是不现实的,它们很有可能被拒绝。你必须使用连入 ISP 或者独立邮件 ISP 提供的 smarthost 服务。

为了简便起见,在接下来的文本中,我假定 smarthost 是 "smtp.hostname.dom", 需要 SMTP 认证并且使用带有STARTTLS 协议的信息发送端口 (587) 。

最简单的电子邮件配置是使用 MUA 发送邮件到 ISP 的 smarthost,然后从 ISP 的 POP3 服务器接收邮件 (参见第 6.4 节 “邮件用户代理 (MUA)”)。这种类型的配置流行使用全功能的基于 GUI 的 MUA,例如icedove(1)evolution(1) 等等。如果需要通过邮件的类型来过滤它们,你应该使用 MUA 的过滤功能。对于这种情况,本地 MTA (参见第 6.3 节 “邮件传输代理 (MTA)”) 只需在本地投递 (当发送者和接收者在同一主机上)。

请注意 Debian 是多用户系统。即使你是唯一的用户,这里仍然有许多以 root 用户运行的程序并且它们会给你发送电子邮件。

另外可选的邮件配置是通过本地 MTA 发送邮件到 ISP 的 smarthost,通过邮件检索 (参见第 6.5 节 “远程邮件检索和转发实用工具”) 从 ISP 的 POP3 服务器接受邮件,并把邮件保存到本地邮箱。如果需要通过邮件的类型来过滤它们,你应该使用 MDA 的过滤功能 (参见第 6.6 节 “带有过滤器的邮件投递代理 (MDA)”) 来过滤邮件到单独的邮箱。这种类型的配置流行使用基于终端的简单 MUA,例如 mutt(1)mew(1)等等,尽管使用任何 MUA 都是可以的 (参见第 6.4 节 “邮件用户代理 (MUA)”)。对于这种情况,本地 MTA (参见第 6.3 节 “邮件传输代理 (MTA)”) 需要做 smarthost 投递和本地投递。因为移动工作站没有有效的 FQDN,你必须配置本地 MTA 来隐藏和伪装外发邮件中的真实本地邮件名称,来避免邮件投递错误 (参见第 6.3.3 节 “邮件地址配置”)。

[提示] 提示

你可能想要配置 MUA/MDA 来使用 Maildir,以便存储邮件到你用户目录的某个位置。

对于一般的工作站而言,邮件传输代理 (MTA) 的主流选择是 exim4-* 或者 postfix 软件包,这由你决定。


尽管在流行度投票数上,exim4-* 某些时候看起来要比 postfix 流行,但这并不意味着 postfix 在 Debian 开发者中不流行。Debian 服务器系统使用 exim4postfix。著名的 Debian 开发者发到邮件列表的帖子的邮件标头分析的结果也表明这两种 MTA 一样受欢迎。

exim4-* 软件包最为人所知的是,有着非常小的内存消耗和非常灵活的配置。postfix 软件包最为人所知的是,它的简洁、快速、简单和安全的特性。这两种工具都带有充足的文档,在质量和许可证上都同样是不错的。

在 Debian 档案库里,有许多不同性能和不同关注点的邮件传输代理 (MTA) 软件包可供选择。


对于那些通过 smarthost 的网络邮件,你应该按如下所示的 (重新) 配置 exim4-* 软件包。

$ sudo /etc/init.d/exim4 stop
$ 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.3.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

$ sudo /etc/init.d/exim4 start

"/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" 子目录中创建新文件或编辑已存在的文件。(分割的配置)

  • 运行 "invoke-rc.d exim4 reload" 命令。

请阅读 "/usr/share/doc/exim4-base/README.Debian.gz" 官方指导和 update-exim4.conf(8)

[小心] 小心

如果 debconf 询问 "Keep number of DNS-queries minimal (Dial-on-Demand)?" 这个问题时,选择 了 "No" (默认值),那么启动 exim4 会花很长时间并且系统在启动的时候不会连接到互联网。

[警告] 警告

虽然你的 ISP 允许,但是使用没有加密的明文密码是不安全的。

[提示] 提示

尽管推荐在 587 端口上使用 STARTTLSSMTP 协议,但是有些 ISP 仍然使用废弃的 SMTPS 协议 (在 465 端口上的 SSL)。4.77 版本以后的 Exim4 支持在客户端和服务器上的废弃 SMTPS 协议。

[提示] 提示

如果你正在为笔记本电脑寻找一个遵守 "/etc/aliases" 规则的轻量 MTA,你应该考虑配置 exim4(8),在 "/etc/default/exim4" 文件中写入 "QUEUERUNNER='queueonly'","QUEUERUNNER='nodaemon'" 等等。

这里有一些用于邮件传输、投递和用户代理的邮件地址配置文件


"/etc/mailname" 文件中的 mailname 通常是全称域名 (FQDN),这个全程域名将会被解析成主机的 IP 地址。对于没有可解析成 IP 地址的主机名的移动工作站,设置 mailname 为 "hostname -f" 的值。(这对于 exim4-*postfix 都是安全有效的选择。)

[提示] 提示

"/etc/mailname" 中的内容被许多非 MTA 程序用作它们的默认行为。对于 mutt, 在~/muttrc 文件中设置 "hostname" 和 "from" 变量来覆盖 mailname 值。对于 devscripts 软件包的程序,例如 bts(1)dch(1),导出环境变量 "$DEBFULLNAME" 和 "$DEBEMAIL" 的值来覆盖它。

[提示] 提示

popularity-contest 软件包一般以 FQDN 形式的 root 账户发送邮件。你需要像 /usr/share/popularity-contest/default.conf 文件中描述的那样去设置 /etc/popularity-contest.conf 文件中的 MAILFROM 值。否则,你的邮件会被 smarthost SMTP 服务器拒绝。尽管这些过程很乏味,这种方法比为所有通过 MTA 并且是以 root 用户发送的邮件重写源地址更安全。这也可以被其他守护进程或者是 cron 脚本使用。

当设置 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 选项。

[提示] 提示

Exim 带有一些有用的程序,例如 exiqgrep(8)exipick(8)。参见 "dpkg -L exim4-base|grep man8/" 来获得可用的命令。

如果你订阅了 Debian 相关的邮件列表,使用像 muttmew 这样的 MUA 会是个不错主意,同时对用户来说,它们也是事实上的标准并且可以像预期的那样工作良好。


按如下所示的自定义 "~/.muttrc" ,与 vim 结合使用邮件用户代理 (MUA) 软件 mutt

#
# User configuration file to override /etc/Muttrc
#
# spoof source mail address
set use_from
set hostname=example.dom
set from="Name Surname <username@example.dom>"
set signature="~/.signature"

# vim: "gq" to reformat quotes
set editor="vim -c 'set tw=72 et ft=mail'"

# "mutt" goes to Inbox, while "mutt -y" lists mailboxes
set mbox_type=Maildir           # use qmail Maildir format for creating mbox
set mbox=~/Mail                 # keep all mail boxes in $HOME/Mail/
set spoolfile=+Inbox            # mail delivered to $HOME/Mail/Inbox
set record=+Outbox              # save fcc mail to $HOME/Mail/Outbox
set postponed=+Postponed        # keep postponed in $HOME/Mail/postponed
set move=no                     # do not move Inbox items to mbox
set quit=ask-yes                # do not quit by "q" only
set delete=yes                  # always delete w/o asking while exiting
set fcc_clear                   # store fcc as non encrypted

# Mailboxes in Maildir (automatic update)
mailboxes `cd ~/Mail; /bin/ls -1|sed -e 's/^/+/' | tr "\n" " "`
unmailboxes Maillog *.ev-summary

## Default
#set index_format="%4C %Z %{%b %d} %-15.15L (%4l) %s"
## Thread index with senders (collapse)
set index_format="%4C %Z %{%b %d} %-15.15n %?M?(#%03M)&(%4l)? %s"

## Default
#set folder_format="%2C %t %N %F %2l %-8.8u %-8.8g %8s %d %f"
## just folder names
set folder_format="%2C %t %N %f"

增加下面的内容到"/etc/mailcap" 或 "~/.mailcap" 来内镶显示 HTML 邮件和微软 Word 附件.

text/html; lynx -force_html %s; needsterminal;
application/msword; /usr/bin/antiword '%s'; copiousoutput; description="Microsoft Word Text"; nametemplate=%s.doc
[提示] 提示

Mutt 能够作为 IMAP 客户端和 mailbox 格式转换器.你可以使用"t", "T"等标识邮件.这些标识的邮件能够使用";C"在不同的邮箱之间拷贝,并可以使用";d" 来一次性删除.

而不是手动运行 MUA 去访问远程邮件并去处理它们,你可能希望自动化这些过程,然后把所有邮件都投递到本地。远程邮件检索和转发实用工具很适合你使用。

尽管 fetchmail(1) 已经成为 GNU/Linux 用于远程邮件检索的事实上的标准,作者现在还是喜欢 getmail(1)。如果你想要在下载邮件之前拒绝邮件来达到节省带宽的目的,mailfiltermpop 工具可能是很有用的。不管使用哪种邮件检索实用程序,配置系统使之能够投递已检索的邮件到 MDA 会是个不错的主意,例如通过管道的 maildrop


getmail(1) 的配置在getmail documentation里描述.这里是我作为用户搭建访问多个 POP3帐号.

按如下所示的创建 "/usr/local/bin/getmails"。

#!/bin/sh
set -e
if [ -f $HOME/.getmail/running ]; then
  echo "getmail is already running ... (if not, remove $HOME/.getmail/running)" >&2
  pgrep -l "getmai[l]"
  exit 1
else
  echo "getmail has not been running ... " >&2
fi
if [ -f $HOME/.getmail/stop ]; then
  echo "do not run getmail ... (if not, remove $HOME/.getmail/stop)" >&2
  exit
fi
if [ "x$1" = "x-l" ]; then
  exit
fi
rcfiles="/usr/bin/getmail"
for file in $HOME/.getmail/config/* ; do
  rcfiles="$rcfiles --rcfile $file"
done
date -u > $HOME/.getmail/running
eval "$rcfiles $@"
rm $HOME/.getmail/running

按如下所示的配置它。

$ sudo chmod 755 /usr/local/bin/getmails
$ mkdir -m 0700 $HOME/.getmail
$ mkdir -m 0700 $HOME/.getmail/config
$ mkdir -m 0700 $HOME/.getmail/log

按如下所示的为每个 POP3 账户创建 "$HOME/.getmail/config/pop3_name" 配置文件。

[retriever]
type = SimplePOP3SSLRetriever
server = pop.example.com
username =  pop3_name@example.com
password = <your-password>

[destination]
type = MDA_external
path = /usr/bin/maildrop
unixfrom = True

[options]
verbose = 0
delete = True
delivered_to = False
message_log = ~/.getmail/log/pop3_name.log

按如下所示的配置它。

$ chmod 0600 $HOME/.getmail/config/*

计划使用 cron(8) 每 15 分钟运行一次 "/usr/local/bin/getmails",通过执行 "sudo crontab -e -u <user_name>" 并把如下所示的命令添加到用户的 cron 条目中。

5,20,35,50 * * * * /usr/local/bin/getmails --quiet
[提示] 提示

POP3 访问的问题可能并不来自于 getmail。一些主流的免费 POP3 服务可能违反了 POP3 协议并且它们的垃圾邮件过滤机制可能不是非常完美。例如,它们可能在刚刚接收到 RETR 命令并且没有接收到 DELE 命令就可能删除了邮件并且可能隔离邮件到垃圾邮件信箱。你应该尽可能的减少损害,通过配置它们使之成为可访问的归档文件并且不要删除它们。参见 "Some mail was not downloaded"

大多数 MTA 程序,例如 postfixexim4,兼任 MDA (邮件投递代理)。这里有专门的带有过滤功能的 MDA。

尽管 procmail(1) 已经成为 GUN/Linux 上关于带有过滤器的 MDA 的事实标准,作者现在还是喜欢 maildrop(1)。不管使用哪种过滤程序,配置系统使之能投递已过滤的邮件到 qmail 风格的 Maildir 都是一个好主意。


maildrop(1) 配置在 maildropfilter documentation 中有说明。这里有一个关于 "$HOME/.mailfilter 文件的配置例子。

# Local configuration
MAILROOT="$HOME/Mail"
# set this to /etc/mailname contents
MAILHOST="example.dom"
logfile $HOME/.maildroplog

# rules are made to override the earlier value by the later one.

# mailing list mails ?
if (     /^Precedence:.*list/:h || /^Precedence:.*bulk/:h )
{
    # rules for mailing list mails
    # default mailbox for mails from mailing list
    MAILBOX="Inbox-list"
    # default mailbox for mails from debian.org
    if ( /^(Sender|Resent-From|Resent-Sender): .*debian.org/:h )
    {
        MAILBOX="service.debian.org"
    }
    # default mailbox for mails from bugs.debian.org (BTS)
    if ( /^(Sender|Resent-From|Resent-sender): .*@bugs.debian.org/:h )
    {
        MAILBOX="bugs.debian.org"
    }
    # mailbox for each properly maintained mailing list with "List-Id: foo" or "List-Id: ...<foo.bar>"
    if ( /^List-Id: ([^<]*<)?([^<>]*)>?/:h )
    {
        MAILBOX="$MATCH2"
    }
}
else
{
    # rules for non-mailing list mails
    # default incoming box
    MAILBOX="Inbox-unusual"
    # local mails
    if ( /Envelope-to: .*@$MAILHOST/:h )
    {
        MAILBOX="Inbox-local"
    }
    # html mails (99% spams)
    if ( /DOCTYPE html/:b ||\
         /^Content-Type: text\/html/ )
    {
        MAILBOX="Inbox-html"
    }
    # blacklist rule for spams
    if ( /^X-Advertisement/:h ||\
         /^Subject:.*BUSINESS PROPOSAL/:h ||\
         /^Subject:.*URGENT.*ASISSTANCE/:h ||\
         /^Subject: *I NEED YOUR ASSISTANCE/:h )
    {
        MAILBOX="Inbox-trash"
    }
    # whitelist rule for normal mails
    if ( /^From: .*@debian.org/:h ||\
         /^(Sender|Resent-From|Resent-Sender): .*debian.org/:h ||\
         /^Subject: .*(debian|bug|PATCH)/:h )
    {
        MAILBOX="Inbox"
    }
    # whiltelist rule for BTS related mails
    if ( /^Subject: .*Bug#.*/:h ||\
         /^(To|Cc): .*@bugs.debian.org/:h )
    {
        MAILBOX="bugs.debian.org"
    }
    # whitelist rule for getmails cron mails
    if ( /^Subject: Cron .*getmails/:h )
    {
        MAILBOX="Inbox-getmails"
    }
}

# check existance of $MAILBOX
`test -d $MAILROOT/$MAILBOX`
if ( $RETURNCODE == 1 )
{
    # create maildir mailbox for $MAILBOX
    `maildirmake $MAILROOT/$MAILBOX`
}
# deliver to maildir $MAILBOX
to "$MAILROOT/$MAILBOX/"
exit
[警告] 警告

不像 procmailmaildrop 不会自动创建不存在的 maildir 目录。你必须提前使用 maildirmake(1) 手动创建它们,正如 "$HOME/.mailfilter" 例子里的那样。

如果将要在局域网上运行一个私有服务器,你应该考虑运行 POP3 / IMAP4 服务器,用来投递邮件到局域网客户端。


在老的类 Unix 系统,BSD Line printer daemon 行打印机后台守护 是标准。因此,在类 Unix 系统中,自由软件的标准打印输出格式是 PostScript,为了能够打印到非 PostScript 打印机,需要将一些过滤器系统和 Ghostscript 一道使用。

近来, Common UNIX Printing System 通用 UNIX 打印系统 (CUPS) 是新的事实标准。CUPS 使用 Internet Printing Protocol 互联网打印协议 (IPP). IPP 现在已经被其它操作系统,如 Windows XP 和 Mac OS X,支持。它已经变成新的具备双向通信能力的跨平台远程打印的事实标准。

Debian 系统上的应用程序的标准打印数据格式是 PostScript (PS) ,它是一个页描述语言。PS 格式的数据被送到 Ghostscript PostScript 解释器来生成特定的打印机可打印的数据。参见 第 11.4.1 节 “Ghostscript”.

幸亏有 CUPS 系统的文件格式依赖自动转化特征,简单的发送任何数据到 lpr 命令,都将产生期望的打印输出。(在 CUPS 里, lpr 能够通过安装 cups-bsd 软件包来获取.)

Debian 系统有一些不错的软件包用于打印服务和作为打印工具。


[提示] 提示

你可以让你的 web 浏览器访问 "http://localhost:631/" 来配置 CUPS 系统。

Secure SHell (SSH) 是因特网上的 安全 连接方式。在 Debian 里面,有一个叫 OpenSSH 的免费 SSH 版本,在 openssh-clientopenssh-server 包里。


[小心] 小心

如果你的 SSH 是从因特网来访问,参见 第 4.7.3 节 “互联网额外的安全方式”

[提示] 提示

请使用 screen(1) 程序来让远程 shell 在中断的连接上存活(参见 第 9.1 节 “screen 程序”).

[警告] 警告

如果想要运行 OpenSSH 服务,"/etc/ssh/sshd_not_to_be_run"必须不存在。

SSH 有两个认证协议。


[小心] 小心

如果你使用一个非 Debian 的系统,请小心注意这些不同。

细节参见 "/usr/share/doc/ssh/README.Debian.gz", ssh(1), sshd(8), ssh-agent(1), and ssh-keygen(1).

下面是秘钥配置文件。


[提示] 提示

参见 ssh-keygen(1), ssh-add(1)ssh-agent(1) 来了解怎样使用 SSH 公钥和私钥。

[提示] 提示

一定要通过连接测试来确认设置。有任何问题的连接,使用 "ssh -v".

[提示] 提示

稍后可以使用 "ssh-keygen -p" 改变密码来加密本地 SSH 私钥.

[提示] 提示

你可以在 "~/.ssh/authorized_keys" 里给条目增加选项来限制主机和运行特定的命令。细节请参见 sshd(8).

从客户端启动一个 ssh(1) 连接.


如果本地和远程主机,使用同样的用户名,你可以省略输入 "username@". 即使在本地和远程主机使用不同的用户名,你可以使用 "~/.ssh/config" 来省略输入用户名.对于 Debian Alioth 服务器,使用账户名 "foo-guest",你可以设置 "~/.ssh/config" 包含下面的内容。

Host alioth.debian.org svn.debian.org git.debian.org
    User foo-guest

对于用户来讲, ssh(1) 功能比telnet(1) 更加智能和安全. 不像 telnet命令, ssh 命令不会在遇到 telnet 的退出字符(初始默认是 CTRL-])时停止.

你可以使用 at(1) 命令 (参见 第 9.3.13 节 “单次任务时间安排”)来从 SSH 终端里保护"shutdown -h now" (参见 第 1.1.8 节 “怎样关闭系统”)操作过程。

# echo "shutdown -h now" | at now

screen(1) (参见 第 9.1 节 “screen 程序”) 会话里运行 "shutdown -h now",是另外一个方法来做这同样的事情。

这里是其它网络应用服务。


通用互联网文件系统协议(CIFS) 和服务消息块(SMB) 协议一样,被微软 Windows 广泛应用。

[提示] 提示

参见 第 4.5.2 节 “现代的集中式系统管理” 服务系统集成。

[提示] 提示

主机名解析通常由 DNS 服务提供. 对于由 DHCP 动态分配的主机 IP 地址, 动态 DNS 能够使用 bind9isc-dhcp-server 建立主机名解析,Debian wiki 的 DDNS 页 有说明.

[提示] 提示

使用 squid 之类的代理服务器,和使用 Debian 文档库的完全本地镜像服务器相比,能够大量节省带宽。

这里是其它网络应用客户端。


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)所需要的知识。


在 "/etc/services" 里,描述了端口用途.