前言

  使用的是阿里云2核2G,99块钱一年的云服务,用于自我学习。

计算机网络

  虽然学过,但那是学习安排的全英教学,课程比较水自己又没详细探究,早都全忘了,需要复习一下:在计算机网络中,IP地址用于定位互联网中的某个设备,端口则用于定位该设备上某个具体应用程序。
客户端测试是否连通:

1
2
Test-NetConnection -ComputerName 8.148.152.102 -Port 1883 # Windows
telnet 8.148.152.102 8083 # Linux

服务端测试端口是否被监听(是否有服务):
1
netstat -tulpn | grep 1883

当然,安全机制不会允许外界随意访问计算机的端口,这又引出了防火墙的概念,在Linux中,以Ubuntu使用的ufw(Uncomplicated Firewall,简易防火墙)为例:
1
2
3
sudo ufw status # 查看防火墙状态 
sudo ufw allow 1883/tcp # 添加新的规则
sudo ufw reload # 重新加载规则

而后云服务器的供应商也有自己的安全组策略,比如阿里云的ECS。当client向server端一个端口发送数据,入方向需要同步更改。

基础应用

宝塔面板

  在宝塔官方操作手册中查看,在选择的时候其实可以选择预设应用,其中就有宝塔,选择后用下列指令查看默认信息,包括端口和密码等

1
bt default

按照给出的端口,在阿里云控制台安全组中放行端口后即可正常访问,而后可以安装应用,本次我使用的是LNMP
初始化推荐配置

搭建MQTT服务器

  这里使用的是EMQX,主要作用是作为MQTT Broker(消息代理),其是基于Erlang/OTP平台开发的开源、高并发、分布式的 MQTT 消息服务器。安装命令如下所示:

1
2
3
4
5
6
7
8
9
10
11
# 添加EMQX仓库
curl -s https://assets.emqx.com/scripts/install-emqx-deb.sh | sudo bash

# 安装最新版EMQX
sudo apt-get install emqx

# 启动EMQX服务
sudo systemctl start emqx

# 检查运行状态(显示"active (running)"即为正常)
sudo systemctl status emqx

git私人仓库

  在服务端:

1
2
3
4
5
6
7
8
9
sudo apt update
sudo apt install git
sudo adduser git

sudo su git

mkdir -p ~/repos/test.git
cd ~/repos/test.git
git init --bare

  而在客户端
1
2
ssh-keygen -t rsa -b 4096 -C "name"
cat ~/.ssh/id_rsa.pub

在服务器端处将公钥复制进入:
1
2
3
mkdir -p ~/.ssh
touch ~/.ssh/authorized_keys
vim ~/.ssh/authorized_keys

1
2
3
4
5
6
git init
git add .
git commit -m "Initial commit"

git remote add origin git@<ip>:/home/git/repos/test.git
git push -u origin master