VMware中的虚拟机Debian10的服务器配置,使主机(win10)能够通过本地域名(如www.xxx.com)访问该服务器

发布时间 2023-08-12 18:04:54作者: mincode

VMware中的虚拟机Debian10的服务器配置,使主机(win10)能够通过本地域名(如www.xxx.com)访问该服务器

安装过程

  1. 下载debian-10.13.0-amd64-DVD-1.iso

    (可选下载链接: Index of /cdimage/archive (debian.org)

  2. 在VMware中安装虚拟机

    这里点击浏览,选择下载好的镜像文件,然后点击下一步

    这里自己给虚拟机命名,然后选择好虚拟机存放的路径,接着点击下一步

    这里根据需求设置虚拟机最大的占用空间,以及选择存储文件的个数,然后点击下一步

    确认信息无误后,点击自定义硬件,点选下图的桥接模式,然后点击关闭,此时会显示桥接模式(自动),这个在网络连接配置时再修改(现在想修改也退不出去),点击完成,接下来就要开始正式安装了

    选择graphical install,按下enter键

    双击中文简体这个选项(或者选择你偏好的语言)

    双击中国这个选项(或者选择你偏好的国家或地区)

    双击汉语这个选项(或者选择你偏好的键盘映射)

    设置主机的名称,然后点击继续

    设置域名(不用带www.),然后点击继续

    设置获取root权限的密码(注意,有小键盘的用户在输入数字时可能需要先按下NumLock键开启小键盘),然后点击继续

    设置初始普通用户的用户名,然后点击继续,在下一步也点击继续

    设置初始普通用户的密码,然后点击继续

    双击使用整个磁盘并配置lvm,在下一步点击继续

    双击同一个分区

    选择是,然后点击继续

    设置当前所需要的磁盘空间(可以默认),然后点击继续

    选择是,然后点击继续

    选择否,然后点击继续

    选择否,然后点击继续

    然后需要等待下载文件..........请别急,确实要等挺久,自己找点事情做

    这个自己根据需求选,然后点击继续

    想通过xshell连接服务器的选ssh server,gnome、xfce、kde、cinnamon、mate、lxde、lxqt都是桌面系统,print server是打印机,如果只需要通过命令行控制就不需要安装桌面系统,根据自己的需求选,然后点击继续

    然后需要等待下载文件..........请别急,确实要等挺久,自己找点事情做

    选择是,然后点击继续

    选择/dev/sda,然后点击继续

    点击继续,完成安装

  3. 解决乱码问题

    1. 安装sudo

      输入:apt-get install sudo

    2. 安装locales并设置语言

      输入:sudo apt-get install locales

      输入:sudo dpkg-reconfigure locales

      按下方向键-下键,找到en_US.UTF-8 UTF-8,按下空格键选中该选项

      按下方向键-下键,通过按下空格键取消选中zh_CN.UTF-8 UTF-8这个选项,然后按下enter键

      按下方向键-右键,选中左边的选项(ok),按下enter键

      [验证:]按下方向键-上键,选择输入历史(或者直接输入:sudo dpkg-reconfigure locales),按下enter键,会看到英文能正常显示,然后按下esc键退出

      [验证:]输入:sudo reboot,重启虚拟机后,输入用户名和密码登录后(需要通过小键盘输入数字的用户可能需要先按下NumLock键,再输入数字),输入:su,然后会看到Password:,不再是菱形乱码,然后输入获取root权限的密码

    3. 此时乱码问题解决

  4. 配置网络

    1. 设置镜像源

      输入:nano /etc/apt/sources.list

      在内容后添加如下行:


      [提示:]可以在输入完第一行后,通过按着shift键 + 方向键-左右键选中输入的这一行内容,然后按下Alt键 + 数字键6,复制刚才选中的内容,接着换到新的一行,按下Ctrl + U粘贴刚才复制的内容


      deb http://mirrors.aliyun.com/debian buster main non-free contrib
      deb-src http://mirrors.aliyun.com/debian buster main non-free contrib
      deb http://mirrors.aliyun.com/debian-security buster/updates main
      deb-src http://mirrors.aliyun.com/debian-security buster/updates main
      deb http://mirrors.aliyun.com/debian buster-updates main non-free contrib
      deb-src http://mirrors.aliyun.com/debian buster-updates main non-free contrib
      deb http://mirrors.aliyun.com/debian buster-backports main non-free contrib
      deb-src http://mirrors.aliyun.com/debian buster-backports main non-free contrib

      按下Ctrl + S保存内容

      按下Ctrl + X退出编辑

    2. 安装net-tools

      输入:sudo apt-get install net-tools

    3. 查看网络状态

      (在虚拟机)输入:sudo ifconfig

      (在主机按下win键 + R,然后在弹出的输入栏里输入cmd,接着按下enter键进入命令行)输入:ipconfig


      主机的防火墙设置

      win10用户可以打开 设置-网络和Internet-Windows防火墙-高级设置,鼠标左键点击左侧栏中的 入站规则,在列表中找到文件和打印机共享(回显请求 - ICMPv4-In) -专用,公用,鼠标左键双击该选项,勾选已启用,然后点击应用,确定


      (在虚拟机)输入:ping 192.168.31.5 -c 5(提示:需要把IP地址改成你主机的对应地址,-c后面的是设置ping的次数,可以根据需求修改,如果不带此参数,则会不停地ping,这种情况需要按下Ctrl + Z来中断停止ping的过程)

      (在主机命令行)输入:ping 192.168.31.230(win10默认只ping 4 次,因此可以不带参数)

      一般主机跟虚拟机是能互相ping通的,如果不能,需要点击VMware上方菜单栏中的 编辑-虚拟网络编辑器-更改设置,然后找到桥接模式,将已桥接至选择为自己的网卡(提示:win10 可以打开 设置-网络和Internet-网络和共享中心,点击”连接:“右方的网络名,然后点击 详细信息,“描述”右方的即为网卡名

      修改好后,点击应用,然后点击确定

  5. 网页验证

    1. 安装 apache2

      输入: sudo apt-get install apache2

      [验证:]输入:systemctl status apache2

      按下Ctrl + C或者按下 Q 退出

    2. 安装MariaDB

      输入:sudo apt-get install mariadb-server

      按下Y键,然后按下enter键

      ......等待下载的过程中可以忙别的事情......

      (运行安全配置向导:)输入:mysql_secure_installation

      输入获取root权限的密码

      输入 n ,然后按下enter键(如果需要修改密码则输入Y)

      输入 Y,然后按下enter键(如果需要保留匿名用户则输入 n)

      输入 Y,然后按下enter键(如果需要远程root访问则输入 n,我就选择了 n)

      输入 Y,然后按下enter键(如果需要保留test数据库则输入 n)

      输入 Y,然后按下enter键

    3. 安装PHP 7.3

      输入:sudo apt-get install php libapache2-mod-php php-mysql

      按下 Y,然后按下enter键进行安装

      [验证:]在主机的浏览器中输入虚拟机的IP地址(前面获取过,忘了的可以输入:sudo ifconfig 进行查看),会显示如下界面:

      [验证:]新建index.php,输入:nano /var/www/html/index.php

      在文件中添加如下内容:

      <?php
      $a = 'Hello World';
      $b = $_REQUEST['msg'];
      echo $b;
      echo $a;
      ?>
      

      按下Ctrl + S保存,然后按下Ctrl + X退出

      在主机浏览器中输入虚拟机的IP地址 + /index.php?msg=123,会显示如下界面:

  6. 配置dns解析

    1. 安装nslookup

      输入:sudo apt install dnsutils

      按下 Y,然后按下enter键开始安装

    2. 修改/etc/resolv.conf文件

      输入:nano /etc/resolv.conf

      把nameserver后面的IP地址修改为虚拟机的IP地址

      在文件后添加如下内容(或者所知的DNS 服务器):

      nameserver 8.8.8.8

      nameserver 8.8.4.4

      按下Ctrl + S 保存,然后按下Ctrl + X退出

    3. 安装bind9

      输入:sudo apt-get install bind9

      按下 Y,然后按下enter键进行安装

      1. 修改 named.conf.options(没修改)

        输入:sudo nano /etc/bind/named.conf.options

      2. 修改named.conf.local

        输入:sudo nano /etc/bind/named.conf.local

        在文件后添加如下内容:(example可修改为想要的本地域名)

        zone "example.com" {
        	type master;
        	file "/etc/bind/db.example.com";
        };
        

        按下Ctrl + S保存,然后按下Ctrl + X退出

      3. 创建域名区域文件

        输入:sudo nano /etc/bind/db.example.com

        在文件后添加如下内容:(example可修改为想要的本地域名)

        $TTL	600		;Time-To-Live/生存时间
        @	IN	SOA		ns1.example.com. admin.example.com. (
        					2023080101 ; 序列号Serial
        					3600 ; 更新频率Refresh
        					300 ; 重试时间Retry
        					604800 ; 失效时间Expire
        					600 ) ; 负缓存时间Negative Cache TTL
        @		IN		NS		ns1.example.com.
        ns1		IN		A		<虚拟机的IP地址>
        www		IN		A		<虚拟机的IP地址>
        

        按下Ctrl + S保存,然后按下Ctrl + X退出

      4. 启动bind

        输入:sudo systemctl start bind9

      5. 修改/etc/network/interfaces

        输入:sudo nano /etc/network/interfaces

        在文件后面添加如下内容(注释掉 primary network interface后的内容):

        [提示:]忘记或者不小心关了主机的cmd的可以重新打开(win + R,cmd),输入ipconfig查看

        	auto ens33
        	iface ens33 inet static
        	address <虚拟机的IP地址>
        	netmask <主机的掩码>
        	gateway <主机的网关地址>
        

        按下Ctrl + S保存,然后按下Ctrl + X退出

      6. 重启网络服务

        输入:sudo systemctl restart networking

      7. 验证是否成功修改了/etc/resolv.conf

        输入:cat /etc/resolv.conf

        会返回如下内容:(其中为自己设置的一些值)

      8. 验证dns能进行解析

        输入:nslookup <自行设置的本地域名>

        会返回如下内容:


        主机的dns服务器配置

        win10用户可以打开 设置-网络和Internet-更改适配器选项,鼠标右键点击正在使用的网络,鼠标左键点击 属性,鼠标左键双击网络栏中的 Internet 协议版本 4(TCP/IPv4),然后选择使用下面的DNS服务器地址,首选设置为虚拟机的IP地址,备用设置为之前的DNS服务器地址

        设置如下(首选注意是填自己虚拟机的IP地址,用于本地解析):


        (在主机命令行)输入:ping <设置的本地域名>

        会返回如下内容:

        在主机浏览器中输入<设置的本地域名>/index.php?msg=123,会返回和之前[虚拟机的IP地址 + /index.php?msg=123]一样的界面:


--------------后面是我遇到的一些问题以及解决办法---------------

NumLock键默认开启

键盘没有小键盘的用户请自觉忽略这一段

起因

​ 不知道为什么,每次在VMware里启动Debian10之后,会默认关闭NumLock键,这导致了每次打开虚拟机后首次输入数字的时候就要先按NumLock键,不然就只能通过键盘上方的一排数字键输入数字。这对于习惯用上方一排数字键的用户来说问题不大,但是对于我这种习惯用侧边小键盘的用户来说非常的难受,在输入数字的时候总会无意识的用右手在小键盘上输入,然后才意识到小键盘被锁了,又按了NumLock键,才能重新输入数字。因此,能够实现NumLock键在开机时处于开启状态就非常重要了。

具体操作步骤

输入:sudo nano /etc/rc.local

在文件中添加以下内容:

#!/bin/bash

for tty in /dev/tty[1..6]
do
    /usr/bin/setleds -D +num < "$tty";
done

按下Ctrl + S保存,然后按下Ctrl + X 退出

输入:sudo nano /etc/systemd/system/numlock.service

在文件中添加以下内容:

[Unit]
Description=numlock

[Service]
ExecStart=/etc/rc.local
StandardInput=tty
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

按下Ctrl + S保存,然后按下Ctrl + X 退出

**输入: sudo chmod +x /etc/rc.local **

输入:systemctl enable rc.local

输入:systemctl start numlock.service

[验证:] 输入:sudo reboot

虚拟机重启后,能够在小键盘成功输入数字,说明小键盘默认开启


不需要的请自动略过


**[附带:]Xshell 7 下载链接: 家庭/学校免费 - NetSarang Website (xshell.com) **

需要传文件的可以把xftp 7也一起下载了

安装完,激活也很简单,输入邮箱,点击邮件里面的链接即可完成激活


Xshell 7修改为中文界面

在软件上边工具栏,鼠标左键点击 tools-Change Language,通过下拉菜单选择Chinese simplified(简体中文)或者 Chinese traditional(繁体中文),然后点击OK,重启软件即可(也可以勾选下方的立即重启,再点击OK)


Xshell 7命令行小键盘默认开启

在软件上边工具栏,鼠标左键点击 文件-默认会话属性,在侧边栏中,鼠标左键点击VT模式,把初始光标键模式设置为 普通,把初始数字键盘模式设置为 设置为普通,然后鼠标左键点击确定即可


:补充

​ 编码问题其实就是通过修改为英文的编码,或者说是添加英文的编码来解决的,也许是配置的中文编码不适配英文?这个我没有细究,编码问题一直都很让我头疼,各种软件编辑器、各种数据库好像都不太支持中文的多编码切换,gbk跟utf-8我不知道该用哪个更好,我现在是直接统一全换为utf-8暂时忽略了这个问题。至于说读取和写出中文倒问题不大,可以通过流的设置来解决。


-——-----————----————--——---————----———-----————————-----————--—----————---——

[其他:]一些有用的指令和建议

命令 描述
<可变命令,如ls -a>| less less 使执行指令后通过列表显示返回的结果,允许滚动查看,不加该参数无法查看命令框外的返回结果
Ctrl + C 用于退出滚动查看文档的状态,返回命令行待输入的状态
Q 用于退出滚动查看文档的状态,返回命令行待输入的状态
whereis <文件名> 指令可以用来查找文件的路径

[建议:]

充分运用虚拟机快照

在VMware上方工具栏中找到【拍摄此虚拟机的快照】按钮

​ 通过创建快照可以保存虚拟机当前的状态,我的理解是,相当于游戏里面的创建存档。打游戏会在不确定过程走向或者已经确定会影响过程走向的重要节点进行存档,便于在遇到预期外的状况时可以通过读档保障游戏体验。当然,游戏里面还会遇到死档,即通过读档也无法改变后面发生的玩家预期外的不利状况,这意味着,存档时机和存档频率很重要。

​ 虚拟机快照也需要你去评判接下来的操作是否会造成无法逆转的状况,或者要在操作后进行大量的工作才能恢复操作前的状态。如果不确定,可以在操作前先进行快照保存,这也有利于进行一些指令的尝试,可以在效果不符合预期时进行虚拟机状态的回退([提示:]可以通过VMware左侧栏中,点击鼠标右键选中虚拟机-快照-快照管理器,选中需要恢复的状态,鼠标左键点击转到,进行虚拟机状态的回退;也可以通过VMware上方工具栏中的【将此虚拟机恢复到快照】按钮(在【拍摄此虚拟机的快照】按钮的右边)恢复到最近保存的虚拟机状态)

遇到问题先别急,分析完再急也还来得及

【举个例子:】

​ 虚拟机的服务器配置完了,那再验证一遍能否访问网页?没有问题,在主机浏览器中输入设置好的本地域名,但为什么突然访问不了了,之前我记得能访问的啊。

《请你先别急》

​ 重新打开 设置-网络和Internet-更改适配器选项,鼠标右键点击正在使用的网络,鼠标左键点击 属性,鼠标左键双击网络栏中的 Internet 协议版本 4(TCP/IPv4),确认一下DNS服务器的地址是否跟之前设置的一样,一样的话,再去排查其他问题。

​ 当你能够在遇到脑中浮现出许多问号的时候静下心来分析问题,解决问题就不再是什么难题了,只是时间问题,你一定会在某一个时刻找到所需要的答案,相信自己,别犹豫,去做!

---——---———---——----—————--------———------—————----———-----————————----——--——