【Debian参考手册】第 6 章 网络应用

目录

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:主机域名雅安服务器托管、营销软件、网站建设、弋阳网站维护、网站推广。

6.1. 网页浏览器
6.1.1. 伪装用户代理字符串
6.1.2. 浏览器扩展
6.2. 邮件系统
6.2.1. 电子邮件基础
6.2.2. 现代邮件服务限制
6.2.3. 历史邮件服务端期望
6.2.4. 邮件传输代理 (MTA)
6.2.4.1. exim4 的配置
6.2.4.2. 带有 SASL 的 postfix 配置
6.2.4.3. 邮件地址配置
6.2.4.4. 基础 MTA 操作
6.3. 服务器远程访问和工具 (SSH)
6.3.1. SSH 基础
6.3.2. 远程主机上的用户名
6.3.3. 免密码远程连接
6.3.4. 处理其它 SSH 客户端
6.3.5. 建立 ssh 代理
6.3.6. 从远程主机发送邮件
6.3.7. SMTP/POP3 隧道的端口转发
6.3.8. 怎样通过 SSH 关闭远程系统
6.3.9. SSH 故障排查
6.4. 打印服务和工具
6.5. 其它网络应用服务
6.6. 其它网络应用客户端
6.7. 系统后台守护进程(daemon)诊断

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

提示

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

提示

在某些 ISP 下,如果你启用“两步验证”,你可能需要获取一个应用密码以从你的程序访问 POP 和 SMTP 服务。你也可能需要事先允许你的主机 IP 进行访问。

6.1. 网页浏览器

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

表 6.1. 网页浏览器列表

软件包 流行度 大小 类型 网络浏览器说明
chromium V:44, I:126 190445 X Chromium,(来自 Google 的开源浏览器)
firefox V:12, I:18 213304 同上 Firefox,(来自 Mozilla 的开源浏览器,仅在 Debian Unstable 中可用)
firefox-esr V:213, I:434 209831 同上 Firefox ESR(Firefox 延长支持版本)
epiphany-browser V:4, I:21 5571 同上 GNOME,兼容 HIG,Epiphany
konqueror V:20, I:95 21465 同上 KDE,Konqueror
dillo V:1, I:6 1536 同上 Dillo,(基于 FLTK 的轻量级浏览器)
w3m V:25, I:221 2367 文本 w3m
lynx V:16, I:113 1949 同上 Lynx
elinks V:5, I:25 1763 同上 ELinks
links V:5, I:35 2286 同上 Links(纯文本)
links2 V:1, I:13 5459 图像 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)
小心

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

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:31, I:236 493 X GUI 程序 (GNOME3, groupware 套件)
thunderbird V:50, I:130 202238 X GUI 程序 (GTK, Mozilla Thunderbird)
kmail V:33, I:86 21237 X GUI 程序 (KDE)
mutt V:34, I:239 7022 很有可能与 vim 一起使用的字符终端程序
mew V:0, I:0 2334 (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)

在理论上,在没有 mail transfer agent (MTA) 程序提供 /usr/sbin/sendmail 命令的情况下,移动工作站可以正常工作。

Debian 系统通常安装 MTA 来和 第 6.2.2 节 “现代邮件服务限制” 与 第 6.2.3 节 “历史邮件服务端期望” 协作,即使移动工作站已经安装了基于 电子邮件客户端 的功能全面的 GUI 程序。

对于移动工作站,典型的 MTA 选择是 exim4-daemon-lightpostfix,并选择类似这样的安装选项:“Mail sent by smarthost; received via SMTP or fetchmail”。这些是轻量 MTA 和 "/etc/aliases" 匹配。

提示

配置 exim4 来发送互联网邮件,多个源电子邮件地址使用多个相应的智能主机,这是不寻常的。如果一些程序需要这样的能力,使用 msmtp 来设置他们,它比较容易来设置多个源电子邮件地址。然后给主 MTA 仅仅保留单个电子邮件地址。

表 6.3. 基础的邮件传输代理相关的软件包列表

软件包 流行度 大小 说明
exim4-daemon-light V:291, I:310 1563 Exim4 邮件传输代理 (MTA : Debian 默认的)
exim4-daemon-heavy V:7, I:8 1722 Exim4 邮件传输代理 (MTA : 灵活的替代品)
exim4-base V:299, I:318 1738 Exim4 文档 (文本) 和通用文件
exim4-doc-html I:1 3667 Exim4 文档 (html)
exim4-doc-info I:1 625 Exim4 文档 (info)
postfix V:141, I:153 4010 Postfix 邮件传输代理 (MTA : 安全的替代品)
postfix-doc I:8 4580 Postfix 文档 (html+text)
sasl2-bin V:5, I:17 457 Cyrus SASL API 实现 (实现 postfix SMTP 认证)
cyrus-sasl2-doc I:1 2216 Cyrus SASL - 文档
msmtp V:6, I:12 586 轻量 MTA
msmtp-mta V:4, I:6 92 轻量 MTA (sendmail 兼容扩展到msmtp)
esmtp V:0, I:0 128 轻量 MTA
esmtp-run V:0, I:0 32 轻量 MTA(sendmail 兼容扩展到esmtp)
nullmailer V:8, I:10 479 部分功能 MTA,没有本地邮件
ssmtp V:6, I:9 2 部分功能 MTA,没有本地邮件
sendmail-bin V:14, I:15 1878 全功能 MTA(如果你已经对它熟悉)
courier-mta V:0, I:0 2513 全功能 MTA(web 接口等.)

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" (默认值),那么启动 exim4 会花很长时间并且系统在启动的时候不会连接到互联网。

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

警告

从所有的实践考虑,使用带 STARTTLS 的 SMTP 端口 587,或者 SMTPS SSL (SMTPS) 端口 465, 代替纯 SMTP 端口 25。

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 别名数据库维护

你应该按如下所示的 (重新) 配置 postfixsasl2-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 都是安全有效的选择。)

提示

"/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/" 来获得可用的命令。

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 移除所有邮件

提示

往 "/etc/ppp/ip-up.d/*" 里写一个刷新所有邮件的脚本会是个不错的主意。

6.3. 服务器远程访问和工具 (SSH)

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

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

表 6.7. 服务器远程访问和工具列表

软件包 流行度 大小 工具 说明
openssh-client V:828, I:997 5650 ssh(1) SSH 客户端
openssh-server V:709, I:832 1806 sshd(8) SSH 服务端
ssh-askpass V:2, I:31 107 ssh-askpass(1) 请求用户输入 ssh-add 密码 (简单的 X)
ssh-askpass-gnome V:0, I:5 301 ssh-askpass-gnome(1) 请求用户输入 ssh-add 密码 (GNOME)
ssh-askpass-fullscreen V:0, I:0 50 ssh-askpass-fullscreen(1) 请求用户输入 ssh-add 密码 (GNOME),有更好看的界面
shellinabox V:0, I:1 507 shellinaboxd(1) 浏览器访问 VT100 终端模拟器 网页服务器

虽然 shellinabox 不是一个 SSH 程序,它列在这里作为远程终端访问的一个有趣的替代。

连接到远程 X 客户端程序,参见:第 7.8 节 “X 服务端连接”。

小心

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

提示

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

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 服务,"/etc/ssh/sshd_not_to_be_run"必须不存在。

不要打开基于 rhost 的认证( /etc/ssh/sshd_config 中的 HostbasedAuthentication )。

表 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-nameecdsaed25519

从客户端启动一个 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 (http://www.chiark.greenend.org.uk/~sgtatham/putty/) (GPL)
Windows (cygwin) cygwin 里的 SSH (http://www.cygwin.com/) (GPL)
Macintosh 类 macSSH (http://www.macssh.com/) (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:3, I:4 367 printer (515) BSD lpr/lpd (线性打印机后台守护进程 daemon)
lprng V:0, I:1 3064 同上 , , (增强)
cups V:123, I:331 1133 IPP (631) 互联网打印 CUPS 服务器
cups-client V:138, I:397 485 同上 用于 CUPS 的 System V 打印机命令: lp(1), lpstat(1), lpoptions(1), cancel(1), lpmove(8), lpinfo(8), lpadmin(8), …
cups-bsd V:34, I:296 126 同上 用于 CUPS 的 BSD 打印机命令: lpr(1), lpq(1), lprm(1), lpc(8)
printer-driver-gutenprint V:47, I:241 941 没有使用 CUPS 打印机驱动

提示

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

6.5. 其它网络应用服务

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

表 6.12. 其它网络应用服务列表

软件包 流行度 大小 协议 说明
telnetd V:0, I:2 114 TELNET TELNET 服务
telnetd-ssl V:0, I:0 169 同上 TELNET 服务( 支持SSL)
nfs-kernel-server V:46, I:74 635 NFS Unix 文件共享
samba V:101, I:148 16643 SMB Windows 文件和打印共享
netatalk V:1, I:3 2082 ATP Apple/Mac 文件和打印共享(AppleTalk)
proftpd-basic V:18, I:27 488 FTP 通用文件下载
apache2 V:236, I:298 620 HTTP 通用 web 服务器
squid V:12, I:13 9085 同上 通用 web 代理服务器
squid3 V:3, I:7 240 同上 同上
bind9 V:49, I:58 1170 DNS 其它主机的 IP 地址
isc-dhcp-server V:19, I:48 1467 DHCP 客户端自身的 IP 地址

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

提示

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

提示

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

提示

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

6.6. 其它网络应用客户端

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

表 6.13. 网络应用客户端列表

软件包 流行度 大小 协议 说明
netcat I:40 16 TCP/IP TCP/IP 瑞士军刀
openssl V:810, I:994 1465 SSL 安全套接字层 (SSL)二进制和相关的加密工具
stunnel4 V:6, I:15 539 同上 通用 SSL 封装
telnet V:62, I:901 166 TELNET TELNET 客户端
telnet-ssl V:0, I:3 209 同上 TELNET 服务( 支持SSL)
nfs-common V:168, I:295 1098 NFS Unix 文件共享
smbclient V:18, I:192 2018 SMB 微软 Windows 文件和打印共享客户端
cifs-utils V:32, I:121 317 同上 远程微软 Windows 文件系统挂载和卸载命令
ftp V:13, I:210 55 FTP FTP 客户端
lftp V:6, I:37 2377 同上 同上
ncftp V:2, I:19 1339 同上 全屏 FTP 客户端
wget V:243, I:984 3581 HTTP 和 FTP web 下载工具
curl V:171, I:576 449 同上 同上
axel V:0, I:4 210 同上 下载加速器
aria2 V:2, I:19 1857 同上 BitTorrent 和 Metalink 支持的下载加速器
bind9-host V:156, I:946 384 DNS 来自 bind9 的 host(1), "Priority: standard"
dnsutils V:39, I:423 275 同上 来自 bind 的 dig(1), "Priority: standard"
isc-dhcp-client V:219, I:982 689 DHCP 获得 IP 地址
ldap-utils V:13, I:73 757 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" 里,描述了端口用途.

文章题目:【Debian参考手册】第 6 章 网络应用
分享地址:http://www.csdahua.cn/qtweb/news48/484698.html

网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网