第 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" 裡,描述了埠用途.