获取当前系统启动模式
# systemctl get-default
# systemctl set-default graphical.target //由命令行模式更改为图形界面模式
# systemctl set-default multi-user.target //由图形界面模式更改为命令行模式
修改防火墙
控制台修改 5901
安装软件
图形界面:
# yum groupinstall -y "GNOME Desktop"
VNC服务器:
# yum install tigervnc-server tigervnc vnc vnc-server
配置vnc连接
# cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
修改:
sudo vim /etc/systemd/system/vncserver@:1.service
<user>换成用户名
ExecStart=/sbin/runuser -l <USER> -c "/usr/bin/vncserver %i"
PIDFile=/home/<USER>/.vnc/%H%i.pid
为VNC设密码
# vncpasswd
重加载 systemd
# systemctl daemon-reload
控制命令:
# systemctl enable vncserver@:1.service //开机自启
# systemctl start vncserver@:1.service //启动
# vncserver :1 //启动
# vncserver -kill :1 //停止
# netstat -antulp | grep Xvnc //查看vnc端口
Python3
1 查看主机默认pthon版本
# python --version
2 寻找对应版本的安装包
3下载pthon安装包
wget https://www.python.org/ftp/python/3.7.10/Python-3.7.10.tgz
4 创建安装目录
看个人习惯,知识追寻者喜欢都放在/usr/local下面
mkdir -p /usr/local/python3
5 解压
tar -zxvf Python-3.7.10.tgz
6 编译安装
首先需要gcc环境和zlib库为了方向键等不出现乱码还需要 readline-devel
包
yum -y install gcc
yum -y install zlib*
yum install readline-devel
其次 配置
cd Python-3.7.10
./configure --prefix=/usr/local/python3
编译安装
make && make install
ln -s /usr/local/python3/bin/python3.7 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3.7 /usr/bin/pip3
8 测试安装
查看版本
# python3 --version
MQTT服务器mosquitto(未使用MQTTS)
安装Mosquitto
在默认情况下,CentOS 7没有mosquitto
程序包。首先我们将安装一个额外的软件软件包,即Epel。这个存储库囊括了安装在CentOS、RedHat和其他面向企业的Linux发行版上的附加软件。
使用yum
包管理器来安装epel-release
包。
sudo yum -y install epel-release
这条命令会将Epel
存储库信息添加到我们的系统中,-y
选项在整个过程中对一些提示自动回答“是”。现在我们可以安装mosquitto
包。
sudo yum -y install mosquitto
这个包附带了一个简单的默认配置,所以让我们运行它来测试我们的安装。
sudo systemctl start mosquitto
我们还需要启用服务,以确保它在重新启动系统时启动:
sudo systemctl enable mosquitto
现在让我们测试默认配置。mosquitto
包附带了一些MQTT客户端命令行。我们将使用其中一个订阅代理上的主题。
主题是您发布消息并订阅的标签。它们按等级排列,你可以有sensors/outside/temp
和sensors/outside/humidity
。在本教程中,我们将使用一个简单的测试主题来测试配置。
您需要创建一个新的终端,创建方法很简单,重新打开一个新的终端页面,重新登录服务器即可。在新的终端中,使用mosquitto_sub
订阅测试主题:
mosquitto_sub -h localhost -t test
-h
用于指定MQTT服务器的主机名,-t
是主题名。ENTER
后没有输出,是因为mosquitto_sub
在等待消息的到来。切换回另一个终端并发布一条消息:
mosquitto_pub -h localhost -t test -m "hello world"
mosquitto_pub
的选项与mosquitto_sub
相同,这一次我们使用了额外的-m
选项来指定我们的消息。点击ENTER
,你应该看看hello world
输出在在另一个终端中。你已经学会发送第一条MQTT信息!
在第二个终端中按下CTRL+C
退出mosquitto_sub
,不要关闭其他终端哦,后面我们还要进行测试。
配置MQTT密码
Mosquitto包含一个工具,用于生成一个特殊的密码文件,名为mosquitto_passwd
。此工具将提示您输入指定用户名的密码,并将结果放在/etc/mosquitto/passwd
. (去掉-c添加多个用户)
sudo mosquitto_passwd -c /etc/mosquitto/passwd username
现在,我们将替换默认的配置文件,并告诉Mosquito使用这个密码文件来要求所有连接的登录。首先,删除现有的mosquitto.conf
.
sudo rm /etc/mosquitto/mosquitto.conf
现在打开一个新的空配置。
sudo nano /etc/mosquitto/mosquitto.conf
粘贴在下面。
allow_anonymous false
password_file /etc/mosquitto/passwd
allow_anonymous false
将禁用所有未经身份验证的连接,并且password_file
告诉Mosquitto在哪里查找用户和密码,保存并退出文件。
现在我们需要重新启动Mosquitto并测试。
sudo systemctl restart mosquitto
尝试在没有密码的情况下发布消息。
mosquitto_pub -h localhost -t "test" -m "hello world"
你应该看到被拒绝的信息:
Connection Refused: not authorised.
Error: The connection was refused.
在我们再次尝试使用密码登录之前,请再次切换到您的第二个终端窗口,并使用用户名和密码订阅“test”主题:
mosquitto_sub -h localhost -t test -u "username" -P "password"
现在用另一个终端使用用户名和密码发布一条消息:
mosquitto_pub -h localhost -t "test" -m "hello world" -u "username" -P "password"