Macbook m1上虚拟Centos8使用蒲公英和公网服务器实现组网——1台公网服务器+2台内网虚拟机实现公网3台服务器
引言
最近在学习Hadoop,需要多台服务器做集群学习测试。囊中羞涩,没有那么多云服务器,于是使用Macbook虚拟出几台服务器(m1版本安装虚拟机也是一堆坑,这部分教程可以看我其它文章),本地测试玩玩没有问题,但是在公司摸鱼也想玩玩Hadoop怎么办?想到用自己的一台公网服务器和这几台内网服务器使用蒲公英实现组网,一台服务器瞬间变成几台服务器。
一、更换虚拟机Centos8上的yum源
说明:因为本人使用的是MacBook m1,使用虚拟机安装的Linux是amd架构的Centos8,自带的yum有问题,如果是其它的Linux版本不需要此步骤。
1.备份原来的yum源
cd /etc/yum.repos.d/
mv CentOS-Linux-* bak/
2.下载并切换新的yum源
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
yum makecache
二、使用docker安装蒲公英
说明:为什么要用docker安装蒲公英?这个是官网提供的Linux的各个版本的访问端,很可惜,没有amd架构的,所有版本下载下来安装均报错。
一、安装docker
1.卸载旧版本的docker
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2.安装依赖包
yum install -y yum-utils
3.设置docker镜像为阿里云镜像
yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4.安装docker
yum install docker-ce docker-ce-cli containerd.io --allowerasing
5.启动docker
systemctl start docker
6.设置docker开机启动
systemctl enable docker
7.配置docker阿里云镜像加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["阿里云镜像加速地址"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
8.查看docker是否安装成功
docker -v
二、使用docker安装蒲公英
一共有两个下载量比较多的蒲公英镜像,已经替你们都试过了,选择下面这个,这个支持amd架构的。
1.使用docker拉取镜像
docker pull benzbrake/pgyvpn
如果出现这个错误,确认网络没有问题的话,需要配置hosts。
vim /etc/resolv.conf
nameserver 8.8.8.8
2.启动pull的蒲公英镜像
docker run -d \
--restart=always \
--device=/dev/net/tun \
--net=host \
--cap-add=NET_ADMIN \
--cap-add=SYS_ADMIN \
--env PGY_USERNAME="蒲公英的账号" \
--env PGY_PASSWORD="蒲公英的密码" \
--name pgyvpn \
benzbrake/pgyvpn
3.进入容器查看
docker exec -it pgyvpn bash
pgyvpn
现在,所有虚拟机和公网服务器都安装成功蒲公英,到蒲公英网络管理平台可以看到已经组网成功了。
三、各个服务器之前配置SSH免密登录
说明:现在各个服务器之间已经互通了,还剩最后一个问题?怎么在公网通过SSH工具访问到内网虚拟机上的服务器呢?SSH工具先通过公网IP连接到公网的服务器,然后公网服务器通过蒲公英虚拟出来的IP访问组网内的其它内网虚拟机服务器。
/root/.ssh
#生产密钥
ssh-keygen -t rsa
#将公钥拷贝到组网内的其它虚拟机服务器
ssh-copy-id 蒲公英虚拟出的虚拟机上的服务器IP
#这样就实现了SSH无密访问了,测试下
ssh 上一步的IP