在 Windows 主机上是可以访问本地局域网中的 Linux 主机的。这样做之所以可行,是因为在计算机网络中,只要两台主机位于同一网络,它们之间就可以进行通信,这与这个网络是不是互联网无关。换句话说,从硬件层面上,只需要通过一台路由器就可以实现两台主机的通信,而该路由器不一定需要连接互联网。

  这里,笔者使用了路由器来连接两台主机。其中一台主机的操作系统为 Windows 10,另一台为 CentOS Stream 8。现在使用 Windows 10 来访问 CentOS Stream 8。具体的运行环境如下:

笔者的运行环境:

  • 硬件层面:

    • 两台主机

    • 一台无需联网的路由器

  • 客户端:

    • Windows 10 教育版

    • Xshell 7

    • Xftp 7

  • 服务器:

    • CentOS Stream 8

  从软件层面上,Windows 10 不方便直接访问 Linux 操作系统,因此需要借助一些终端模拟软件。这种软件有很多,如 XshellXmanagerMobaXterm 等。笔者这里使用的是 Xshell。下面是具体的实现步骤。

使用 Xshell 建立远程连接

  1. 在客户端上依次安装 Windows 10Xshell。不过要提醒的是,Xshell 不是免费的。

  2. 在服务器上安装一个 Linux 操作系统。 Linux 操作系统有很多,关于这方面的资料,可见笔者的其它博客:

    各种操作系统安装教程大全:
    https://blog.csdn.net/wangpaiblog/article/details/115436520

  3. 如果没使用 宿主机-虚拟机,而是使用的是现实中的两台机器,则需要使用路由器将这两台主机连接起来。一般说来,路由器会有一个 WAN 口,多个 LAN 口。其中,WAN 口用于连接外界的网络,LAN 口用于连接内部的网络或主机。这里,由于路由器可联互联网,也可不联,因此 WAN 口可用可不用,这取决于想不想让这两台主机访问互联网。但 LAN 口要用于连接这两台主机,不可不用。

  4. 在 Linux 主机上打开命令行。输入命令 ifconfig 来查看 Linux 主机的 IP。

  5. 此时会出现一大段的文字。如:

    enp2s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 192.168.0.100  netmask 255.255.255.0  broadcast 192.168.0.255
            inet6 fe80::5648:10ff:fed6:9599  prefixlen 64  scopeid 0x20<link>
            ether 54:48:10:d6:95:99  txqueuelen 1000  (Ethernet)
            RX packets 1774  bytes 161112 (157.3 KiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 448  bytes 51462 (50.2 KiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
            inet 127.0.0.1  netmask 255.0.0.0
            inet6 ::1  prefixlen 128  scopeid 0x10<host>
            loop  txqueuelen 1000  (Local Loopback)
            RX packets 7034  bytes 518784 (506.6 KiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 7034  bytes 518784 (506.6 KiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
            inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
            ether 52:54:00:aa:17:b7  txqueuelen 1000  (Ethernet)
            RX packets 0  bytes 0 (0.0 B)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 0  bytes 0 (0.0 B)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    wlp3s0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
            ether ee:ea:7b:68:90:e9  txqueuelen 1000  (Ethernet)
            RX packets 0  bytes 0 (0.0 B)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 0  bytes 0 (0.0 B)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
  6. 这里不想详细解释上面各字段的含义,只是指出,查看所需 IP 的方法是,关注上述 enp2s0 中的 inet 的内容即可。这里的 IP 为 192.168.0.100。注意,如果前面没有令路由器联网,此处的 IP 应该为一种专用地址 192.168.XXX.XXX(不是环回地址 127.0.0.1)。

    在这里插入图片描述


    【注意】

      如果读者使用的是刚安装 VMware Workstation 虚拟机来充当服务端,此处有可能还没有 inet 字段。这种情况下,需要先构建虚拟机所在的局域网,然后设置该虚拟机的静态 IP。关于这方面的内容,可见笔者的另一篇博客:

      VMware Workstation 入门使用:
    https://blog.csdn.net/wangpaiblog/article/details/121760068


  7. 打开 Xshell。按照如图操作。

    在这里插入图片描述

  8. 填写相应的信息。关键的信息为 协议主机端口号。其中,主机为上面 Linux 操作系统中的 IP。如果协议为 SSH,则端口号要使用 22。这个协议也可以设置为其它,这要根据自己的需求决定。如果只是要使用目标 Linux 的命令行,协议只需要使用 SSH。

    在这里插入图片描述

  9. 连接目标 Linux 主机,接收目标主机的密钥。现在应该就已经连接上了目标 Linux 主机。如果还下载了 Xftp,此时还可以立刻以资源管理器的方式访问目标 Linux 主机的文件。

    在这里插入图片描述

    在这里插入图片描述


    【踩坑提醒】

      如果在安装 Linux 时没有开启允许使用 root 账号进行远程登录,则此处的登录可能会失败。解决办法可见笔者的另一篇博客:

      解决 Xshell 无法使用 root 账户远程登录 Linux 的问题:
    https://blog.csdn.net/wangpaiblog/article/details/134796734


Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐