文章目录

  • 使用 Xshell 建立远程连接

  在 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/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/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/wangpaiblog/article/details/134796734