通过互联网在两台PC之间建立共享终端

通过互联网在两台PC之间建立共享终端

我的电脑和我朋友的电脑位于两个不同的本地网络中,每个网络都通过路由器连接到互联网,每个局域网只有一个IP,由ISP临时分配。为了建立我们每个人都可以看到对方的终端并在我们的 PC 上打字的情况,我们必须克服哪些问题?

除了提及障碍之外,您还建议查找哪些术语来处理这种情况?

答案1

您没有提供需要实现此目标的原因,因此我的答案可能没有您需要的解决方案。但与其他用户共享终端的最简单方法是使用特马特,这是 tmux 的一个分支。

Tmate 允许您启动会话(打开终端并启动 tmate),这将为您提供 2x 连接字符串; a 读、写(其他人可以输入命令)或只读(其他人只能看到您输入的内容)。

优点是,一旦您在服务器计算机上安装了 tmate,您就不需要打开任何端口或安装 VPN。缺点是安装不是很简单(也不是太复杂),而且我不认为你可以传输文件。

这是 tmate 实际操作的快速演示视频 -https://www.youtube.com/watch?v=is_VpIx3Z4M

答案2

要解决临时 IP 地址分配问题,您需要查看动态 DNS。找到支持动态 DNS 的域名注册商,然后每个人注册一个域名,并按照注册商的说明设置 IP 地址的自动更新。这将允许您连接到朋友的计算机(反之亦然),而不必担心 IP 地址过期,因为域名将始终指向当前分配的地址。

在 LAN 方面,如果您尚未将 PC 设置为静态内部 IP 地址,则每个人都需要将其设置为静态内部 IP 地址。如何执行此操作的详细信息取决于您使用的发行版。例如,我的路由器的内部 IP 地址是 192.168.1.1,它向我的家庭网络上的 DHCP 客户端分配 192.168.1.100 到 192.168.1.199 范围内的地址。在我的 Debian PC 上,我希望能够从 LAN 外部访问它,我使用/etc/network/interfaces路由器 DHCP 范围之外的静态地址设置主以太网适配器,如下所示:

allow-hotplug eth0
auto eth0
iface eth0 inet static
    address 192.168.1.10
    netmask 255.255.255.0
    gateway 192.168.1.1

然后,在路由器的防火墙设置中,我打开了 TCP 端口 22(默认 SSH 端口)到内部地址 192.168.1.10(我的计算机的静态地址)的端口转发。

在向外界公开该端口之前,请采取一些步骤来减轻 SSH 攻击:

  • 不允许 root 在 SSH 中登录。 (PermitRootLogin no在你的 sshd 配置文件中。)
  • 仅允许特定(非 root,以及其他非特权)用户的连接。 (AllowUsers my_user_id your_user_id在您的 sshd 配置文件中。)为此,您可以指定您自己和您朋友的用户 ID,或者专门为此目的创建一个单独的用户帐户。重要的是,您不允许来自通常由可能具有默认密码的主要包(例如,mysql、www-data)创建的用户ID 的连接。对于脚本小子来说,这些都是很容易的目标。
  • 对上述步骤中列入白名单的帐户使用强密码。
  • ssh-keygen或者,在两个系统相互验证后,考虑避免使用密码。
  • 安装一些软件,在出现一定次数的失败后阻止来自给定远程主机的连接请求。我为此目的使用了fail2ban,并且效果很好。

现在您应该能够连接到彼此的计算机,这使得您需要共享终端。那就是那里GNU 屏幕主持会议的人只需启动终端、启动屏幕并启用多用户,以便其他人可以加入会议。 (有关启用多用户的详细信息,请参阅 screen 的手册页。)之后,你们中的任何一个或两个都可以在不终止 screen 会话的情况下断开连接,并在以后的任何时间重新连接到它。即使 ISP 更改了您的 IP 地址(对于您中的任何一个),从而终止了您的连接,您仍然可以在刷新 DNS 条目后重新连接并再次加入同一会话。

相关内容