58、UNIX网络支持常见应用详解

UNIX网络支持常见应用详解

1. 常见UNIX网络应用概述

在UNIX系统中,多数网络应用虽并非网络运行的严格必需,但它们为用户提供了核心服务,是网络实现的关键。许多这类应用无需特殊配置,只要UNIX系统和网络正确设置(包括互联网超级守护进程 inetd 的设置),一些网络应用即可立即使用,不过部分应用仍需一定的管理操作。

常见的网络应用有以下三种:
- telnet :网络终端协议,用于通过网络进行远程登录。
- ftp :文件传输协议,用于在网络上进行文件传输。
- finger :提供远程用户的信息。

这些应用在日常UNIX管理中十分重要。由于它们具有交互性,通常从命令行使用,但也可作为shell脚本和其他程序的一部分。

这三种应用均基于客户端/服务器模型。客户端根据需要启动相应的应用程序(可从命令行、脚本或其他程序启动),服务器端则由对应的守护进程( telnetd ftpd fingerd )处理,当客户端请求到达相应端口时,互联网超级服务器( inetd 守护进程)会调用这些守护进程。

要正确设置这三种应用并不复杂,只需在服务器端启用或禁用它们,这些操作可通过 inetd 配置文件 /etc/inetd.conf 完成。以下是相关配置示例:

$ cat /etc/inetd.conf
            .....
            .....
#  ARPA/Berkeley services
ftp       stream   tcp   nowait   root   /etc/ftpd      ftpd −l
telnet    stream   tcp   nowait   root   /etc/telnetd   telnetd
# finger  stream   tcp   nowait   bin    /etc/fingerd   fingerd
              .....

在这个例子中, ftp telnet 已启用,而 finger 被禁用(该条目被注释掉)。

2. Telnet应用详解
2.1 Telnet基本功能

Telnet使用TELNET协议为远程系统提供用户界面。若不带参数调用 telnet ,它将进入命令模式,提示符为 telnet ,在此模式下可接受并执行“telnet命令”;若带参数调用,它将使用这些参数执行 open 命令,命令格式如下:

telnet [hostname [ port ]]

其中:
- hostname :远程主机的名称。
- port :网络服务(应用)的端口号, telnet 的默认端口是23。

建立连接后, telnet 进入输入模式,此时输入的文本将发送到远程主机。输入模式分为“逐字符”或“逐行”,具体取决于远程系统的支持情况。在“逐字符”模式下,输入的大部分文本会立即发送到远程主机处理;在“逐行”模式下,所有文本会在本地回显,通常只有完整的行才会发送到远程主机。“本地回显字符”(初始为 ^E )可用于开启或关闭本地回显,常用于输入密码时避免密码显示。

连接到远程主机时,输入 telnet 的“转义字符”(默认是 ^] ,即 Ctrl - 右括号 )可进入命令模式,在命令模式下可使用常规的终端编辑约定。

2.2 Telnet常用命令

以下是一些常用的 telnet 命令:
| Telnet命令 | 含义 |
| — | — |
| open host [ port ] | 打开与指定主机的连接。若未指定端口号, telnet 将尝试连接默认端口的TELNET服务器。主机可以是主机名或点分十进制表示的IP地址。 |
| close | 关闭TELNET会话并返回命令模式。 |
| quit | 关闭所有打开的TELNET会话并退出 telnet 。在命令模式下输入EOF也会关闭会话并退出。 |
| mode type | type 可以是 line (逐行模式)或 character (逐字符模式)。请求远程主机进入指定模式,若远程主机支持则会进入该模式。 |
| status | 显示 telnet 的当前状态,包括连接的对等方和当前模式。 |
| display [argument … ] | 显示所有或部分设置的值。 |
| ? [command] | 获取帮助。无参数时, telnet 打印帮助摘要;指定命令时,仅打印该命令的帮助信息。 |
| send arguments | 向远程主机发送一个或多个特殊字符序列(可一次指定多个参数)。 |
| set argument value | 将 telnet 的某个变量设置为特定值。特殊值 off 可关闭与该变量关联的功能,变量的值可通过 display 命令查询。 |

telnet 常用于远程登录主机进行UNIX管理,但需注意它在通信中使用明文,包括密码传输,在不安全环境中存在较大风险。不过,它允许指定非默认端口,可用于检查端口是否活跃,即守护进程是否在该端口监听。由于其严格的交互性,包括交互式登录过程, telnet 不适合用于shell脚本编程。

3. FTP应用详解
3.1 FTP基本功能

ftp 是标准文件传输协议(FTP)的用户界面,用于在远程主机(网络站点)之间传输文件。在客户端,可在命令行指定要通信的远程主机,若指定, ftp 会立即尝试与该主机的FTP守护进程建立连接;否则, ftp 进入命令解释器,等待用户输入 ftp 命令,并显示提示符 ftp>

ftp 命令的格式如下:

ftp [−options] [ hostname ]

其中选项可在命令行或命令解释器中指定:
- -d :启用调试模式。
- -g :禁用文件名通配。
- -i :在多文件传输时关闭交互式提示。
- -n :初始连接时不尝试“自动登录”。若启用自动登录, ftp 会检查用户主目录下的 .netrc 文件,查找远程机器的账户信息;若没有相应条目,会提示输入远程机器的登录名(默认是本地机器的登录名),必要时还会提示输入密码和账户信息。
- -v :显示远程服务器的所有响应,并报告数据传输统计信息。若 ftp 以交互方式运行且输入来自用户终端,此选项默认开启。
- hostname :远程主机的名称。

3.2 FTP常用命令

以下是一些常用的 ftp 命令:
| FTP命令 | 含义 |
| — | — |
| ! [command] | 在本地机器上以shell命令运行指定命令。若未指定命令,则启动交互式shell。 |
| ascii | 将“表示类型”设置为“网络ASCII”,这是默认类型。 |
| bell | 每个文件传输命令完成后响铃。 |
| binary | 将“表示类型”设置为“图像”。 |
| bye | 终止与远程服务器的FTP会话并退出 ftp 。输入EOF也会终止会话并退出。 |
| case | 在 mget 命令期间切换远程计算机文件名的大小写映射。开启时(默认关闭),全大写的远程文件名会以小写形式写入本地目录。 |
| cd remote−directory | 将远程机器的工作目录更改为指定目录。 |
| close | 终止与远程服务器的FTP会话并返回命令解释器,清除所有定义的宏。 |
| delete remote−file | 删除远程机器上的指定文件。 |
| debug [debug−value] | 切换调试模式。若指定可选的调试值,则设置调试级别。调试开启时, ftp 会在发送到远程机器的每个命令前加上 --> 打印出来。 |
| dir [remote−directory] [local−file] | 打印指定远程目录的内容列表,可选地将输出保存到本地文件。若未指定目录,则使用远程机器的当前工作目录。若未指定本地文件或本地文件为 - ,则输出发送到终端。 |
| disconnect | 等同于 close 。 |
| get remote−file [local−file] | 从远程机器检索文件并存储在本地机器上。若未指定本地文件名,则使用远程文件名。 |
| help [command] | 打印指定命令的含义信息。无参数时, ftp 打印已知命令列表。 |
| lcd [directory] | 更改本地机器的工作目录。若未指定目录,则使用用户的主目录。 |
| ls [remote−directory] [local−file] | 打印远程机器目录内容的简略列表。若未指定远程目录,则使用当前工作目录。若未指定本地文件或本地文件为 - ,则输出发送到终端。 |
| mdelete [remote−files] | 删除远程机器上的多个文件。 |
| mdir rote−files local−file | 类似于 dir ,但可指定多个远程文件。若交互式提示开启, ftp 会提示用户确认最后一个参数是否为接收 mdir 输出的目标本地文件。 |
| mget remote−files | 展开远程机器上的多个文件并逐个执行 get 操作。 |
| mkdir directory−name | 在远程机器上创建目录。 |
| mls remote−files local−file | 类似于 ls ,但可指定多个远程文件。若交互式提示开启, ftp 会提示用户确认最后一个参数是否为接收 mls 输出的目标本地文件。 |
| mode [mode−name] | 将“传输模式”设置为指定模式,唯一有效的模式是 stream ,对应默认的“流”模式。 |
| mput local−files | 展开本地文件列表中的通配符,并对每个文件执行 put 操作。 |
| open host [port] | 建立与指定主机FTP服务器的连接。可指定可选的端口号, ftp 将尝试连接该端口的FTP服务器。若自动登录选项开启(默认),还会尝试自动登录。 |
| prompt | 切换交互式提示。在多文件传输时,交互式提示允许用户选择性地检索或存储文件。默认情况下,提示开启;关闭提示后, mget mput 将传输所有文件, mdelete 将删除所有文件。 |
| put local−file [remote−file] | 将本地文件存储到远程机器上。若未指定远程文件名,将根据 ntrans nmap 设置处理后使用本地文件名。文件传输使用当前的“表示类型”、“文件结构”和“传输模式”设置。 |
| pwd | 打印远程机器的当前工作目录名称。 |
| quit | 等同于 bye 。 |
| recv remote−file [local−file] | 等同于 get 。 |
| remotehelp [command−name] | 向远程FTP服务器请求帮助。若指定命令名,也会将其提供给服务器。 |
| rename from to | 将远程机器上的文件 from 重命名为 to 。 |
| reset | 清除回复队列。此命令用于与远程FTP服务器重新同步命令/回复顺序,在远程服务器违反FTP协议后可能需要进行同步。 |
| rmdir directory−name | 删除远程机器上的目录。 |
| send local−file [remote−file] | 等同于 put 。 |
| sendport | 切换PORT命令的使用。默认情况下, ftp 在每次数据传输建立连接时会尝试使用PORT命令,使用PORT命令可避免多文件传输时的延迟。若PORT命令失败, ftp 将使用默认数据端口。禁用PORT命令后,每次数据传输将不再尝试使用PORT命令,这在连接某些忽略PORT命令但错误指示已接受的FTP实现时很有用。 |
| status | 显示 ftp 的当前状态。 |
| type [type−name] | 将“表示类型”设置为指定类型。有效类型包括 ascii (网络ASCII)、 binary image (图像)。未指定类型时,打印当前类型。默认类型是“网络ASCII”。 |
| user user−name [password] [account] | 向远程FTP服务器标识自己。若未指定密码且服务器需要, ftp 会提示用户输入(禁用本地回显后)。若未指定账户字段且服务器需要,用户也会被提示输入。若指定了账户字段,登录序列完成后,若服务器不需要该字段,会将账户命令转发给远程服务器。除非 ftp 以禁用“自动登录”的方式调用,否则此过程在初始连接到FTP服务器时会自动完成。 |
| verbose | 切换详细模式。详细模式下,会向用户显示FTP服务器的所有响应,文件传输完成时还会报告传输效率统计信息。默认情况下,若 ftp 命令来自终端,详细模式开启;否则关闭。 |
| ? [command] | 等同于 help 。 |

命令参数中包含空格时,可用引号( " )括起来。若未指定非可选的命令参数, ftp 会提示用户输入。使用终端中断键(通常是 Ctrl - C )可中止文件传输,所有已提交的传输将立即停止。

上述列出的 ftp 命令只是最常见的一部分, ftp 实际上提供了强大的命令集。它本质上是交互式网络应用,但支持初始主机连接时的“自动登录”,在一定条件下可自动完成身份验证,因此适合用于shell脚本编程,常用于在远程主机之间传输文件。此外, ftp 还支持“匿名访问”,即使用全局只读的FTP账户。

3.3 FTP自动登录

ftp 使用用户主目录下的隐藏文件 .netrc 中的登录数据。该文件必须由用户拥有,且只能由用户读写,因为它包含敏感信息(如明文FTP密码)。 .netrc 文件中的每个条目完整描述了一次针对特定主机的FTP登录会话。当 ftp 与主机建立初始连接时,会查询该文件获取相应的登录数据。若没有合适的条目,则执行常规登录过程并要求用户进行完整身份验证;否则,自动提交指定的用户名和密码。

以下是一个 .netrc 文件的示例:

$ cd /home/bjl
$ cat .netrc
machine hostname1 login username1 password letmein1
machine hostname2.domain2.com login username2 password letusin2
machine 208.208.25.153 login username3 password passme3

每个条目包含三个字段,每个字段由两个子字段组成:
- 字段1 :指令 machine 和主机名,主机名可以是相对名、绝对(完整规范)主机名或数字形式的IP地址。
- 字段2 :指令 login 和用于登录FTP主机的登录名(与 .netrc 文件所有者的用户名无关)。
- 字段3 :指令 password 和用于登录FTP主机的实际明文密码。

实现自动登录后, ftp 非常适合用于shell脚本。以下是一个使用Korn shell“Here文档”进行FTP会话的示例,用于在两个主机之间交换ASCII文件:

$ cat /home/username1/ftpscript.ksh
#!/ bin/ksh
#
# Prepare FTP related variables
FTPSITE = hostname2
LOCDIR = /share/local_dir
REMDIR = /pub/remote_dir
FILETOPUT = filename1
FILETOGET = filename2
LOG = /tmp/ftpscript.log
           .....
           .....
cd $LOCDIR
ftp $FTPSITE <<EOF 1>>$LOG 2>&1
cd $REMDIR
ascii
put $FILETOPUT
get $FILETOGET
bye
EOF
           .....
           .....

“Here文档”以 ftp 命令开始,以指定的终止字符序列(这里是 EOF )结束。整个FTP会话会记录在指定的日志文件中(标准输出和错误输出重定向到日志文件)。“Here文档”开始后,Korn shell将控制权交给“ ftp 命令解释器”,文档内的所有行都是严格的 ftp 命令,会依次执行,最后控制权再交回Korn shell。

在这个示例中,“Here文档”建立了一个FTP会话,用户身份验证自动完成( .netrc 文件中有该会话的条目),并以ASCII模式交换了两个文件,最后关闭了FTP会话。每个 ftp 命令行在完成前一行后执行,与命令的退出状态无关,只有通过检查日志文件才能确定每个指定命令的状态。

3.4 匿名FTP

匿名FTP是一种使用用户名 anonymous 和通常为真实用户名或电子邮件地址作为密码登录远程服务器的FTP会话。其目的是允许用户从互联网上的FTP服务器检索公开可用的文件和程序,无需在FTP服务器上拥有账户。当然,对服务器目录的访问通常限制为只读模式。

使用远程服务器提供的匿名FTP服务很简单,但在系统上设置匿名FTP服务则较为复杂。以下是搭建匿名FTP站点的基本步骤:
1. /etc/passwd 文件中添加用户 ftp

新条目:ftp:*:UID:GID:Anonymous ftp:/usr/ftp
  1. /etc/group 文件中添加组 anonymous
新条目:anonymous:*:GID
  1. 创建由 ftp 用户拥有且任何人都不能写入的FTP主目录
mkdir /usr/ftp

综上所述,UNIX系统中的 telnet ftp finger 等网络应用为用户提供了强大的功能,在网络管理和文件传输等方面发挥着重要作用。了解它们的使用方法和配置技巧,有助于更好地利用UNIX系统的网络资源。

以下是一个简单的mermaid流程图,展示了 ftp 自动登录的流程:

graph TD;
    A[启动ftp] --> B{.netrc文件中有对应条目?};
    B -- 有 --> C[自动提交用户名和密码];
    B -- 无 --> D[执行常规登录过程];
    C --> E[建立连接并操作];
    D --> E;

通过上述内容,我们详细介绍了UNIX网络支持中的常见应用,包括 telnet ftp 的功能、命令使用、自动登录以及匿名FTP的设置等方面,希望能帮助你更好地掌握这些应用在UNIX系统中的使用。

UNIX网络支持常见应用详解

4. 三种应用的对比与总结
应用名称 功能描述 适用场景 安全性 脚本适用性
Telnet 提供远程登录功能,使用TELNET协议与远程系统交互 远程管理UNIX主机 低,使用明文传输,包括密码 不适合,交互性强
FTP 实现文件在远程主机之间的传输 远程文件上传和下载 一般,自动登录和匿名访问有一定安全风险 适合,支持自动登录
Finger 提供远程用户信息 了解远程用户情况 未详细提及 未详细提及

从使用频率来看,Telnet和FTP在日常网络管理中更为常用。Telnet主要用于远程操作,让管理员可以在本地对远程主机进行配置和管理;FTP则专注于文件的传输,无论是小文件的简单交换还是大量文件的批量传输都能胜任。

在安全性方面,Telnet的明文传输特性使其在不安全环境中存在较大风险,而FTP虽然也有一定安全隐患,但通过合理配置自动登录和匿名访问可以在一定程度上降低风险。

对于脚本编程,FTP的自动登录功能使其成为在脚本中实现文件传输的理想选择,而Telnet由于其严格的交互性,很难在脚本中发挥作用。

5. 实际应用案例分析
5.1 Telnet远程管理案例

假设某公司有多个分布在不同地区的UNIX服务器,管理员需要在总部对这些服务器进行日常维护。管理员可以使用Telnet进行远程登录:

telnet server1.example.com

登录后,管理员可以执行各种系统命令,如查看系统状态、修改配置文件等。但需要注意的是,由于Telnet的安全性问题,建议在安全的内部网络中使用,或者结合VPN等安全措施。

5.2 FTP文件传输案例

某开发团队需要将本地开发的代码上传到远程测试服务器进行测试。团队成员可以使用FTP进行文件传输:

ftp testserver.example.com

登录后,使用 put 命令将本地代码文件上传到远程服务器:

put local_code_file.py remote_code_file.py

同时,团队也可以使用 get 命令从远程服务器下载测试报告等文件:

get remote_test_report.txt local_test_report.txt
6. 注意事项与技巧
6.1 Telnet注意事项
  • 安全风险 :避免在公共网络或不安全环境中使用Telnet,建议使用更安全的远程登录协议,如SSH。
  • 端口检查 :使用非默认端口时,要确保目标主机的相应端口是开放的。
6.2 FTP注意事项
  • 自动登录文件安全 .netrc 文件包含敏感信息,要确保其权限设置正确,只有文件所有者可以读写。
  • 匿名FTP设置 :设置匿名FTP服务时,要严格控制文件访问权限,避免敏感信息泄露。
6.3 通用技巧
  • 命令缩写 :在Telnet和FTP中,很多命令可以只输入部分字母来执行,提高操作效率。
  • 日志记录 :在脚本中使用Telnet和FTP时,要记录操作日志,方便后续排查问题。
7. 未来发展趋势

随着网络技术的不断发展,Telnet和FTP的使用可能会逐渐减少。Telnet由于其安全性问题,已经被更安全的SSH协议所取代。而FTP虽然在文件传输方面仍然有一定的应用,但也面临着一些新兴技术的挑战,如基于HTTP的文件传输协议。

不过,在一些特定的场景下,如内部网络的简单管理和文件传输,Telnet和FTP仍然有其存在的价值。未来,这些技术可能会在安全性和性能方面进行改进,以适应不断变化的网络环境。

以下是一个mermaid流程图,展示了从启动Telnet到完成远程操作的整个过程:

graph TD;
    A[启动Telnet] --> B{是否带参数};
    B -- 是 --> C[执行open命令建立连接];
    B -- 否 --> D[进入命令模式];
    C --> E[进入输入模式];
    D --> F[等待命令输入];
    E --> G[进行远程操作];
    F --> C;
    G --> H{是否结束操作};
    H -- 是 --> I[关闭连接并退出];
    H -- 否 --> G;

通过对UNIX网络支持中常见应用的详细介绍,我们了解了Telnet、FTP和Finger的功能、使用方法、安全问题以及实际应用案例。在实际使用中,我们要根据具体需求选择合适的应用,并注意安全问题,以充分发挥这些应用的优势。同时,我们也要关注技术的发展趋势,及时采用更安全、更高效的技术。

【无人机】基于改进粒子群算法的无人机路径规划研究[和遗传算法、粒子群算法进行比较](Matlab代码实现)内容概要:本文围绕基于改进粒子群算法的无人机路径规划展开研究,重点探讨了在复杂环境中利用改进粒子群算法(PSO)实现无人机三维路径规划的方法,并将其与遗传算法(GA)、标准粒子群算法等传统优化算法进行对比分析。研究内容涵盖路径规划的多目标优化、避障策略、航路点约束以及算法收敛性和寻优能力的评估,所有实验均通过Matlab代码实现,提供了完整的仿真验证流程。文章还提到了多种智能优化算法在无人机路径规划中的应用比较,突出了改进PSO在收敛速度和全局寻优方面的优势。; 适合人群:具备一定Matlab编程基础和优化算法知识的研究生、科研人员及从事无人机路径规划、智能优化算法研究的相关技术人员。; 使用场景及目标:①用于无人机在复杂地形或动态环境下的三维路径规划仿真研究;②比较不同智能优化算法(如PSO、GA、蚁群算法、RRT等)在路径规划中的性能差异;③为多目标优化问题提供算法选型和改进思路。; 阅读建议:建议读者结合文中提供的Matlab代码进行实践操作,重点关注算法的参数设置、适应度函数设计及路径约束处理方式,同时可参考文中提到的多种算法对比思路,拓展到其他智能优化算法的研究与改进中。
标题中的"EthernetIP-master.zip"压缩文档涉及工业自动化领域的以太网通信协议EtherNet/IP。该协议由罗克韦尔自动化公司基于TCP/IP技术架构开发,已广泛应用于ControlLogix系列控制设备。该压缩包内可能封装了协议实现代码、技术文档或测试工具等核心组件。 根据描述信息判断,该资源主要用于验证EtherNet/IP通信功能,可能包含测试用例、参数配置模板及故障诊断方案。标签系统通过多种拼写形式强化了协议主题标识,其中"swimo6q"字段需结合具体应用场景才能准确定义其技术含义。 从文件结构分析,该压缩包采用主分支命名规范,符合开源项目管理的基本特征。解压后预期可获取以下技术资料: 1. 项目说明文档:阐述开发目标、环境配置要求及授权条款 2. 核心算法源码:采用工业级编程语言实现的通信协议栈 3. 参数配置文件:预设网络地址、通信端口等连接参数 4. 自动化测试套件:包含协议一致性验证和性能基准测试 5. 技术参考手册:详细说明API接口规范与集成方法 6. 应用示范程序:展示设备数据交换的标准流程 7. 工程构建脚本:支持跨平台编译和部署流程 8. 法律声明文件:明确知识产权归属及使用限制 该测试平台可用于构建协议仿真环境,验证工业控制器与现场设备间的数据交互可靠性。在正式部署前开展此类测试,能够有效识别系统兼容性问题,提升工程实施质量。建议用户在解压文件后优先查阅许可协议,严格遵循技术文档的操作指引,同时需具备EtherNet/IP协议栈的基础知识以深入理解通信机制。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值