隐私提示:本站使用Microsoft Clarity统计访客信息,关于我将收集你的具体何种信息及如何禁止我收集你的信息请点击这里.

  “电脑有什么用?”,为了回答这个问题笔者尝试探索出更多计算机在生活中能起作用的使用场景。本期作者计划介绍如何使用计算机通过互联网与远方的好友聊天,首先作者将演示如何通过一个简单的计算机网络聊天。

  作者的演示用例是使用一款Linux或Unix系统中常见的网络调试程序”NetCat”来完成的。使用作者推荐的环境的读者以及事实上大部分读者都可以不需要另行安装任何程序,而没有使用作者推荐的软件环境的读者可以在NetCat项目主页上了解如何获取netcat程序。另外,读者不必深究像”IP地址”这样的专有名词,可以直接将其理解为一台计算机在网络中的门牌号。

  首先,作者在一台计算机上使用NetCat程序打开24800端口(端口就像一个房子有很多个门,24800表示其中一扇)作为服务端,等待客户端连接。已经知道的是,作者的这台计算机IP地址为192.xxx.xxx.xxa(x和a均为数字,表示作者不希望读者知道)。指令请在控制台终端(如Konsole中)运行。

nc -l -v -p 24800

  这里补充提示读者,如读者计划自行实验请选择例如49000这样数值较大的端口号,以避免因为网络安全原因导致连接失败。这里端口地址应该在65536以下,不含65536。

NetCat作为服务端

  然后,作者在另一台计算机上使用NetCat程序连接刚才的服务器。这样以来,一个连通的信息隧道就建立好了。读者需要注意,这里一台机器作为服务端打开端口等待连接,另一台作为客户端去连接服务端。

nc 192.xxx.xxx.xxa 24800

  这时候,读者将在服务端的电脑上看到已收到连接的提示,例如:

Connection from 192.xxx.xxx.xxb 49818 received!

  现在让作者试试在客户端发送一个简单而无意义的话”abcdefg123456”,作者立即在服务端收到了这句话,同样服务端发送的语句在客户端也能够收到。读者可以自行实验。

NetCat聊天

  通过上面的实验,读者应该已经了解到:一个做基本的网络数据传输服务中需要有服务端和客户端双方才能完成。先由服务端打开一个选定的端口等待连接。然后,对于客户端而言需要知道服务端的IP地址和提供服务(如聊天服务)的端口号再去与服务端建立连接。

  这里读者已经看到,通信中服务端的IP地址是非常重要的参数。就像寄送挂号信时收件人的地址一样,不知道对方的地址就无法寄送信件。对于当今互联网上的计算机而言,这个地址事实上更加复杂,大部分时候互联网上的数据是由被称为”路由器”的计算机进行层层分拣才能送到收件人手中。就像一封有多层信封包装的挂号信,最外层只写明了收件人的省份,到达对应省份的路由器后被其拆封再转寄到下一级单位分拣。在这个过程中只有最基层的路由器知道收件人的真实IP地址。

  如此一来,在读者与作者之间建立连接就显得不太可能了,因为读者与作者双方都很难知晓对方上层路由器的信息。且即使通过技术手段获取了路由信息并成功实现了通信,在庞大的互联网上这个路由链路也很难保持通常比较久的时间,就好像收件人的信件是由附近多个基层单位轮流值班分拣。

  于是,因特网中继聊天(IRC)被提出了。所谓中继就是有一个已知IP地址和路由信息(通常是其直接拥有全世界都能够直接联通的IP地址)的计算机来充当送信人的角色,读者将消息发给中继计算机再由收件人找到中继计算机取阅信息。如此一来,收件人和发件人都不再需要知道对方的地址信息,这个中继计算机成功的帮助大家实现了互联网畅聊。

  本节作者将介绍一款互联网中继聊天客户端”Konversation”,使用作者推荐的计算机软件环境的读者可以使用下面的指令获得该程序,其他读者可以通过KDE社区的Konversation项目主页了解如何获取该程序。

zypper in konversation

  需要提醒读者,如果在使用”zypper”安装程序时提示”需要Root权限才可运行此命令”,则读者应该在该指令前添加”sudo”并输入管理员用户的密码。请读者注意,在使用”sudo”指令前务必检查指令是否输入正确并确认自己真的需要执行该指令。对计算机安全负责往往能够让计算机更加得心应手。

sudo zypper in konversation

  运行Konversation将弹出服务器列表供读者选择。事实上即使不小心禁止了该列表弹出,该列表依然可以在”文件”选项卡中再次打开。

Konversation界面

  读者可以通过一系列“编辑”选项卡来对服务器信息和聊天室的昵称进行设置。关于服务器信息,作者常用的服务器有LiberaChat和FreeNode,读者可以通过搜索引擎了解其详细配置信息,也可以自行探索喜欢的服务提供者。某些服务提供者可能还会提供昵称注册服务(例如FreeNode),这样读者将可以独占喜欢的昵称,关于昵称注册服务的详细内容可以参考各服务提供商关于”NickServ”服务的说明,如FreeNode关于NickServ服务的说明

Konversation中一系列的编辑选项

  接下来作者将连接Konversation在openSUSE中默认的服务器进行演示,在一切配置妥当后(或根本不进行配置)就可以点击”连接”按钮连接服务器了。连接完成后将得到如下提示。

Konversation连接服务器成功

  考虑到同一台中继服务器可能有成千上万用户同时连接(本例中的服务器就有46448个用户同时在线),这样聊天时消息将纷繁复杂使读者无法响应。因此,IRC服务提供了”频道”机制,让感兴趣同一话题的聊天者可以聚在一起。读者可以通过”文件-加入频道“中输入自己感兴趣的频道来加入,如作者加入了”libera”频道。现在请愉快地体验互联网聊天吧。

Konversation在Libera频道

  读者可能会感到困惑:”不知晓频道名称怎么办?万一服务器上没有本人输入的频道名称怎么办?是否有办法知道服务器提供哪些频道?”答案当然是肯定的,但这只适用于特定的IRC客户端软件,使用”获取频道列表”将引发大量的互联网流量,使用计费流量服务或窄带上网的读者应该警惕。Konversation支持”获取频道列表”这一特性。另外,部分IRC服务提供者允许用户通过连接不存在的频道名创建新的频道,另一些则要求用户通过特定途径申请。

  读者可以在”窗口-某某 的频道列表”中通过”刷新列表”按钮来获取当前服务器上的频道列表。需要了解,并不是所有的IRC服务提供者都允许用户获取频道列表。

Konversation获取频道列表

  另外读者也可以在频道右侧通过双击用户名来与指定用户单独聊天。

  需要提醒读者:

    互联网是相对匿名的世界,不要轻信也许一生都不会谋面的网友,更不要轻易与网友谋面。

    不要在IRC网络中透露自己的个人信息,IRC中的聊天内容对所有在线的用户都是可见的。

    尽可能使用SSL方式连接服务器,以避免网络上的其他计算机窃取读者的上网内容。

    互联网不是法外之地,读者依然有必要像在真实世界中一样谨言慎行。

UMRAY

2021.08.27