win10+Vmware+ubuntu18 mosquitto调试记录

这篇具有很好参考价值的文章主要介绍了win10+Vmware+ubuntu18 mosquitto调试记录。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

记录一下在建立mqtt调试环境上遇到的问题及对策。

我的PC环境为,win10为办公环境,Vmware虚拟机安装ubuntu18,虚拟机主要用来进行代码编译,建立mosquitto server测试环境。

1. ubuntu 安装mosquitto

安装mosquitto网上很多教程,这里简单列举一下:

sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa
这一步我遇到了gpg key timeout的错误,猜测应该是外网连线的问题,毕竟大陆现在访问github不太稳定,加上我已经将更新源设置为华为的镜像地址,所以跳过这步。

sudo apt-get update 
sudo apt-get install mosquitto        //安装mosquitto broker
sudo apt-get install mosquitto-clients        //安装mosquitto client

/etc/mosquitto/conf.d目录下,添加配置文件myconfig.conf 配置文件:

sudo gedit /etc/mosquitto/conf.d/myconfig.conf

粘入下面这些配置:

#添加监听端口(很重要,否则只能本机访问)
listener 1883
#-------------------------------------------
# 关闭匿名访问,客户端必须使用用户名
allow_anonymous false

#指定 用户名-密码 文件
password_file /etc/mosquitto/pwfile.txt
#--------------------------------------------

添加账户及密码

sudo mosquitto_passwd -c /etc/mosquitto/pwfile.txt 用户名

回车后连续输入2次用户密码即可。

启动mosquitto

可以有以下两种方式,第一种是使用默认配置 /etc/mosquitto/mosquitto.conf,启动命令如下:

sudo service mosquitto start 

另一种是指定使用哪一个配置文件,启动命令如下:

 sudo mosquitto -c /etc/mosquitto/conf.d/myconfig.conf -v

 查看mosquitto运行状态

sudo service mosquitto status

运行本机local测试:

订阅主题(新开一个终端1)

 mosquitto_sub -h localhost -t "lai001/#" -u 用户名 -P 密码 -i “client1”

发布主题(新开一个终端2) 

mosquitto_pub -h localhost -t "lai001/testTopic" -u 用户名 -P 密码 -m "Hello MQTT from mosquitto-clients" 

 因为我的ubuntu版本是18.0x的,这个版本上支持的最新的mosquitto版本为v1.4.5,支持到MQTT  3.1。

到这里虚拟机上的mosquitto server安装完毕了,此时遇到一个问题,本机localhost测试没有问题,可以正常pub/sub,但是外网的PC无法connect上ubuntu的mosquitto server。进一步测试发现,我的ubuntu虚拟机能够ping通外网的PC,但是外网的PC无法ping通虚拟机的IP。

这个问题的原因是因为主机WIN10的Vmware的网络连接设定问题导致:

win10+Vmware+ubuntu18 mosquitto调试记录,linux,运维,服务器

 我原来设定为NAT模式下的固定IP(方便win10下映射网络驱动盘),但实际发现NAT模式下,虚拟机的网络功能一切正常,就是没办法被其他设备(除了win10主机)ping通。

参考网上的教程将Vmware的网络连接设定为桥接模式后,修复了这个问题。

有几个地方记录一下:

需要将Vmware的权限设定为管理员权限启动,要不然看不到VMnet0,无法设定为桥接模式。win10+Vmware+ubuntu18 mosquitto调试记录,linux,运维,服务器win10+Vmware+ubuntu18 mosquitto调试记录,linux,运维,服务器

引用其他博主桥接模式下的win10主机及Vmware虚拟机与Ubuntu设定如下:

桥接模式下的网络设置

2.1 真实主机设置
使用桥接模式,首先要设置用于桥接的真实主机的网卡(一般是连接外网的网卡)。以win10为例,点击右下角网络和Internet设置-更改适配器选项,找到连接外网的网卡(我的就是下图中2位置啦),右键-属性,在WLAN属性中选中VMware Bridge Protocol,然后确定即可。

win10+Vmware+ubuntu18 mosquitto调试记录,linux,运维,服务器

2.2 VMware虚拟交换机设置
设置好真实主机配置后,接下来需要设置VMware虚拟交换机的网络设置。

win10+Vmware+ubuntu18 mosquitto调试记录,linux,运维,服务器

 如上图,点击VMware上编辑-虚拟网络编辑器进入网络设置页面(下图)。你的界面有可能看不到VMnet0选项,按照上述方法解决。然后按下图,依次选择2处桥接模式,桥接位置3处选择你的真实主机连接外网的那块网卡,点击4处确定。

win10+Vmware+ubuntu18 mosquitto调试记录,linux,运维,服务器

 虚拟机设置

接下来就需要设置VMware上的虚拟主机设置,如下图所示,在虚拟机关闭的情况下,依次点击编辑虚拟机设置-网络适配器-启动时连接-桥接模式。点击右上角关闭按钮,设置完成。

win10+Vmware+ubuntu18 mosquitto调试记录,linux,运维,服务器

接下来,为了方便我们在win10下开发,将ubuntu设定为固定IP的方式比较友好。

在ubuntu中设定网络,wired Settings。

win10+Vmware+ubuntu18 mosquitto调试记录,linux,运维,服务器

 win10+Vmware+ubuntu18 mosquitto调试记录,linux,运维,服务器

win10+Vmware+ubuntu18 mosquitto调试记录,linux,运维,服务器

 使用固定IP上网,则需要选择手动模式,此时需要设置IP地址,子网掩码,默认网关等。先在真实主机(假定为windows系统)上使用ipconfig命令查看下真实主机的IP地址,子网掩码,默认网关等。下面3、4处子网掩码和网关填写与真实主机相同的参数,IP地址保证与真实主机的IP地址在同一网段即可。DNS可以选择自动或者手动,手动模式下也保持和真实主机的设置一致即可。

 win10+Vmware+ubuntu18 mosquitto调试记录,linux,运维,服务器

 ubuntu系统文件设置

为了保证ubuntu虚拟机后续重新开机后保持这个固定IP,最后咱还需要设置一下系统文件。

首先,在虚拟机终端中,输入命令ifconfig,可以找到我们设置的希望用于和真实主机及外网通信的网卡名称,如下图,我的网卡名称是ens33,对应IP地址已经是我前面设置的静态IP了; win10+Vmware+ubuntu18 mosquitto调试记录,linux,运维,服务器

 修改/etc/netplan/01-network-manager-all.yaml文件:

sudo gedit /etc/netplan/01-network-manager-all.yaml

 编辑为如下内容,将固定IP,gateway,NDS等信息填入:

network:
  version: 2
  renderer: NetworkManager
  ethernets:
    ens33:                      #网卡名,以ubuntu操作系统的网卡名称为准
      dhcp4: no                 #ipv4关闭dhcp,用static模式
      dhcp6: no                 #ip6关闭dhcp
      addresses:
        - 192.168.31.130/24     #本机IP地址
      gateway4: 192.168.31.1    #vmware网关的的IP地址
      nameservers:              #DNS服务器
        addresses: [114.114.114.114, 8.8.8.8, 1.1.1.1]

 修改配置后先测试一下:

sudo netplan try

如果测试通过,再应用配置:

 sudo netplan apply

重启网络服务:

sudo service network-manager restart 

 至此,网络环境已经全部设定好。重启Vmware与ubuntu后,分别测试 虚拟机与主机,虚拟机与外网机器互ping(同网段下),都可以正常ping通。

此时,在ubuntu启动mosquitto broker/mosquitto_pub/mosquitto_sub,在另外一台PC上使用MQTT tool,我使用的是MQTT explorer,连接ubuntu上的mosquitto broker,测试pub与sub主题,ubuntu server上的mosquitto_sub可以收到MQTT explorer pub的数据,MQTT explorer可以收到ubuntu server上的mosquitto_pub的数据,测试环境建立完成。

补充一下,桥接模式需要win10主机一定要有网络连接,才能远程访问虚拟机,这样当没有网络环境时,开发会很麻烦,所以在没有网络连接的情况下,需要使用Vmware的NAT模式来启动ubuntu,这样WIN10主机可以远程访问虚拟机了。

记录一下NAT模式的设定:

1.WIN10主机先设定“VMware Virtual Ethernet Adapter for VMnet8” 这张虚拟网卡的IP,将其设定为与ubuntu IP(192.168.31.130)为同一网段,我这里设置为 192.168.31.1,如下:

控制面板->网络和 Internet->网络和共享中心->更改适配器设置

VMware Virtual Ethernet Adapter for VMnet8 ->鼠标右键->属性

Internet协议版本4(TCP/IPv4)->鼠标右键->属性

win10+Vmware+ubuntu18 mosquitto调试记录,linux,运维,服务器

 2.Vmware设定如下:

设定“虚拟网络编辑器” -> VMnet8子网地址(与192.168.3.1同一网段)

win10+Vmware+ubuntu18 mosquitto调试记录,linux,运维,服务器

 编辑虚拟机设置 -> 选择NAT模式

win10+Vmware+ubuntu18 mosquitto调试记录,linux,运维,服务器

 启动虚拟机,此时WIN10主机与ubuntu在同一网段,就可以通过VMnet8这张虚拟网卡远程访问ubuntu虚拟机了。文章来源地址https://www.toymoban.com/news/detail-637796.html

到了这里,关于win10+Vmware+ubuntu18 mosquitto调试记录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • win10 安装WSL ubuntu20、配置git问题及解决记录

    1 WslRegisterDistribution failed with error: 0x800701bc问题 问题现象如下图: 处理方式有两种: 1)切换使用WSL1,在windows命令输入wsl命令:  2)安装新内核,内核没有升级,前往微软WSL官网下载安装适用于 x64 计算机的最新 WSL2 Linux 内核更新包即可。 下载链接:https://wslstorestorage.blo

    2023年04月08日
    浏览(30)
  • 【联想PC win11系统安装Ubuntu18.04/Ubuntu20.04】全程记录安装过程,和网卡驱动、显卡驱动等安装以及后续一系列问题

    电脑为联想台式机:Lenovo IdeaCentre-GeekPro 内存:32G 磁盘:512G固态硬盘+2T机械硬盘 CPU:i7-12700 GPU:NVIDIA RTX3060 学习需要安装Ubuntu18.04和win11系统共存。 之前装过Ubuntu16.04因为内核版本太老,显卡、声卡、有线无线网卡、蓝牙驱动都没有…,直接一个毛坯房了属于是,没有显卡驱

    2024年02月04日
    浏览(86)
  • ubuntu18.04+win10双系统,ubuntu黑屏进不去,显示“ACPI BIOS Error(bug):Could not resolve symbol ....“的参考解决方案

    电脑是华硕天选1 显卡为Nvidia 2060 ubuntu18.04+win10双系统 参考了一下NVIDIA显卡的Ubuntu驱动程序安装方法的P4,最终成功解决,问题的根源请教了一下杰哥,是Ubuntu对BIOS的ACPI特性支持不好。 解决方案是禁用nouveau驱动和ACPI(不知道为什么ACPI出问题,光禁用nouveau也能解决),按照

    2024年04月13日
    浏览(38)
  • 微软牵手Linux:Ubuntu“系统”上架win10应用商店啦

    导读 继SUSE Linux登陆之后,Ubuntu今天正式以UWP应用的身份上架Win10应用商店。Windows Insider用户升级到Win10秋季创意者更新预览版Build 16190及以上就可以下载和安装Ubuntu系统应用。一旦下载和安装完Ubuntu应用后,它将开始在你的Windows10 PC上安装Ubuntu。Win10商店最新版本是Ubuntu 16.

    2024年02月09日
    浏览(31)
  • VMware+Ubuntu18虚拟机修改用户名

    虚拟机若要更改用户名,即修改如图红色区域的显示地方。 博主也是在修改时也是在网上查了一下资料,但有一些地方不太看的懂,找了很久最后才修改完成,所以稍微写详细一点。第一次写博客,大佬轻喷!!!该方法对博主实用。 在命令行输入: su 输入本机的密码。

    2024年02月02日
    浏览(29)
  • win10 vmware虚拟机蓝屏怎么办 win10 vmware虚拟机蓝屏解决方法【详解】

            最近有朋友出现win10 vmware虚拟机蓝屏的情况应该怎么办?小伙伴们在使用vmware虚拟机出现了蓝屏现象的小伙伴们不用担心,小编翻阅各种资料后给大家带来两种虚拟机蓝屏的解决方法,想要解决此问题的小伙伴们快跟着小编往下看吧! win10 vmware虚拟机蓝屏的解决

    2024年02月09日
    浏览(35)
  • Win10安装Linux子系统WSL(ubuntu2204)及图形桌面xfce4

    什么是 WSL ? 在计算机上使用 Linux 系统通常有两种方式:使用虚拟机或安装 Linux 系统。使用虚拟机时开销较大,直接使用 Linux 系统虽然可以带来流畅体验,但与 Windows 之间来回切换比较麻烦。为此,微软开发了适用于 Linux 的 Windows 子系统,简称 WSL。 WSL 可以让开发人员可以

    2024年02月13日
    浏览(36)
  • VMware17.0.1密匙/下载/安装Ubuntu18.04

    1、下载VMware17.0.1 https://download3.vmware.com/software/WKST-1701-WIN/VMware-workstation-full-17.0.1-21139696.exe 2、下载Ubuntu18.04 ubuntu-releases-18.04安装包下载_开源镜像站-阿里云  3、安装VMware,密匙网上复制一个

    2024年02月08日
    浏览(36)
  • VMware虚拟机安装win10系统教程(巨细)

    ​ 典型安装 与 自定义安装 的差别:通常设计人员使用自定义安装(高级)。 1. 典型安装: 这种安装方式将默认选项用于所有安装设置,包括安装位置、虚拟网络配置等。 这通常是新用户使用的方法,因为它省去了诸如配置选项之类的繁琐步骤,使得安装非常简便快捷。

    2023年04月11日
    浏览(48)
  • win10系统配置vmware网络NAT模式

    1,查看win10 IP地址:ipconfig 2, vmware设置:编辑虚拟网络编辑器点击添加网络(选择NAT模式) 3,虚拟机网络设置:点击VMware虚拟机设置网络适配器 4,centos网络设置: cd /etc/sysconfig/network-scripts vim ifcfg-ens33 截图如下: 5,重启centos网络服务 service network restart

    2024年02月09日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包